汇编语言程序设计课后习题解答宋人杰2版(2)

2019-04-22 17:33

(5) XCHG [SI],30H (6) OUT DX,AH (7) IN AL,3FCH (8) MUL 5

答:(1) POP指令不允许使用CS

(2) 两操作数不能同时是存储器寻址方式 (3) 堆栈的操作必须以字为单位 (4) 段寄存器不允许直接参加运算

(5) XCHG指令的操作数不允许是立即数 (6) OUT指令只能用AL做源操作数

(7) 端口号大于255,必须将其放到DX中 (8) MUL指令源操作数不允许是立即数 6. 请分别用一条汇编语言指令完成如下功能。

(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。

(2) 用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存

器的内容相加,并把结果送到AL中。

(3) 用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和

CX寄存器的内容相加,并把结果送回存储器中。

(4) 把数0A0H与AL寄存器的内容相加,并把结果送回AL中。 答:(1)ADD DX,BX

(2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD AL,0A0H

7. 求出以下各十六进制数与十六进制数58B0之和,并根据结果设置标志位SF、ZF、CF和OF的值。 (1) 1234H (2) 5678H (3) 0AF50H (4) 9B7EH

答:(1)和为6AE4H,SF=0,ZF=0,CF=0,OF=0 (2)和为0AF28H,SF=1, ZF=0, CF=0, OF=1 (3)和为0800H, SF=0, ZF=0, CF=1, OF=0 (4)和为0F42EH, SF=1, ZF=0, CF=0, OF=0

8. 执行指令ADD AL,72H前,(AL)=8EH,标志寄存器的状态标志OF、SF、ZF、AF、PF和CF全为0,指出该指令执行后标志寄存器的值。

答:指令执行后,AL的内容为0000000H,且有进位,标志寄存器中各标志位的值为:OF=0,SF=0,ZF=1,AF=1,PF=1,CF=1 9. 已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX

试问:1、每条指令执行完后,AX的内容是什么? 2、每条指令执行完后,CF、SF和ZF的值是什么? 3、程序执行完后,AX和DX的内容是什么? 答:(1)(2)

MOV AX,1234H ; (AX)=1234H,各标志位不变 MOV CL,4 ; (AX)=1234H,各标志位不变

ROL AX,CL ; (AX)=2341H,CF=1,其它标志位不变 DEC AX ; (AX)=2340H,CF不变,SF=0,ZF=0 MOV CX,4 ; (AX)=2340H,各标志位不变 MUL CX ; (AX)=8D00H,CF=0,ZF=0,SF=0 (3)程序执行完后,(AX)=8D00H,(DX)=0000H

10. 编程序段,将AL、BL、CL、DL相加,结果存在DX中。 答:MOV AH,0

ADD AL,BL ADC AH,0 ADD AL,CL ADC AH,0 ADD AL,DL ADC AH,0 MOV DX,AX

11. 编程序段,从AX中减去DI,SI和BP中的数据,结果送BX。 答:SUB AX,DI

SUB AX,SI SUB AX,BP MOV BX,AX

12. 假设(BX)=0E3H,变量VALUE中存放的内容为79H,确定下列各指令单独执行后的结果。

(1) OR BX,VALUE (2) AND BX,VALUE (3) XOR BX,OFFH (4) AND BX,01H (5) TEST BX,05H

(6) XOR BX,VALUE 答: (1) (BX)=0FBH

(2) (BX)=61H (3) (BX)=1CH (4) (BX)=01H (5) (BX)=0E3H (6) (BX)=9AH

13. 已知数据段500H~600H处存放了一个字符串,说明下列程序段执行后的结果。

MOV SI,600H MOV DI,601H MOV AX,DS

MOV ES,AX MOV CX,256 STD

REP MOVSB

答:将数据段501H~600H中存储的字符串移到数据段502~601H中 14. 说明下列程序段的功能。

CLD

MOV AX,0FEFH MOV CX,5

MOV BX,3000H MOV ES,BX MOV DI,2000H REP STOSW

答:将附加段的32000H开始的连续5个字初始化为0FEFH 15. 判断下列程序段跳转的条件。 (1) XOR AX,1E1EH JE EQUAL

(2) TEST AL,10000001B JNZ THERE (3) CMP CX,64H JB THERE

答:(1) AX中的值为1E1EH时会跳转(2) AL的最低和最高位至少有一位为1时发生跳转

(3) CX中的值小于64H时发生跳转 16. 选取正确指令,完成以下任务。

(1) 右移DI三位,并将0移入最左一位。(2) AL内容左移一位,0移入最后一位。(3) DX寄存器右移一位,并且使结果的符号位与原符号位相同。 答:(1) MOV CL,3 SHR DI,CL

(2) SHL AL,1(3) SAR DX,1

17. 假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较

指令和条件转移指令实现以下判断。

(1) 若DX>DI,转到ABOVE执行(2) 若AX>SI,转到GREATER执行。 (3) 若CX=0,转到ZERO执行(4) 若AX-SI产生溢出,转到OVERFLOW执行。

(5) 若SI≤AX,转到LESS_EQ执行。(6) 若DI≤DX,转到BELOW_EQ执行。

答:(1) CMP DX,DI JA ABOVE

(2) CMP AX,SI JG GREATER (3) CMP CX,0 JE ZERO (4)CMP AX,SI

JO OVERFLOW (5) CMP AX,SI

JGE LESS_EQ (6) CMP DX,DI

JAE BELOW_EQ

18. 有一个首地址为ARRAY的20个字数组,说明下列程序段的功能。 MOV CX,20 MOV AX,0 MOV SI,AX

SUM_LOOP: ADD AX,ARRAY[SI] ADD SI,2

LOOP SUM_LOOP MOV TOTAL,AX

答:将首地址为ARRAY的20个字数组元素求和,将结果存放到TOTAL单元 22. 已知内存中起始地址为BLOCK的数据块(字节数为COUNT)的字节数据

有正有负。试编写一个程序,将其中的正、负分开,分别送至同一段中的两个缓冲区,设正、负缓冲区的首地址分别为PLUS和MINUS。 答: DATA SEGMENT

BLOCK DB 16 DUP(?) PLUS DB 16 DUP(?) MINUS DB 16 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX

MOV SI,OFFSET BLOCK MOV DI,OFFSET PLUS MOV BX,OFFSET MINUS MOV CX,COUNT NEXT:MOV AL,[SI] TEST AL,80H JNZ MD

MOV [DI],AL INC DI JMP AGAIN MD: MOV [BX],AL INC BX AGAIN: INC SI LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START

19. 按照下列要求,编写相应的程序段。

(1) 已知字符串STRING包含有32KB内容,将其中的“$”符号替换成空格。

(2) 有一个100个字节元素的数组,其首地址为ARRAY,将每个元素减1

(不考虑溢出)存于原处。

(3) 统计以“$”结尾的字符串STRING的字符个数

(4) 假设从B800H:0开始存放有16个16位无符号数,编程求它们的和,

并把32位的和保存在DX、AX中。

答:(1)

MOV SI,0

MOV CX,8000H

AGAIN:CMP STRING[SI],’$’ JNZ NEXT

MOV STRING[SI],20H NEXT:INC SI LOOP AGAIN

(2)

MOV SI,0 MOV CX,100

AGAIN:DEC ARRAY[SI] INC SI LOOP AGAIN

(3)

XOR SI,SI

COMP:CMP STRING[SI],’$’ JE OVER INC SI JMP COMP OVER:RET (4)

MOV AX,0B800H MOV DS,AX XOR SI,SI XOR DX,DX MOV CX,0FH MOV AX,[SI] AGAIN:INC SI INC SI

ADD AX,[SI] JNC NEXT INC DX

NEXT:LOOP AGAIN


汇编语言程序设计课后习题解答宋人杰2版(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:双线有渣高速铁路隧道施工方案设计 - 图文

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

马上注册会员

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