微机计算机原理及应用大连理工出版社答案 联系客服

发布时间 : 星期六 文章微机计算机原理及应用大连理工出版社答案更新完毕开始阅读

8086CPU与外部(存储器和I/O端口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有外部总线操作。总线接口部件负责与存储器和I/O接口传送信息,8086CPU与存储器或I/O接口电路信息传送都是通过BIU进行的。执行单元EU: 负责指令的译码执行。它主要由算术逻辑单元ALU、寄存器组、标志寄存器flags和EU控制器组成。其中算术逻辑单元ALU是执行单元EU的主要部件,其功能有两个,一是进行算术/逻辑运算,二是按指令的寻址方式算出所寻址的16位偏移地址。寄存器组由4个通用16位寄存器(AX、BX、CX、DX)和4个16位的专用寄存器(源变址寄存器SI、目的变址寄存器DI、堆栈指针寄存器SP、基址指针寄存器BP)组成。标志寄存器flags存放ALU运算结果特征。EU控制器是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。

习题三

一、选择题

1.8086/8088CPU直接寻址方式的特点是数据所在单元的地址包含在( B )中。 A.数据存储器 B.指令 C.堆栈 D.通用寄存器

2.在8086的循环控制指令LOOP ABC,目标地址ABC距LOOP的下一条指令的地址偏移范 围(A )。

A. +127~-128 B. 0~65535 C.0~255 D. +32767~-32768

3.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEA AX,[SI] 执行后(AX)=( C )。

A.0002H B.0005H C.0004H D.C302H 4.执行下面程序段后,BX中的内容是(C )。 MOV CL,2 MOV BX,0A6H ROL BX,CL

A.0530H B.3050H C.0298H D.0035H 5.用于控制串操作的方向(増量/减量)标志是( D )。 A.TF B.PF C.IF D.DF 6.指令PUSH DS的目的操作数寻址方式采用的是( A )。

A.寄存器寻址 B.寄存器间接寻址 C. 直接寻址 D.固定寻址 7.如果(AL)=A3H,执行指令CBW后,(AX)=( B )

A.00A3H B.FFA3H C.0FA3H D.A3OOH

8.下列指令中,不含有非法操作数寻址的执指令是(D )。

A.ADC [BX],[30H] B.ADD [SI+DI],AX C.SBB AX,CL D.SUB [3000H],DX 9.指令执行前,(AX)=8F00H,执行CWD后,(DX)=(B ) A.0000H B.FFFFH C.00FFH D.0001H 10.指令LEA SP,DS:[0470H]执行后(SP)=(B )

A. 地址为0470H存储单元中的内容 B. 0470H C. 0470H+(SS) D. 0470H+(DS) 11.执行下列程序后,(AL)=( B )。 MOV AL,92H SUB AL,71H DAS

A.21 B.11 C.21H D.11H

12.在8086CPU中,( C )组寄存器都可以用来实现对存储器的寻址。

A.AX,SI,DI,BX B.BP,BX,CX,DX C.SI,DI,BP,BX D.BX,CX,SI,DI 13.若已知(SP)=2000H,(AX)=0020H,则执行指令PUSH AX后(SP)和((SS):(SP)) 的值分别为( C )。

A.2002H,00H B.1FFEH,00H C.1FFEH,20H D.2002H,20H 二、判断题(判断对错,并改正)

1.输入/输出指令(如IN、OUT)是所有微处理器必需具备的指令。(×)

输入/输出指令(如IN、OUT)不是所有微处理器必需具备的指令。

2.在8086汇编语言源程序中,只要改变CS、IP之中任一寄存器的值就可以达到程序跳转的目的。(√)

3.判断下列指令是否有错误,并改正。

(1)MOV CS,BX (×);代码段寄存器不能做目的操作数,MOV AX,BX。 (2)PUSH 02FFH (×) ;立即数不能做堆栈的操作数, PUSH AX。

(3)MOV BYTE PTR[BX],1000 (×) ;操作数字长不明确,MOV BYTE PTR[BX],10H。 (4)OUT [BX],AX (×);I/O口间接寻址只能使用做DX间接寻址寄存器, OUT [DX],AX。 (5)MOV IP,AX (×) ;指令指针寄存器不能做目标操作数, MOV BX,AX。 (6)MOV AL,1000 (×);源目操作数字长不匹配, MOV AX,100。0

(7)SAR AX,8 (×);移位指令移位次数超过一次只能用CL做以为次数寄存器,SAR AX,CL。 (8)OUT AL,0436H (×); I/O口间接寻址只能使用做DX间接寻址寄存器, OUT AL,[DX]。

(9)MOV DS,3000H (√)。

(10)ADD [DI],[SI]( ×);加法指令不能源目操作数均为存储器操作数ADD [DI],AX。 三、填空题

1.8086CPU允许使用的间接寻址的寄存器有 SI , DI , BX 和 BP 。

2.MOV AX,ES:[BX][SI]中,源操作数的物理地址计算式是 ES*10H+BX+SI 。 3.设(AX)=2A45H,(DX)=5B19H。执行指令SUB AX,DX后,(AL)= 2C H,CF= 1 , ZF= 0 ,OF= 0 。

4.假设VAR为数据段中已定义的变量,则指令MOV BX,OFFSET VAR中源操作数的寻址方 式是 立即寻址 。MOV BX, VAR指令源操作数的寻址方式是直接寻址方式。

5.若(AL)=96H,(BL)=12H,则执行ADD AL,BL后,结果为 A8 H,标志位OF为 0 , CF为 0 。

6.已知(AL)=01011101B,执行指令NEG AL后再执行CBW,(AX)=____FFA3H______。 7.若(AL)=01001001B,执行ADD AL,AL指令后,再执行DAA命令,则(AL)= 98H , (CF)= 0 ,(AF)= 1 。

8.已知指令序列如下:

MOV AX,0FFBDH MOV BX,12F8H IDIV BL

此指令序列执行后,(AX)= FD08H ,(BX)= 12F8H 。

9.在数据传送类指令中,只有 SAHF 和 POPF 两条指令会影响标志位的值,其中 POPF指令唯一可以改变TF标志的指令。

10、指令MOV DL,[BX][SI]中,源操作数使用 基址变址的寻址方式,源操作数在 数据 段中。 四、简答题

1.8086微处理器有哪几种寻址方式?分别说明下列指令的源操作数和目的操作数各采用什么寻址方式?

(1)MOV AX,2408H (2)MOV CL,0FFH (3)MOV BX,[SI] (4)MOV 5[BX],BL (5)MOV [BP+100H],AX (6)MOV [BX+DI],‘$’ (7)MOV DX,ES:[BX+SI] (8)MOV VAL[BP+DI],DX (9)IN AL,05H (10)MOV DS,AX

答:8086的寻址方式有立即数寻址;寄存器寻址;直接寻址;寄存器间接寻址;基址变址寻址; 寄存器先对寻址;基址变址相对寻址;IO端口直接寻址;IO端口间接寻址。(1)源操作数:立即数,

目的操作数:寄存器(2)源操作数:立即数,目的操作数:寄存器;(3)源操作数:寄存器间接寻址,目的操作数:寄存器;(4)源操作数:寄存器,目的操作数:寄存器相对寻址;(5)源操作数:寄存器,目的操作数:寄存器相对寻址;(6)源操作数:立即数,目的操作数:基址变址寻址;(7)源操作数:段超越的基址变址寻址,目的操作数:寄存器;(8)源操作数:寄存器;目的操作数:基址变址相对寻址;(9)IO端口直接寻址,源操作数:立即数,目的操作数:寄存器;(10)源操作数:寄存器,目的操作数:寄存器。

2.假设标志寄存器各状态标志位的初始值为0,试分析分别单独执行如下各组指令后,有关寄存器和标志寄存器的值:

(1)MOV AX,2B7EH

MOV CX,4DB5H ADD AX,CX

答:AF=1,CF=0,OF=0,SF=0,ZF=0,PF=1;AX=7933H,CX=4DB5H 。

(2)STC

MOV BX,B69FH MOV AX,43A2H SBB AX,BX

答:CF=1,OF=1,ZF=0,SF=1,AF=1,PF=0;AX=8C02H,BX=B69FH。

(3)MOV DX,1234H

ADD ADD ADD

DL,DH DH,DL DH,0E2H

答:CF=1,OF=0,AF=0,ZF=0,PF=1,SF=0;3A46H。

3. 试用逻辑运算指令分别实现下列逻辑操作。

(1)令AH中数据的低两位变为“0”,其余位不变;答:AND AH,11111100B (2)令AL中数据的低两位变为“1”,其余位不变;答:OR AL,00000011B (3)令CX中数据的低两位变反,其余位不变。答:XOR CX,0000000000000011B 4.指出下列指令中哪些是错误的,错在什么地方。

答:(1)操作数字长不对,DL应该改为DX;(2)立即数不做目的操作数;(3)正确;(4)不能 两个操作数都是存储器;(5)IP不做目的操作数;(6)正确;(7)BX,BP都是基址寄存器,不能一起用改成[BX+SI];(8) 正确;(9)SI和DI 是变址寄存器不能同时用;(10)OFFSET后面应该是地址;