微原作业题解(2)

2018-12-22 21:46

第四章 80X86 指令系统

1、 指出源操作数的寻址方式 ⑴ MOV BX,2000H ;立即数寻址

⑵ MOV BX,[2000H]

;直接寻址

⑶ MOV BX,[SI] ;寄存器间接寻址 ⑷ MOV BX,[SI+2000H] ⑸ MOV [BX+SI],AL ;寄存器寻址 ⑹ ADD AX,[BX+DI+80] ⑺ MUL BL

;寄存器寻址 ⑻ JMP BX

⑼ IN AL,DX ;端口间接寻址 ⑽ INC WORD PTR [BP+10H] ⑾ MOV CL,LENGTH VAR ;立即数寻址 ⑿ MOV BL,OFFSET VAR1

;寄存器相对寻址 ;基址变址相对寻址 ;段内间接寻址 ;寄存器相对寻址 ;立即数寻址

2、 指出下列指令是否正确

(1) MOV DS,0100H (2) MOV BP,AL (3) XCHG AH,AL (4) OUT 310H,AL (5) MOV BX,[BX]

;错误。源操作数是立即数时,目的操作数不能时段寄存器 ;错误。操作数类型不一致 ;正确。

;错误。端口直接寻址的范围应在0~FFH之间 ;正确。 ;正确。

(6) MOV ES:[BX+DI] ,AX

(7) MOV AX,[SI+DI] ;错误。存储器寻址中有效地址不能由两个变址寄存器组成 (8) MOV SS:[BX+SI+100H],BX ;正确。 (9) AND AX,BL ;错误。操作数类型不一致 (10) MOV DX,DS:[BP] (11) ADD [SI],20H (12) MOV 30H,AL (13) PUSH 2000H

;正确。 ;正确。

;错误。目的操作数不能为立即数

;错误。堆栈指令的操作数不能是立即数 ;错误。两个操作数不能同时为存储器操作数 ;错误。操作数类型不一致 ;正确。

;错误。目的操作数不能为代码段寄存器 ;正确。

;错误。端口间接寻址的寄存器只能是DX寄存器 ;错误。移位次数大于1时应该用CL寄存器

;错误。交换指令中不能出现段寄存器

;错误。堆栈指令的操作数只能是字操作数(即16位操作数)

(14) MOV [SI],[2000H] (15) MOV SI,AL (16) ADD [2000H],20H

(17) MOV CS,AX (18) INC [DI] (19) OUT BX,AL (20) SHL BX,3 (21) XCHG CX,DS (22) POP AL

3、 写出存储器操作数物理地址的计算表达式

(1) MOV AL,[DI] ;(DS)×10H+(DI)

(2) (3) (4) (5)

MOV AX,[BX+SI] MOV 5[BX+DI],AL ADD AL,ES:[BX] SUB AX,[1000H]

;(DS)×10H+(BX)+(SI) ;(DS)×10H+(BX)+(DI)+5 ;(ES)×10H+(BX) ;(DS)×10H+1000H

(6) ADC AX,[BX+DI+2000H] ;(DS)×10H+(BX)+(DI)+2000H (7) MOV CX,[BP+SI] ;(SS)×10H+(BP)+(SI) (8) INC BYTE PTR [DI]

;(DS)×10H+(DI)

4、 若(DS)=3000H,(BX)=2000H,(SI)=0100H,(ES)=4000H,计算下列存储器操作数的物理地址。

(1) (DS)×10H+(BX)=3000H×10H+2000H=32000H

(2) (DS)×10H+(BX)+(SI)+1000H=3000H×10H+2000H+0100H+1000H=33100 H (3) (DS)×10H+(BX)+(SI)=3000H×10H+2000H+0100H=32100 H (4) (ES)×10H+(BX)=4000H×10H+2000H=42000 H

5、若(CS)=E000H,说明代码段可寻址物理存储空间的范围。

∵ 最小物理地址为:(CS)×10H+0000H=E0000H

最大物理地址为:(CS)×10H+FFFFH=EFFFFH

∴ 代码段可寻址物理存储空间的范围是:E0000H~EFFFFH

6、设(SP)=2000H,(AX)=3000H, (BX)=5000H,执行下列程序段后,(SP)=?,(AX)=?, (BX)=?

PUSH AX PUSH BX POP AX

(SP)=1FFEH,(AX)=5000H, (BX)=5000H

7、试比较SUB AL,09H与CMP AL,09H这两条指令的异同。若(AL)=08H,分别执行上述两条指令后,(AL)=?,CF=?,OF=0,ZF=?

(1) 相同点:两条指令都能完成(AL)-09H的功能,并且都影响六个状态标志位; 不同点:SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。 (2) SUB AL,09H CMP AL,09H

;(AL)=FFH,CF=1,OF=0,ZF=0 ;(AL)=08H,CF=1,OF=0,ZF=0

8、分别执行下列指令,试求AL的内容及各状态标志位的状态。 (1) MOV AL,19H ;

ADD

AL,61H AL,19H AL,61H

;(AL)=7AH ;

;(AL)=DCH

OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0 OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1 OF=0 SF=0 ZF=1 AF=0 PF=0 CF=1 OF=1 SF=1 ZF=0 AF=0 PF=0 CF=1

(2) MOV SUB (3) MOV ADD (4) MOV SUB

AL,5DH ;

AL,0C6H ;(AL)=23H AL,7EH AL,95H

;(AL)=E9H

9、用最少的指令,实现下述要求的功能。 (1) AH的高4位清零。

AND AH,0FH

(2) AL的高4位去反。 (3) AL的高4位移到低4位,高4位清0。 (4) AL的低4位移到高4位,低4位清0。

XOR AH, 0F0H

MOV CL,4 SHR AL,CL MOV CL,4 SHL AL,CL

10、设(BX)=6D16H,(AX)=1100H,写出下列三条指令执行后,AX和BX寄存器中的内容。 MOV CL,06H

ROL SHR

AX,CL BX,CL

(AX)=4004 H

(BX)=01B4 H

11、设初值(AX)=0119H,执行下列程序段后,(AX)=?

MOV

CH,AH

ADD AL,AH DAA

XCHG AL,CH ADC AL,34H DAA MOV MOV

AH,AL AL,CH

(AX)=3520 H

12、指出下列程序段的功能。

(2)

CLD LEA MOV XOR

DI,[0404H] CX,0080H AX,AX

将起始地址为0404 H开始的100 H(256)个单元至成0

(1) MOV

CX,10

LEA SI,First LEA DI,Second REP MOVSB

将 First串中前10个字符传送至Second 中

REP STOSW

13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,试求执行XCHG

BX,[BP+SI]后, (BX)=?,(2F246H)=?

(BX)=4154H

(2F246H)=6B30H

14、设(BX)=0400H,(DI)=003CH,执行LEA BX,[BX+DI+0F62H]后,(BX)=?

(BX)=139E H

15、设(DS)=C000H,(C0010H)=0180H,(C0012H)=2000H,执行LDS SI,[10H]后,(SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H

16、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,试求单独执行下列指令后的结果。

(1) MOV (2) MOV (3) LEA MOV (4) LDS MOV

CL,20H[BX][SI]

[BP][DI],CX BX,20H[BX][SI] AX,2[BX] SI,[BP][DI] [SI],BX

;(CL)=0F6 H ;(1E4F6 H)=5678 H ;(BX)=0056 H ;(AX)=1E40 H ;

;((SI))=0024 H

(5) XCHG CX,32H[BX] XCHG 20H[BX][SI],AX ;

;(AX)=5678 H ,(09226H)=1234 H

17、(DS)=2000H,(BX)=1256H,(SI)=528FH,偏移量=20A1H,(232F7H)=3280H,(264E5H)=2450H,

试求执行下述指令后的结果。

(1) JMP BX

;(IP)=1256 H ;(IP)=3280 H

(2) JMP TABLE[BX]

(3) JMP [BX][SI] ;(IP)=2450 H 18、8086/8088用什么途径来更新CX和IP的值?

可通过三个途径来更换CX和IP的值: (1) 无条件段间转移指令

(2) 远距离过程调用和返回指令 (3) 软硬件中断

19、设(IP)=3D8FH,(CS)=4050H,(SP)=0F17H,当执行CALL 2000H:0094H后,试指出(IP)、(CS)、

(SP)、((SP))、((SP)+1)、((SP)+2)和((SP)+3)的内容。

(IP)=0094H,(CS)=2000H、(SP)=0F13H

((SP))=94H,((SP)+1)=00H,((SP)+2)=00H,((SP)+3)=20H

第五章 汇编语言程序设计

2.PLENTH的值为0022,它表示当前已分配单元空间; 3.L的值为6;

5.(AX)=000AH;(BL)=0AH;(CL)=01H; 9. MOV AX,BX XCHG AL,CL MOV BX,AL MOV AX,BL XCHG AL,CH MOV BL,AL 10. MOV DL,AH AND DL,0F0H MOV CL,4

SHR DL,CL PUSH AX

AND AH,0FH MOV BH,AH AND AL,0F0H MOV BL,AL MOV CL,4 SHR BL,CL MOV CL,BH POP AX

AND AL,0FH

11. DATA SEGMENT

STRMATCH DB ‘MATCH’,0AH,0DH,’$’

STRNMATCH DB ‘NOMATCH,0AH,0DH,’$’ STRING1 DB ‘GOOD MORNING!’

LENG1 EQU $-STRING1 ; LENG1的值为13,它表示存储器当前地址与STRING1首地址的差值,设置循环次数时用

STRING2 DB ‘GOOD MOING!’

LENG2 EQU $-STRIGN2 ; LENG2的值为11,它表示存储器当前地址与STRING2首地址的差值,设置循环次数时用 DATA ENDS

CODE SEGMENT

ASSUME CS : CODE , DS : DATA

START : MOV AX,DATA MOV DS,AX

MOV CX,LENG1

CMP CX,LENG2 ;串长度比较,不同的话内容就不用比了。 JNZ NMATCH LEA SI,STRING1 LEA DI,STRING2

CLD


微原作业题解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:智能电网环境下的继电保护技术

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

马上注册会员

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