计算机组成原理小结和习题2 联系客服

发布时间 : 星期一 文章计算机组成原理小结和习题2更新完毕开始阅读deb01017a76e58fafab00354

段内间接寻址、段间直接寻址和段间间接寻址。这些寻址方式对于理解和记忆80x86指令系统有很大帮助,读者应很好掌握。

本章重点逐条解释了8086指令系统中六大类全部指令(包括指令前缀)’。8086指令系统共有指令助记符115个,如果按机器代码扩展开来可达3000条以上。这么多的指令要正确无误地记忆,显然并非易事。其难点在于:第一,指令之间只有很细小的差别,容易互相混淆;第二,初学时容易写出指令系统中不存在的非法指令,例如“MOV[BX】,[SI】'就是一条非法指令。为此,读者应特别注意指令系统中指令的分类以及指令中操作数允许的寻址方式,使所有的指令能够有机地串在一条条的线上,不致于混乱。汇编语言是助记符语言,因此,在记忆指令时读者应尽可能地根据其英文含义来帮助记忆。

习题

1.指出下列指令中源操作数的寻址方式。

(1)MOV BX,2000H (2)MOV BX,[2000H]

(3)MOV BX,【SI】 (4)MOV BX,[SI+2000H] (5)MOV [BX+SI】,AL (6)ADD AX,[SI+2000H] (7)MUL BL (8)SUB AX,BX

(9)IN AL,DX (10)PlUSH WORD PTR[BP+10H] (11)MOV CL,LENGTHVARl (12)MOV BL,OFFSET VARI 2.指出下列指令是否正确,若不正确请说明原因。 (1)MOV DS,0100H (2)MOV BP,AL (3)XCHG AH,AL (4)OUT 310H,AL (5)MoV BX,[BX] (6)MoV ES:[BX+DI],AX (7)MOV AX,[SI+DI] (8)MoV SS:[BX+SI+100H],BH (9)AND AX,BL (10)MOV DX,DS:[BP] (11)ADD [SI],20H (12)MOV 30H,AL (13)PUSH 2000H (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)POPAL

3.写出下列指令中存储器操作数物理地址的计算表达式。

(1)MOV AL,[DI] (2)MoV AX,[BX+SI] (3)MOV 5[BX+DI],AL (4)ADD AL,ES:[BX] (5)SUB AX,[1000H] (6)ADC AX,[BX+DI+20010H] (7)MoV CX,[BP+SI] (8)INC BYTEPTR[DI]

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

(1)MOV [BX],AH (2)ADD AL,[BX+SI+lOooH] (3)MoV AL,[BX+SI] (4)SUB AL,ES:[BX] 5.若(CS)=E000H,说明代码段可寻址物理存储空间的范围。

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

PUSH AX PUSH BX POP AX

7.试比较SUBAL,09H与CMPAL,09H这两条指令的异同,若(AL)=08H,分别执行上述两条指令后(AL)=?(cF)=?(OF)=?(zF)=?

8.分别执行下列指令后,试求AL的内容及各状态标志位的状态。

(1)MoV AL,19H (2)MOV AL,19H

ADD AL,61H SUB AL,61H (3)MOV AL,5DH (4)MoV AL,7EH

ADD AL,0C6H SUB AL,95H

9.选用最少的指令,实现下述要求的功能。 (1)AH的高4位清0。 (2)AL的高4位取反。

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

(4)AII的低4位移到高4位,低4位清0。

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

MOV CL,06H ROL AX,CL SHR BX,CL

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

MoV CH,AH ADD AL,AH DAA

XCHG AL,CH ADC AL,34H DAA

MoV AH,AL MoV AL,CH

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

(1)MOV CX,10

CLD

LEA SI,First LEA DI,Second REP MOVSB (2)CLD

LEA DI,[0404H] MoV CX,0080H XOR AX,AXREPSTOSW

13.设(BX)=6F30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,试求执行xcHGBx,[BP+SI]后,(Bx)=?,(2F246H)=?

14.设(BX)=0400H,(DI)=003CH,执行LEABx,【BX+DI+0F62H]后,(Bx)=? 15.设(DS)=C000H,(C0010H)--0180H,(C0012H)=2000H,执行LDsSI,[10H]

后,(sI)=?,(DS)=?

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

(1)MOV CL,20H[BX][SI] ;(CL)=? (2)MOV [BP][DI],CX ;(1E4F6H)=? (3)LEA BX,20H[BX][SI] ;(BX)=?

MOV AX,2[BX] ;(AX)=? (4)LDS SI,[BX][DI]

MoV [SI],BX ;((SI))=? (5)XCHG CX,32H[BX]

XCHG 20[BX][SI],AX ;(AX)=? (09226H)=?

17.若cPU中各寄存器及洲参数如图4.30所示,试求独立执行如下指令后,cPu及RAM相应寄存器及存储单元的内容为多少。

(1)MOV DX,[BX+2] ;(DX)=? (BX)=? (2)PUSH CX ;(SP)=? ((SP))=? (3)MOV CX,BX ;(CX)=?(BX)=? (4)TEST AX,01 ;(AX)=?(CF)=? (5)MOV AL,[SI] ;(AL)=? (6)ADC AL,[DI] ;(AL)=?(CF)=? DAA ;(AL)=?

(7)INC SI ;(SI)=? (8)DEC DI ;(DI)=? (9)MOV [DI],AL ;((DI))=? (10)XCHG AX,DX ;(AX)=? (DX)=? (11)XOR AH,BL ;(AH)=? (BL)=? (12)JMP DX ;(IP)=?