微机原理与接口技术1-8习题解答王玉良 下载本文

该双字在存储器中的存

A0001H A0002H A0003H A0004H 78 56 34 12 放如下:

9.说明8086的EU和BIU的主要功能。

8086 CPU的BIU对外提供16位双向数据总线和20位地址总线。它负责完成所有的外部总线操作,即完成取指令、指令排队、读与写操作、地址转换和总线控制。 执行单元EU的主要功能是完成指令译码与执行指令工作。EU从BIU的指令队列输出端取得指令,对指令的代码进行译码,产生操作数地址并将其传送给BIU,向BIU申请完成存储器或I/O的读写周期,对操作数进行指令规定的操作。在指令执行期间,EU测试标志位,根据指令执行的结果修改标志位。若指令队列是空的,EU等待下一次取得指令字节,且修改指令队列的输出指针。EU有一个16位的ALU,专门用来对操作数进行算术和逻辑运算。

10.说明8086CPU组成的系统中为什么必须使用地址锁存器?

8086的数据总线和低16位地址总线是采用分时复用的。当执行存储器读写或I/O读写,在CPU总线周期的T1状态时,作地址总线输出(A15~A0),在其他状态均作为双向数据总线使用。地址总线的高4位A19~A16也是复用线,但他们是地址/状态复用线。为了使地址信息在整个总线周期中均保持有效地址,必须设置地址锁存器把T1

状态上输出的20条地址信息进行锁存。

11.8086 CPU的最大寻址范围是多少?如何实现对整个地址空间寻址?

8086的存储器最大寻址范围为1M字节(地址为00000H~FFFFFH);I/O寻址的最大范围为64K(口地址为0000H~FFFFH)。对1M存储器的寻址是通过段寄存器来实现的,每个存储器段为64K字节,1M字节的存储器可以分为若干个64KB段,利用段寄存器可寻址整个存储空间。对I/O空间的寻址可使用直接寻址(对8位口地址);也可使用DX进行间接寻址(对16位口地址)。

16.在8086中,地址/数据复用信号是如何区分的?

在8086中,地址/数据复用信号是在时间上区分的。在总线周期的T1状态,CPU在这些引脚上输出存储器或I/O端口地址,在T2、T3、T4状态则输出数据收发信号。

第3章 习题及参考解答

1.指出下列各指令中源操作数和目的操作数的寻址方式。 (1)MOV DI,100 (2)MOV CX.100[SI] (3)MOV [SI],AX (4)ADD AX,[BX+DI] (5)AND AX,BX (6)MOV DX,[1000] (7)MOV BX,[BP+DI+100] (8)PUSHF

(9)SUB [1050],CX (10)AND DH,[BP+4] 解

源操作数

目的操作数 寄存器寻址 寄存器寻址 寄存器间接寻址

(1)立即寻址 (2)变址寻址 (3)寄存器寻址

(4)基址加变址寻址 寄存器寻址 (5)寄存器寻址 (6)直接寻址

寄存器寻址 寄存器寻址

(7)基址加变址寻址 寄存器寻址 (8)寄存器寻址 (9)寄存器寻址 (10)变址寻址

2.试述指令MOV AX,2000H和MOV AX,DS:[2000H]的区别? 解 区别有三条:

(1) MOV AX,2000H对源操作数是立即寻址,而MOV AX.[2000H]对源操作数是

直接寻址;

(2) 前者功能是把立即数2000H送入AX中,而后者是把内存2000H单元与2001H

单元的内容取出送入AX 中;

(3) 两者的机器代码不同,执行速度也不同,前者执行时间快,后者执行时间慢。

寄存器间接寻址 直接寻址 寄存器寻址

4.若DS=4000H,BX=0800H,[40800H]=05AOH,[40802H]=2000H,求执行指令LDS SI,[BX]后,DS与SI中的内容。若上题中的DS换成ES,其他条件不变,求执行指令LES DI,[BX]后,ES与DI中的内容。 解

SI=05AOH,DS=2000H DI=05AOH,ES=2000H

5.若AX=98ABH,BX=A8BCH。求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF,ZF,AF,PF,CF和OF的状态。

解 AX=4167H,BX=A8BCH,SFZFAFPFCFOF=001011B。

6.若CX=6700H,DX=78FFH,CF=1。求分别执行指令 (1)ADD CX,DX (2)ADC CX,DX (3)SUB CX,DX (5)AND CX,DX (6)OR CX,DX (7)XOR CX,DX

后,CX与DX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。 解

(1)CX=DFFFH,DX=78FFH,SFZFAFPFCFOF=100101B