微机原理与接口技术(苏州大学出版社) - 习题答案(5)

2019-05-17 13:40

习 题

6.2 在一个数据段中,试用伪指令定义下列数据或字符变量,并画出内存分配示意图。 ⑴ 为十进制数58定义字节变量DEDAT

⑵ 为二进制数11011010B定义字节变量BINDAT ⑶ 为十六进制数B7A2H定义字变量HEXDAT ⑷ 定义6个0的字变量

⑸ 为字符串‘I have a pen’定义字节变量STRING 解: (1) DEDAT DB 58

(2) INDAT DB 11011010B (3) HEX DB 0B7A2H (4) DW 6 DUP(0)

(5) STRING DB ‘I have a pen’

6.3 已知在某数据段中有如下变量定义: VRWD

DW 256 DUP(?)

现要求对这些变量单元既能进行字操作,同时在另一种场合又能进行字节操作,请问应该如何解决? 解: 用LABEL伪指令进行字节定义:

VRBD LABEL BYTE VRWD DW 256(?)

6.4 已知有如下赋值语句: ALPHA GAMMA

EQU 100 EQU 2

⑵ ALPHA MOD GAMMA+BETA ⑷ (BETA/3) MOD 5

BETA EQU 25

试指出下列表达式的值为多少? ⑴ ALPHA*100 ⑶ (ALPHA+2)*BETA-2 ⑺ BETA AND 7

⑸ (ALPHA+3)*(BETA MOD GAMMA) ⑹ ALPHA GE GAMMA ⑻ GAMMA OR 3

解: (1) 10000 (2) 26 (3) 2446 (4) 3

(5) 309 (6) 0FFFFH (7) 08H (8) 0BH

6.5 分析如下程序,画出堆栈最满时各单元的地址及内容。 STASEG TOP STASEG CODSEG

START:MOV

SEGMENT AT 1000H DW 200 DUP(?) LABEL WORD ENDS SEGMENT

ASSUME CS:CODSEG,SS:STASEG AX,STASEG MOV SS,AX MOV SP,OFFSET TOP PUSH DS SUB AX,AX PUSH AX PUSH BX PUSHF

文件名:微机原理与接口技术习题 第 21 页 共 61 页

错误!未指定书签。与接口技术

CODSEG

解:

?? ?? POPF POP BX POP AX ?? ENDS END START

(1) 10000 (2) 26 (3) 2446 (4) 3

6.6 编写一完整的汇编语言源程序,在数据段中定义一双字变量VARLD,再在附加段中也定义一双字变量VARLE,然后将这两个双字内容相加,结果存放于数据段的RESU变量中。

解:

START:

6.7 循环程序一般由哪几部分构成?各部分的功能是什么?

解: (1) 循环初始化部分。主要是设定循环的初始状态,为循环作准备。如设置循环最大次数,循环过程中相关寄存器所需的初始值等等。

(2)循环工作部分。这是循环程序的主体部分,它完成该循环体所要实现的主要功能,如数据的传送、运算等。

(3)循环参数调整部分。主要功能是用于修改某些数据,以保证每次循环时参与运行的某些信息能发生有规律的变化,使完成的功能不完全重复。

(4)循环控制部分。循环控制部分是循环程序设计的关键,它根据循环控制条件来控制循环的运行和结束,该控制功能由循环控制指令完成。

6.8 设有一汇编语言源程序如下:

DATA SEGMENT

WVLD LABEL WORD VARLD DD 58A027B4H RESU DW ?,? DATA ENDS EXTR SEGMENT

WVLE LABEL WORD VARLE DD 0F4C2380H EXTR ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:EXTR MOV AX,DATA MOV DS,AX MOV AX,EXTR MOV ES,AX MOV AX,WVLD ADD AX,ES:WVLE MOV RESU,AX MOV AX,WVLD+2 ADC AX,ES:WVLE+2 MOV RESU+2,AX MOV AH,4CH INT 21H CODE ENDS END START

文件名:微机原理与接口技术习题 第 22 页 共 61 页

习 题

DATSEG SEGMENT CONDAT DB 3EH,0F7H,68H,9CH,7FH ORG 1000H SUM DW ? DATSEG ENDS PROSEG SEGMENT ASSUME CS:PROSEG,DS:DATSEG MAIN PROC FAR START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATSEG MOV DS,AX LEA BX,CONDAT MOV CX,5 XOR DX,DX NMP: MOV AL,[BX] AND AL,AL JS NEXT ADD DL,AL JNZ NEXT INC DH NEXT: INC BX LOOP NMP LEA BX,SUM MOV [BX],DX RET MAIN ENDP PROSEG ENDS END START

简要说明此程序的功能,指出程序运行后四个通用寄存器AX、BX、CX、DX中的内容各是什么?程序运行的结果是什么?保存在什么地方?

解: 程序功能是,统计CONDAT数据区的9个字节,将正数之和送入1000H单元;将前几个为0的数的个数送入1001H单元。

程序执行结果:(AX)=0010H (BX)=1000H (CX)=0 (DX)=023EH。

6.9设内存自1000H开始的存储区中,存放有20个带符号数,试编一程序段,找出其中最小的数,存于数据区2000H中。

解:

SCAN:

NEXT:

MOV AX,1000H MOV DS,AX LEA BX,BUFF MOV CX,[BX] MOV AX,0 ADD BX,2 MOV DX,[BX] CMP DX,AX JGE NEXT XCHG AX,DX LOOP SCAN

MOV [BX],2000H

第 23 页 共 61 页

正数之和等于3EH保存于1000H单元中;数组前面0的个数是2,保存于1001H单元中。

文件名:微机原理与接口技术习题

错误!未指定书签。与接口技术

6.10 在内存的BUFF缓冲区中,存放有一个数据块,数据块的长度存放在BUFF和BUFF+1单元中,从BUFF+2开始存放的是以ASCII码表示的十进制数。编写程序段,将这些ASCII码转换成组合式BCD码(即把两个相邻字节单元的数码并成一个字节单元),高地址的放在高4位。转换后的压缩BCD码存放到BUFF+2开始的单元中。

解:

CONTI:

6.11 设有一由无符号数组成的数组,数组名为ORDER,数组长度为60。编写程序,求该数组中的最大值。

解:

DATA SEGMENT

ORDER DW 60 DUP(?) MAX DW ? DATA ENDS STACKS SEGMENT DW 256 DUP(0) TOP LABEL WORD CODE SEGMENT ASSUME CS:CODE CONVER PROC FAR PUSHF PUSH AX PUSH BX PUSH CX PUSF DX PUSH SI PUSU DI

LEA SI,ASCDES MOV DI,10 MOV CX,5 MOV AX,0 MUL DI

MOV BL,[SI] MOV BH,0 SUB BL,30H ADD AX,BX INC SI LOOP CONTI

MOV BYDAT,AX POP DI POP SI POP DX POP CX POP BX POP AX POPF RET

CONVER ENDP CODE ENDS END

MOV [BX],AX HLT

文件名:微机原理与接口技术习题 第 24 页 共 61 页

START: ;

STOP:

NEXT:

STACKS ENDS

习 题

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACKS MOV AX,DATA MOV DS,AX

MOV AX,STACKS MOV SS,AX

MOV SP,OFFSET TOP LEA SI,ORDER MOV CX,60

CALL FAR PTR SUBPRG MOV MAX,AX MOV AH,4CH INT 21H CODE ENDS CODE1 SEGMENT ASSUME CS:CODE1 SUBPRG PROC FAR PUSHF

CMP CX,2 JZ STOP DEC CX ADD SI,2 CALL SUBPRG MOV AX,[SI] CMP AX,2[SI] JNC NEXT

XCHG AX,2[SI] MOV [SI],AX MOV AX,[SI] SUB SI,2 POPF RET

SUBPRG ENDP CODE1 ENDS END START

6.12 编写子程序,将从键盘输入的小写字母用大写字母在屏幕显示出来,如不是字母则结束。

解:

NEXT:

CODE SEGMENT ASSUME CS:CODE KEYIN PROC FAR PUSH AX PUSH DX MOV AH,1 INT 21H

CMP AL,61H JB EXIT CMP AL,7AH JA EXIT

文件名:微机原理与接口技术习题 第 25 页 共 61 页


微机原理与接口技术(苏州大学出版社) - 习题答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:速记日语常用语汉语发音

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: