第3章 习题及参考解答

更新时间:2023-11-18 12:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第3章 习题及参考解答

1.指出下列各指令中源操作数和目的操作数的寻址方式。 (1)MOV DI,100 (2)MOV CX.100[SI] (3)MOV [SI],AX (4)ADD AX,[BX+DI] (5)AND AX,BX (6)MOV DX,[1000]

(7)MOV BX,[BP+DI+100] (8)PUSHF

(9)SUB [1050],CX (10)AND DH,[BP+4] 解

源操作数 目的操作数

(1)立即寻址 寄存器寻址 (2)变址寻址 寄存器寻址 (3)寄存器寻址 寄存器间接寻址 (4)基址加变址寻址 寄存器寻址 (5)寄存器寻址 寄存器寻址 (6)直接寻址 寄存器寻址 (7)基址加变址寻址 寄存器寻址 (8)寄存器寻址 寄存器间接寻址 (9)寄存器寻址 直接寻址 (10)变址寻址 寄存器寻址

2.试述指令MOV AX,2000H和MOV AX,DS:[2000H]的区别? 解 区别有三条:

(1) MOV AX,2000H对源操作数是立即寻址,而MOV AX.[2000H]对源操作数是直接寻址; (2) 前者功能是把立即数2000H送入AX中,而后者是把内存2000H单元与2001H单元的内容取出送

入AX 中;

(3) 两者的机器代码不同,执行速度也不同,前者执行时间快,后者执行时间慢。

4.若DS=4000H,BX=0800H,[40800H]=05AOH,[40802H]=2000H,求执行指令LDS SI,[BX]后,DS与SI中的内容。若上题中的DS换成ES,其他条件不变,求执行指令LES DI,[BX]后,ES与DI中的内容。 解

SI=05AOH,DS=2000H DI=05AOH,ES=2000H

5.若AX=98ABH,BX=A8BCH。求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF,ZF,AF,PF,CF和OF的状态。

解 AX=4167H,BX=A8BCH,SFZFAFPFCFOF=001011B。

6.若CX=6700H,DX=78FFH,CF=1。求分别执行指令 (1)ADD CX,DX (2)ADC CX,DX (3)SUB CX,DX

(5)AND CX,DX (6)OR CX,DX (7)XOR CX,DX

后,CX与DX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。 解

(1)CX=DFFFH,DX=78FFH,SFZFAFPFCFOF=100101B (2)CX=E000H,DX=78FFH,SFZFAFPFCFOF=101101B (3)CX=EE01H,DX=78FFH,SFZFAFPFCFOF=101010B (4)CX=EE00H,DX=78FFH,SFZFAFPFCFOF=101110B (5)CX=6000H,DX=78FFH,SFZFAFPFCFOF=00×100B (6)CX=7FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B

(7)CX=1FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B

7.若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。指出标志位OF与CF的状态。

解 AX=0006H,DX=0000H,OFCF=00B

8.若AL=75H,BL=48H, (1)求执行指令

ADD AL,BL DAA

之后AL=?标志AF=?CF=?并说明BCD码调整情况。

(2)若执行指令SUB AL,BL与DAS后,情况又如何? 解

(1)AL=23H,AFCF=11B

(2)AL=27H,AFCF=10B

9.设X、Y、R、S、Z均为16位无符号数的变量。按已给定的表达式Z(X+Y)/(R-S)→Z,有程序如下,试在空格处填入适当的指令(注:在加减过程中均无进位和借位)。 MOV AX,X ① MOV CX,R SUB CX,S ② ③ MOV Z,AX MOV Z+1,DX HLT 解

①ADD AX,Y ②MUL Z

③DIV CX

10.若有一个四字节数,放在寄存器DX与AX中(DX中放高16位),要求这个4字节数整个左移一位如何实现?右移一位又如何实现? 解

(1)DX与AX左移一位:

SHL AX,01 RCL DX,01

(2)DX与AX右移一位:

SHR DX,01 RCR AX,01

11.若把1K字节的数据块从偏移地址为1000H开始的单元传送到偏移地址为1400H开始的缓冲区。试用串传送操作指令和一般传送指令两种方法各编一程序实现。 解

(1)利用串操作指令编程如下:

MOV SI,1000H MOV DI,1400H MOV CX,400H CLD REP MOVSB

MOV AM,4CH INT 21H

(2)利用一般传送指令编程如下:

MOV SI,1000H MOV DI,1400H MOV CX,400H NEXT:MOV AL,[SI]

MOV[DI],AL INC SI INC DI

LOOP NEXT MOV AH,4CH INT 21H

12.若在内存缓冲区中有一个长度为256个字节的数据块,起始地址偏移量为2000H。数据块中的数据有正有负,要求把其中的正负数分开.分别送至同段的两个缓冲区,存放正数的缓冲区的起始地址偏移量为2100H,存放负数的缓冲区的起始地址偏移量为2200H。 试编一程序。 解

MOV SI,2000H MOV CX,100H XOR DX,DX LOOP: MOV AL,[SI]

ADD AL,0 JNS PLUS INC DH NEXT: INC SI

DEC CX JNZ LOOP JMP STOP

PLUS: INC DL

JMP NEXT

STOP: MOV [2100H],DL

MOV [2200H],DH MOV AH,4CH INT 21H

13.若SS=1000H,SP=1000H,AX=1234H,BX=5678H,Flag=2103H,试说明执行指令 PUSH BX PUSH AX PUSHF POP CX

之后,SP=?SS=?CX=?并画图指出栈中各单元的内容。 解 SS=1000H,SP=0FFCH,CX=2103H 栈中各单元内容如下: 地址 RAM 0FFAH 03 0FFBH 21 0FFCH 34 0FFDH 12 0FFEH 78 0FFFH 56 1000H XX

14.若DS=1100H,SI=1000H,CS=1200H,IP=100H,[12000H]=2000H,[12002]=1500H,求执行指令

(1)CALL FAR[SI]后CS与IP的内容; (2)CALL [SI]后CS与IP的内容。

(1)CS=1500II,IP=2000H (2)CS=1200H,IP=2000H

15.若执行指令INT 21H后,将转到何处执行程序,指出CS与IP的内容。

解 将转到0:0086H和0:0084H处取出双字作为CS与IP的值,再执行程序。CS的值为内存单元0:0086H和0:0087H的内容;IP为内存单元0:0084H与0:0085H的内容。

1 6.编一程序使

(1)AX寄存器低4位清零; (2)BX寄存器低4位置1; (3)CX寄存器低4位变反;

(4)DX寄存器高3位不变,其余位清零。 解

(1)AND AX,FFF0H (2)OR BX,000FH (3)XOR CX,000FH

(4)AND DX,E000H

18.指出下列8086指令中哪些是错误的,错在何处? (1)MOV DL,BX (2)MOV DS,2000H (3)MOV [DI],[SI]

(4)MOV AX,[BX][BP] (5)XCHG CX,[2400H] (6)PUSH DH (7)IN AH,DX (8)OUT 01F0H,AX 解

(1)错。数据类型不匹配。

(2)错。立即数不能直接送往段寄存器。 (3)错。两个内存单元不能直接传送数据。

(4)错。BX和BP部可作为基址寄存器,缺少变址寄存器。没有基址加基址寻址方式。 (5)对。

(6)错。堆栈操作必须是16位数据,DH是8位寄存器。

(7)错。输入(IN)指令从端口读出的数据需送给累加器AL或AX,送给AH不行。 (8)错。端口地址为16位时,必须用DX间接寻址。

19.连续执行以下指令,填写执行指令的结果(MEM为存储器物理地址)。 MOV AX,2280H MOV CX.0FFOOH MOV DS,AX MOV SI,CX

ADD CX,AX ;①CX= H,CF= B MOV[SI],CX ;②[SI]= H.[SI+1]= H

ADC [SI],AL ;③[SI]= H,MEM= H DEC BYTE [SI] ;④[SI]= H,ZFCFPF= B MOV AX,06

ADC AX,08 ;⑤AX= H,CFAF= B AAA ;⑥AX= H,CFAF= B ADD AL,59H ;⑦AL= H,CFAF= B DAA ;⑧AL= H AND AL,0FH MOV BX,-8 NEG BX ;⑨BX= H MOV DL,06 MUL DL ;⑩AX= H OR AX,0FF00H CWD ;⑾AX= H IDIV BX ;⑿AX= H,DX= H MOV AH,4CH INT 21H 解

①CX=2180H,CF=1B ②[SI]=80H,[SI+1]=21H

③[SI]=01H,MEM=32700H ④[SI]=00H,ZFCFPF=111B ⑤AX=000FH,CFAF=00B ⑥AX=0105H,CFAF=11B ⑦AL=5EH,CFAF=00B ⑧AL=64H ⑨BX=0008H ⑩AX=0018H ⑾AX=FF18H

⑿AX=FFE3H,DX=0000H

③[SI]=01H,MEM=32700H ④[SI]=00H,ZFCFPF=111B ⑤AX=000FH,CFAF=00B ⑥AX=0105H,CFAF=11B ⑦AL=5EH,CFAF=00B ⑧AL=64H ⑨BX=0008H ⑩AX=0018H ⑾AX=FF18H

⑿AX=FFE3H,DX=0000H

本文来源:https://www.bwwdw.com/article/j2tv.html

Top