微机原理课后习题答案

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

1.3 微型计算机采用总线结构有什么优点?

解:采用总线结构,扩大了数据传送的灵活性、减少了连接。而且总线可以标准化,易于兼容和工业化生产。

2.6 IA-32结构微处理器支持哪几种操作模式?

解:IA-32结构支持3种操作模式:保护模式、实地址模式和系统管理模式。操作模式确定哪些指令和结构特性是可以访问的。

2.14 8086微处理器的总线接口不接有哪些功能?请逐一说明。

解:总线接口单元(BIU)负责与存储器接口;执行单元(EU)执行各种操作。BIU主要由段寄存器、指令指针、加法器(形成20位地址)和预取的指令流队列等组成。

2.15 8086微处理器的总线接口不见由哪几部分组成?

解:8086微处理器中的总线接口单元(BIU)负责CPU与储存器之间的信息传送。具体地说,BIU既负责从内存的指令部分取出指令,送至指令队列中排队(8086的指令队列有6个字节,而8088的指令队列只有4个字节);也负责传送执行指令时所需的操作数。执行单元(EU)负责执行指令规定的操作。

2.16 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?解:指令的物理地址=12000h+FF00H=21F00H

2.17 8086微处理器的执行部件有什么功能?由哪几部分组成?

解:8086微处理器的执行部件负责指令的执行。它主要由算术逻辑单元、标志寄存器和通用寄存器等部分组成。

附:8086CPU从功能上分包括几部分,各有什么功能?

3.3 写出下指令中内存操作数的所在地址。

(1)MOV AL,[BX+10]

(2)MOV [BP+10],AX

(3)INC BYTE PTR[SI+5]

(4)MOV DL,ES:[BX+SI]

(5)MOV BX,[BP+DI+2]

解:(1)数据段BX+10单元

(2)堆栈段BP+10单元

(3)数据段SI+5字节单元

(4)附加段(ES段)BX+SI单元

(5)堆栈段BP+DI+2单元

3.4 判断下列指令书写是否正确。

(1)MOV AL , BX (错,AL与BX数据宽度不同)

(2)MOV AL , CL (对)

(3)INC [BX] (错,因为不明确是增量字节还是字)

(4)MOV 5, AL (错,立即数不能作为目的操作数)

(5)MOV [BX],[SI] (错,因为不明确要传送的是字节还是字)

(6) MOV BL,0F5H (对)

(7) MOV DX,2000H (对)

(8)POP CS (错,CS不能作为POP指令的操作数)

(9)PUSH CS (错,CS不能作为PUSH指令的操作数)

3.5 设堆栈指针SP的初值为1000H,AX=2000H,BX=3000H,试问:

(1)执行指令PUSH AX后,SP的值是多少?

(2)再执行PUSH BX及POP AX后,SP、AX和BX的值是多少?

解:(1)SP=0FFEH

(2)SP=0FFEH,AX=3000H,BX=3000H

3.6 想要完成把[3000H]送[2000H]中,用指令:MOV [2000H],[3000H] 是否正确?如果不正确,应该用什么方法实现?

解:不正确。应为:MOV BL,200

SUB BL,AL

3.15 设DS=2100H,SS=5200H,BX-1400H,BP=6200H,说明下面两条指令所进行的具体操作:MOV BYTE PTR[BP],200

MOV WORD PTR[BX],2000

解:前一条指令时把立即数(应是字节)200,传送至堆栈段(BP的默认段)偏移量由BP 规定的字节单元,地址为:52000H+6200H=58200H。

第二条指令时把立即数2000,传送至数据段(BX的默认段)偏移量由BX规定的字单元,地址为:21000H+1400H=22400H。

3.16 使用堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内存操作数时应该分别要注意什么问题?

解:使用堆栈指令可以把内存单元作为一个操作数(从内存到内存)。但堆栈固定在堆栈段且只能由SP指向。且堆栈操作要修改堆栈指针。MOV指令不能实现内存单元间的数据传送。XCHG指令时交换,有一个操作数必须是寄存器。

3.17 下面这些指令中哪些是正确的?哪些是错误的?若是错误的,请说明原因。

(1) XCHG CS,AX (错误,CS不能交换)

(2) MOV [BX],[1000H ] (错误,MOV指令不能在内存间传送)

(3)XCHG BX,IP (错误,IP不能交换)

(4)PUSH CX (错误,CS可以作为PUSH指令的操作数)

(5)POP CX (错误,CS可以作为POP指令的操作数)

(6)IN BX,DX (错误,IN指令的目的操作数时累加器)

(7)MOV BYTE[BX],1000 (错误,目的操作数是字节单元)

(8)MOV CS,[1000] (错误,CS不能作为MOV指令的目的操作数)

3.22 用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体地讲,在进行BCD码加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?

解:因为8086指令把操作数作为二进制数进行二进制运算,要得到正确的BCD结果,需要进行调整。在加、减、乘法指令之后加上BCD调整指令,而在除法指令之前先用BCD 调整指令再用除法指令。

3.30 设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行PUSH BX指令后,栈顶指令和栈顶两个字节的内容分别是什么?

解:当前的栈顶为:20100H+FE00H=2FF00H。执行PUSH BX后,栈顶为2FF00H-2=2FDFE,而2FF00H中的内容为57H,2FDFF中的内容为34H。

4.1 在下列程序运行后,给响应的寄存器及存储单元填入运行的结果:

MOV AL,10H

MOV CX,1000H

MOV BX,2000H

MOV [CX],AL

XCHG CX,BX

MOV DH,[BX]

MOV DL,01H

XCHG CX,BX

MOV [BX],DL

HLT

解:寄存器及储存单元的内容如下:

AL=10H

BL=00H

BH=20H

CL=00H

CH=10H

DL=01H

DH=10H

(1000H)=10H

(2000H)=01H

4.2 要求同4.1,程序如下:

相关文档
最新文档