微机原理习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.什么叫做微处理器的并行操作方式?为什么说8086CPU具有并行操作的功能?在什么情况下8086的执行单元EU才需要等待总线接口单元BIU提取指令?

2.如果带符号数FFH和01H相加,会产生溢出吗?

3.某个数包含有5个1,它具有什么奇偶性?

4.某个数为全0,它的零标志为0吗?

5.用什么指令设置哪个标志位,就可以控制微处理器的INTR引脚?

6.微处理器在什么情况下才执行总线周期?一个基本的总线周期由几个状态组成?在什么情况下需要插入等待状态?

7.什么叫非规则字,微处理器对非规则字是怎样操作的

8.8086对1MB的存储空间是如何按高位库和低位库来进行选择和访问的?用什么控制信号来实现对两个库的选择

9.8086/8088 CPU的哪些引脚采用了分时复用技术?哪些引脚具有两种功能?

10.8086/8088 CPU的微机系统有哪两种方式?它们由什么引脚来实现控制?这两种工作方式的主要特点和区别如何?

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

(1)MOV AL,[DI] (2)MOV AX,[BX+SI]

(3)MOV 8[BX+DI],AL (4)ADD AL,ES:[BX]

(5)SUB AX,[2400H] (6)ADC AX,[BX+DI+1200H]

(7)MOV CX,[BP+SI] (8)INC BYTE PTR[DI]

12.指出下列指令的错误何在?

(1)MOV CS,AX (2)MOV BL,SI+2

(3)MOV 60H,AL (4)PUSH 2400H

(5)MUL -60H (6)MOV [BX],[DI]

13.阅读下列程序段,指出每条指令执行后有关寄存器的内容是多少?

MOV AX,0ABCH

DEC AX

AND AX,00FFH

MOV CL,4

SAL AL,1

MOV CL,AL

ADD CL,78H

PUSH AX

POP BX

14.(1)指出RET和IRET两条指令的区别,并说明各用在什么场合?

(2)说明MOV BX,DA TA和MOV BX,OFFSET DATA指令之间的区别?

15.设SP=2000H,AX=3000H,BX=5000H,执行下列片段程序后,问SP=?,AX=?,BX=? PUSH AX

PUSH BX

POP AX

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

16.若AX=5555H,BX=FF00H,试问在下列程序执行后,AX=?,BX=?,CF=?

AND AX,BX

XOR AX,AX

NOT BX

17.若CS=E000H,说明代码段可寻址物理存储地址空间的范围?(E0000H~EFFFFH)

18.选用最少的指令,实现下述要求的功能。

(1)AH的高4位清零。(AND AH,0FH)

(2)AL的高4位取反。(XOR AL,0F0H)

(3)AL的高4位移到低4位,高4位清零。(MOV CL,4 SHR AL,CL)

(4)AH的低4位移到高4位,低4位清零。(MOV CL,4

SHL AL,CL)

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

MOV CL,06H

ROL AX,CL;(AX)=4004H

SHR BX,CL;(BX)=01B4H

20.设初值AX=0119H,执行下列程序段后AX=?

MOV CH,AH ;(CH)=01H DAA ;(AL)=35H

ADD AL,AH ;(AL)=1AH MOV AH,AL;(AH)=35H

DAA;(AL)=20H MOV AL,CH;(AL)=20H

XCHG AL,CH;(AL)=01H

ADC AL,34H;(AL)=35H (AX)=3520H

21.设初值AX=6264H,CX=0004H,执行下列程序段后AX=?

AND AX,AX;(AX)=6264,(ZF)=0

JZ DONE

SHL CX,1;(CX)=8

ROR AX,CL;(AX)=6462H

DONE: OR AX,1234H;(AX)=7676H

22.写出可使AX清零的几条指令。

22.什么叫堆栈?说明堆栈中数据进出的顺序以及压入堆栈和弹出堆栈的操作过程?PUSH和POP指令在堆栈与寄存器或存储单元之间总是传送多少位数字?哪个段寄存器不能从堆栈弹出?

23.写出程序段,实现:

(1)用CL中的数据除BL中的数据,然后将结果乘2,最后的结果是存入DX寄存器中的16位数。

MOV AL,CL

XOR AH,AH

DIV BL

MOV BL,2

MUL BL

MOV DX,AX

(2)将DH中的最左3位清0,而不改变DH中的其它位,结果存入BH中。

AND DH,00011111B

(3)将AX中的最右4位置1,将AX中的最左3位清0,并把AX中的7、8、9位取反OR AX,000 F H

AND AX,1FFFH

XOR AX,0000 0011 1000 0000B

(4)将DI中最右5位置1,而不改变DI中的其它位,结果存入SI中。

OR DI,001FH

MOV SI,DI

24.用串操作指令设计实现如下功能的程序段:先将100个数从6180H处搬移到2000H处;再从中检索出等于AL中字符的单元,并将此单元换成空格符。

MOV AX,DS

MOV ES,AX

MOV SI,6180H

MOV DI,2000H

MOV CX,100

CLD

REP MOVSB

MOV DI,2000H

MOV CX,100

MOV AL,’@’

AGAIN:REPNZ SCASB AGAIN:CMP AL,[DI]

JNZ EXIT JNE L1

MOV [DI-1],20H MOV [DI],20H

JMP AGAIN L1: INC DI

LOOP AGAIN EXIT:HLT HLT

第四章部分习题答案

6.MOV CX,128

MOV SI,4000H

MOV DI,0A000H

CLD

REP MOVSB

STD

DEC DI

DEC SI

REPE CMPSB

JNE ERROR

MOV BL,0FFH

JMP OUT

ERROR: MOV BL,00H

OUT:HLT

相关文档
最新文档