微计算机原理部分习题答案1—6章 联系客服

发布时间 : 星期日 文章微计算机原理部分习题答案1—6章更新完毕开始阅读ed19dcc6cd1755270722192e453610661fd95af8

(8)LEA AX,[SI]

CPUM

BX 0100H 12H

30100H SI 0002H 34H 30101H DS

3000H 56H 30102H

30103H 78H

┇31200H

2AH 31201H

4CH 31202H

312-3H B7H

65H 解:(1)(AX)=2010H(2)(AX)=0100H(3)(AX)=4C2AH(4)(AX)=3412H (5)(AX)=4C2AH (6)(AX)=7856H (7)(AX)=65B7H (8)(AX)=0002H

3-4

已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)=45H,

执行下列指令后,指出结果等于?

解:(1)OUT DX,AL;端口(DX)=40H

(2)OUT DX,AX;端口(DX)=40H,(DX+1)=20H

(3)IN AL,PORT;(AL)=1FH (4)IN AX,80H;(AX)=451FH

(5) OUT PORT1,AL;端口(PORT1)=40H (6) OUT PORT1,AX;端口(PORT1)=40H

端口(PORT1+1)=20H

3-5 已知:(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213H,试画出下列指令执行到位置1和位置2时堆栈区和SP指针内容的变化示意图。图中应标出存储单元的实际地址PA。 PUSH AX

PUSH CX;位置1 POPF ;位置2

位置1栈顶

13H F2H SS 0A2F0H 0A2FBCH SP 00BCH 31H 8BH 位置2栈顶 0A2FBEH SP 0A2F0H

0A2FC0H SS 00BEH 3-7 已知存储器数据段中的数据如图3-21所示。阅读下列两个程序段后,回答:1. 每个程序段的运行结果是什么?2. 两个程序段各占多少字节的内存,执行时间是多少? 解: M (1) LEA SI,NUM1;4-2T+6T NUM1 48H DS MOV AX,[SI];2-10T

41H ADD AX,4[SI];3-9T+9T

MOV 8[SI],AX;3-10T

16H ADD SI,2;3-4T

28H MOV AX,[SI];2-10T

NUM2 58H ADC AX,4[SI];3-9T+9T

MOV 8[SI],AX;3-10T 22H 总计23个字节,84个时钟周期运行结果如图中SUM所示。 52H (2)

84H MOV AX,NUM1;3-10T

A0H SUM ADD AX,NUM2;4-9T=6T

63H MOV SUM,AX;3-10T

MOV AX,NUM1+2;3-10T 68H ADC AX,NUM2+2;4-9T+6T

ACH MOV SUM+2,AX;3-10T

总计20个字节,70个时钟周期。 可见

1. 两个程序运行结果相同。

2. 第二个程序占20个字节,比前者少3个字节,运行时间比前者少14个时钟周期。

3-11 已知数据如图3-21所示,低位在前,按下列要求编写程序段: 1. NUM1 和 NUM2 两个字数据相乘(均为无符号数),乘积放在SUM开始的单元。 解:

MOV AX,NUM1

MUL WORD PTR NUM2 MOV SUM,AX MOV SUM+2,DX

2. NUM1 和 NUM2 两个字数据相乘(均为带符号数),乘积放在SUM开始的单元。 解:

MOV AX,NUM1

IMUL WORD PTR NUM2 MOV SUM,AX MOV SUM+2,DX

3. NUM1单元的字节数据除以13(均为无符号数),商和余数依次放入SUM开始的两个字单元。

解: MOV AL,NUM1 MOV AH,0 MOV CL,13 DIV CL MOV SUM,AX

4. NUM1字单元的字数据除以NUM2字单元的字,商和余数依次放入SUM开始的两个字单元。 MOV AX,NUM1 MOV DX,0 MOV CX,NUM2 DIV CX MOV SUM,AX MOV SUM+2,DX

3-13 已知(AL)=0C4H,DATA单元中内容为5AH,写出下列每条指令单独执行后的结果。

① AND AL,DATA;(AL)=40H ② OR AL,DATA;(AL)=0DEH ③ XOR AL,DATA;(AL)=9EH ④ NOT DATA;(DATA)=0A5H ⑤ AND AL,0FH;(AL)=04H ⑥ OR AL,01H;(AL)=0C5H ⑦ XOR AL,0FFH;(AL)=3BH ⑧ TEST AL,80H;(AL)=0C4H

所有指令执行后都对标志寄存器有影响。

3-19 写出下面指令序列完成的数学计算是什么? 解:MOV CL,3;(CL)←3 SHL AX,CL;(AX)←(AX)×8 SHL BL,CL;(BL)←(BL)×8 SHL CX,CL;(CX)←(CX)×8,此时(CL)=18H

SHL DH,CL; DH算术左移24位后(DH)=0,CF=0

3-20 写出能替代下列重复操作指令完成同样功能的 的指令序列 1. REP MOVSW 2. REP CMPSB 3. REP SCASB 4. REP LODSW 解:

1 AGAIN: MOVSW 3 AGAIN:SCASB DEC CX DEC CX JNZ AGAINN JNZ AGAIN 2 AGAIN: CMPSB 4 AGAIN:LODSW DEC CX DEC CX

JNZ AGAIN JNZ AGAIN

3-23 下面两条短转移指令的转移地址ADDR1和ADDR2分别是多少(用十六进制表示)? 1.0220 EB 0A JMP ADDR1 2.0230 EB F7 JMP ADDR2

解:JMP ADDR1 的下一条指令的地址偏移为0222H,0222H+0AH=022CH。 ∴ADDR1地址偏移量为022CH。

JMP ADDR2下一条指令的地址偏移量为0232H,0232H+0FFF7H=0229H。