微机课后答案打印 2(3)

2019-08-29 19:12

PUSH BX POP DX POP CX

执行后AX=?,CX=?,DX=?,SP=?

(2) 执行后AX=3355H,CX=3355H,DX=4466H,SP=2000H

【解】(1) 执行后AX=3355H,SP=1FFEH

4. 请按下面的要求写出相应的汇编指令或指令序列。

(1) 将1234H送入DS中。

(2) 将5678H与AX中的数相加,结果放在AX中。 (3) 将DATAX和DATAY相加,其和放在DATAY中。 (4) 将AX中的高4位变为全0。 (5) 将BX中的低2位变为全1。 (6) 将CX中的D3~D7位取反。

【解】 (1)

MOV AX,1234H MOV DS,AX

(2) ADD AX,5678H (3) MOV AX,DATAX

ADD AX,DATAY MOV DATAY,AX

(4) AND AX,0FFFH (5) OR AX,0003H (6) MOV AX,CX

AND AX,07H XOR CX,0FFFFH AND CX,0FFF8H ADD CX,AX

5. 若AL=0FFH,BL=03H,指出下列指令执行后标志AF、OF、ZF、SF、PF、CF的状态。

(1) ADD BL,AL (3) SUB BL,AL (5) AND BL,AL (7) CMP BL,AL

【解】执行后:

(1) ADD (2) INC (3) SUB

BL,AL BL BL,AL

AF 1 0 1

OF 0 0 0

ZF 0 0 0

SF 0 0 0

PF 0 0 0

CF 1 不影响 1

(2) INC BL (4) NEG BL (6) MUL BL (8) IMUL BL

(9) OR BL,AL (10)XOR BL,BL

11

(4) NEG (5) AND (6) MUL (7) CMP

BL BL,AL BL BL,AL

1 任意值 任意值 1 任意值 任意值 任意值

0 0 1 0 1 0 0

0 0 任意值 0 任意值 0 0

1 0 任意值 0 任意值 1 1

0 1 任意值 0 任意值 1 1

1 0 1 1 1 0 0

(8) IMUL BL (9) OR BL,AL (10) XOR BL,BL

6. 已知存储器中有两个压缩BCD码6543和4672存放在从BUF开始的连续4个单元中(高字节放在高地址单元),试编制两数相减的程序,结果存放在后面的两个单元中。 【解】程序段如下:

MOV BX,BUF MOV AX,[BX] MOV CX,[BX+2] SUB AL,CL MOV DL,AL DAA

MOV AL,AH SBB AL,CH DAA

MOV AH,AL MOV AL,DL MOV [BX+4],AX

7. 假设DX=36A5H,CL=3,CF=1,确定下列各条指令执行后DX和CF的值。

【解】

(1) 指令执行后DX:1B52H,CF:1 (2) 指令执行后DX:06D4H,CF:1 (3) 指令执行后DX:6D4AH,CF:0 (4) 指令执行后DX:364AH,CF:1 (5) 指令执行后DX:0C6D4H,CF:1 (6) 指令执行后DX:362DH,CF:1 (7) 指令执行后DX:6CA5H,CF:0 (8) 指令执行后DX:06A5H,CF:1 (9) 指令执行后DX:0B529H,CF:1 (10)指令执行后DX:0A6D4H,CF:1

(1) SHR DX,1 (2) SAR DX,CL

(3) SHL DX,CL (5) ROR DX,CL (9) RCL DX,CL

(4) SHL DL,1 (6) ROL DL,CL (10)RCR DX,CL

(7) SAL DH,1 (8) SAR DH,CL

12

8. 编写程序段将寄存器AL中的8位二进制数的内容颠倒过来,即将原来的最高位变为最低位,次高位变为次低位,以此类推,若原AL的内容为01110001B,则颠倒之后变为10001110B。 【解】程序段如下:

XOR AH,AH MOV CX,8

LP1: SHR AL,1

RCL AH,1 LOOP LP1 MOV AL,AH

;存回AL

;AH清零 ;重复8次

;逻辑右移,将最最低位移入CF

;带进位的循环左移,将CF移入AH的最低位

9. 执行下列程序段,指出各相关寄存器的内容。

MOV DEC SUB AND MOV SAL ADD

AX,0A0BH AX AX,0FFH AX,00FFH CL,3 AL,CL AL,25H

XCHG AL,AH PUSH AX POP INC

BX BL

【解】各相关寄存器的内容:

MOV DEC SUB AND MOV SAL ADD

AX,0A0BH ;AX:0A0BH AX

;AX:0A0AH

;AX:090BH ;AX:000BH ;CL:03H ;AX:0058H

AX,0FFH

AX,00FFH CL,3 AL,CL AL,25H

;AX:007DH

;AX:7D00H ;AX:7D00H

XCHG AL,AH PUSH AX POP INC

BX BL

;BX:7D00H

;BX:7D01H

10. 用串操作指令将100H个字符从2100H处搬到1000H处,并且从中检索与AL中所存字符相同的存储单元,并将该单元的内容替换成空格,本程序只替换检索到的第一个相同的单元。请在下列空格中填入合适的指令,使程序段完成上述功能。

MOV SI,2100H (1)

13

MOV CX,100H CLD

(2) MOV DI,1000H MOV CX,100H (3) JNZ K1

(4) MOV [DI],20H K1: ┇

【解】

(1) MOV DI,1000H (2) REP MOVSB (3) REPNE SCASB (4) DEC DI

11. 试分析下列程序段,如果AX和BX的内容分别为下列5种情况,问程序分别转向何处?

(1) AX=147FH,BX=80DCH (2) AX=0B586H,BX=54B5H (3) AX=42C0H,BX=608AH (4) AX=0D023H,BX=9FD7H (5) AX=94B7H,BX=0B568H

ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5

【解】

(1) L1;不溢出,转移到L1 (2) L1;不溢出,转移到L1

(3) L2;溢出,不转移到L1,进位为0,转移到L2

(4) L3;溢出,不转移到L1,进位为1,不转移到L2,借位为0,转移到L3

(5) L4;溢出,不转移到L1,进位为1,不转移到L2,借位为1,不转移到L3,不溢出,转移到L4

12. 编程求出AX中存放的16位二进制数中‘1’的个数,将其存入CL中(若AX=1001010011001011B则将8存入CL)。 【解】程序段如下:

14

MOV CX,16 XOR BX,BX

L1: SHL AX,1

;最低位移入CF RCL BL,1

;CF移入最低位

ADD BH,BL XOR BL,BL LOOP L1 MOV CL,BH

第5章 汇编语言程序设计

教材习题解答

1. 下列语句在存储器中分别为变量分配多少字节?

VR1 DW 9

VR2

DW 4 DUP(?)

CONT EQU 10 VR3 DD CONT DUP(?)

VR4 DB 2 DUP(?,CONT DUP(0)) VR5

DB ‘HOW ARE YOU?’

【解】VR1:2B ; VR2:8B ; CONT:1B ; VR3:40B; VR4:44B;2. 根据下列数据定义,写出各条指令执行后的结果

TABLE DW 100 DUP(?) ARRAY DB ‘ABCD’ RES

DB ?

(1) MOV AX,TYPE RES AX=( ) (2) MOV BX,TYPE TABLE BX=( ) (3) MOV CX,LENGTH TABLE CX=( ) (4) MOV SI,SIZE TABLE

SI=( )

(5) MOV DI,LENGTH ARRAY DI=( )

【解】(1) AX=1 (2) BX=2 (3) CX=100 (4) SI=200 (5) DI=4 3. 下面定义的是一个数据段,请图示它们在存储器中的存放形式。

DATA SEGMENT A DB 1,2,3,4 B DB ‘ABCD’ C

DB 4 DUP(0)

15

:12B VR5


微机课后答案打印 2(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:业主委员会,辞职报告

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

马上注册会员

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