北理工微机课后习题答案

  • 格式:doc
  • 大小:122.50 KB
  • 文档页数:4

课后习题部分参考答案
第1章
1.3 (1)166D;A6H
(2)0.75D
(3)11111101.01B;FD.4H
(4)5B.AH;(10010001.011000100101)BCD
1.4 8位原码:-127~+127;反码:-127~+127;补码:-128~+127
16位原码:-32767~+32767;反码:-32767~+32767;补码:-32768~+32767
1.5 (1)原码:11110011B;补码:10001101B
(2)原码:11000111B;补码:10111001B
(3)原码:01001001B;补码:01001001B
1.9 34H,41H,33H,3DH,21H
1.10 34H,B9H
1.11 B4H,39H
第2章
2.10 8088在最小模式下:
(1)当CPU访问存储器时,要利用信号线:WR#、RD#、IO/M#(低)、ALE、AD0~AD7、A8~A19。

(2)当CPU进行I/O操作时,要利用信号线:WR#、RD#、IO/M#(高)、ALE、AD0~AD7、A8~A19。

(3)当HOLD有效并得到响应时,CPU所有三态输出的地址信号、数据信号和控制信号置高阻。

2.15 8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可用16位寄存器来寻址20位的内存空间。

最大段为64KB,最小段为16B。

第3章
3.2 源操作数寻址方式及其物理地址为:
(1)MOV AX,BX 寄存器寻址;寄存器BX
(2)MOV DL,80H 立即寻址;指令码MOV所在字节的下一字节单元
(3)MOV AX,V AR 立即寻址,同上。

(4)MOV AX,V AR[BX][SI] 基址-变址-相对寻址;(DS)*16+(BX)+(SI)+V AR=608F0H。

(5)MOV AL,‘B’立即寻址,同2。

(6)MOV DI,ES:[BX] 寄存器间接寻址;(ES)*16+(BX)=20800H。

(7)MOV DX,[BP] 寄存器间接寻址;(SS)*16+(BP)=16200H。

(8)MOV BX,20H[BX] 寄存器相对寻址;(DS)*16+(BX)+20H=60820H。

3.3 转移地址:
(1)JMP 2300H ;(CS)*16+2300H=04300H。

(2)JMP WORD PTR[BX];(CS)*16+[BX]=04300H。

(3)JMP DWORD PTR[BX+DA TA];[BX+DATA]=(217E2H)*16+(217E0H)=90400H。

3.6 (1)MOV AH,CX;两操作数类型(长度)不一致。

(2)MOV 33H,AL;立即数不能作为目的操作数。

(3)MOV AX,[SI][DI];基址-变址寻址不允许两个变址寄存器同时出现。

(4)MOV [BX],[SI];MOV指令的两个操作数不能同时为存储器操作数。

(5)ADD BYTE PTR[BP],256;两操作数字长不同。

(6)MOV DA TA[SI],ES:AX;寄存器 AX与段无关,不能设段超越。

(7) JMP BYTE PTR[BX];转移地址至少为16位。

(8)OUT 230H,AX;当端口地址的位数超出8位时,应使用间接寻址。

(9)MOV DS,BP;正确。

(10)MUL 39H;MUL指令的操作数不能为立即数。

3.7 AF=1,CF=0,OF=1,PF=0,SF=1,ZF=0。

3.10 (1)使AX为0:
XOR AX,AX;AND AX,0;SUB AX,AX;MOV AX,0等
(2)使BL高、低4位互换:
MOV CL,4
ROL BL,CL (ROR BL,CL)
(3)屏蔽CX的B11、B7、B3:
AND CX,0F777H
(4)测试DX的B0和B8是否同时为1:
AND DX,0101H (注意:TEST DX,0101H可用于测试该2位是否同时为1!)CMP DX,0101H
JZ ONE
3.12 AF=0,PF=1,(仅对低8位);CF=1,OF=1,SF=0,ZF=0。

3.15 ;统计BUFFER开始的连续200个单元中0的个数
MOV CX, 200
LEA SI, BUFFER
XOR BL, BL
ADAIN: LODSB
CMP AL, 0
JNE GOON
INC BL
GOON: LOOP AGAIN
HLT
3.17 执行MUL BL后,(AX)=0A8CH,CF=OF=1(当字节乘法后的AH非0时,否则为0);
执行IMUL BL后,(AX)=0FF8CH,CF=OF=1;
第4章
4.2 (1)MOV AL,DATA1 将变量DA TA1的值送AL:(AL)=10H
(2)MOV BX,OFFSET DA TA2 将变量DA TA2的偏移地址送BX:(BX)=0003H (3)LEA SI,STRING 将变量STRING的偏移地址送SI:(SI)=0017H
ADD DI,SI 将SI的内容与DI内容相加结果送DI:(DI)=(DI)+0017H。

4.5 见课件或例4-20(注意存放顺序)。

4.7 (AX)=1E00H (注意:存放顺序为:0AH,00H,14H,00H,1EH,00H,28H,00H,32H,00H)
4.15 存放顺序为:10H, 34H, 07H, 09H, 42H, 00H, 42H, 00H, 48H, 45H, 4CH, 4CH, 4FH, 21H, 0CDH, 0ABH, 00H, 00H。

(注意:EQU定义的变量不分配内存)
4.16 功能:将ABCDEFG依次显示在屏幕上。

4.17 方法一:
DSEG SEFMENT
BUFFER DB 100 DUP (?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:DSEG
BEGIN: MOV AX,DSEG
MOV DS,AX
MOV ES,AX
MOV AX,0AA55H
LEA DI,BUFFER Array CLD
MOV CX,50
REP STOSW
HLT
CDEG ENDS
END BEGIN
第5章
5.5 8BFFFH-20000H+1=6C000H, 432KB。

5.6 采用6264(8K*8bits)构成上述内存空间,需432/8=54片。

5.7 采用2164(64K*1bit)构成128KBRAM,需128/64*8=16片;地址线17根:1其中,16根用于片内寻址,1根用于片选。

5.10
00*0 *** * **** **** ****
Y0#: 00000H~01FFFH和20000H~21FFFH
Y3#: 06000H~07FFFH和26000H~27FFFH
Y5#: 0A000H~0BFFFH和2A000H~2BFFFH
Y7#: 0E000H~0FFFFH和2E000H~2FFFFH
5.11
第6章
6.13 设8259端口地址为FF20H~FF21H
INIT8259:MOV DX,0FF20H
MOV AL,13H
OUT DX,AL
MOV DX,0FF21H
MOV AL,4H
OUT DX,AL
MOV AL,03H
OUT DX,AL
HLT
6.14 单片8259可管理8级可屏蔽中断;3片可管理22级可屏蔽中断。