计算机组成原理与汇编语言复习题 联系客服

发布时间 : 星期三 文章计算机组成原理与汇编语言复习题更新完毕开始阅读9733224dbcd126fff6050b2e

9、说明计算机中寄存器寻址、寄存器间接寻址、变址寻址从形式地址到得到操作数的寻址处理过程。

答:(1)寄存器寻址,形式地址为寄存器名(或编号),寄存器中的内容为操作数;

(2)寄存器间接寻址,形式地址为寄存器名(或编号),寄存器中的内容为操作数的地址,再读一次内存得到操作数;

(3)变址寻址,形式地址为变址寄存器名(或编号)和变址偏移值,把变址寄存器中的内容与变址偏移值相加得到操作数的地址,再读一次内存得到操作数;

四、 程序分析题

1. 设(SP)=80H, (BX)=0FFH, (AX)=1 PUSH BX ADD BX, AX XOR BX, AX PUSH BX POP CX

上述程序段运行后,(SP)= 7EH (CX)=01H

2.DA1 DB 12H DA2 DB 22H RES DB ? ∶ ∶

MOV AL , DA1 CMP AL, DA2 JAE L1

MOV RES, 0 JMP NEXT

L1: MOV RES, 0FFH NEXT:………

上述程序段运行后,(RES)= 0 ZF=0

3.MOV DL, 0F0H MOV DH, 64H CALL SS1 DEC DH ∶ ∶

SS1 PROC AND DL, DH

9

INC DL RET

SS1 ENDP

上述程序段运行后,(DL)= 61H (DH)= 63H

4.DA3 DB 82H,76H,56H,0ADH,7H ∶ ∶

MOV CX, WORD PTR DA3 AND CX,0FH MOV AL,DA3+3 SHL AL,CL

上述程序段运行后,(AL)=0B4H (CX)= 0002H

五、 计算题

1.

写出下列存储器地址的段基址、偏移地址和物理地址。

4132H:5300H

段基址:4132H

偏移地址:5300H 物理地址:46620H

2.将十进制数43和-0.375化成二进制数,再写出各自的原码、补码、反码表示(符号位和数值位共8位)。

+43: +101011 00101011 00101011 00101011

-0.375: -0.011 1.0110000 1.1010000 1.1001111

3.用变形补码进行加减运算,并判断结果是否溢出?是何种溢出?

(1) X=0.10010,Y=-0.10011,计算X-Y (2) X=-0.10111,Y=0.10011,计算X+Y (3) 已知X=-8,Y=11,计算X-Y (4) 已知X=9, Y=-7,计算X+Y

解:(1) [x]补=00.10010 [y]补=11.01101 [-y]补=00.10011 [x-y]补=[x]补+[-y]补=00.10010+00.10011=01.00101 因为双符号位不同,发生了正溢。

(2) [x]补=11.01001 [y]补=00.10011

[x+y]补=[x]补+[y]补=11.01001+00.10011=11.11100,无溢出。 x+y=-0.00100

(3)[x]补=11,1000 [y]补=00,1011 [-y]补=11,0101 [x-y]补=[x]补+[-y]补=11,1000+11,0101=10,1101 因为双符号位不同,发生了负溢。 (4)[x]补=00,1001 [y]补=11,1001

10

[x+y]补=[x]补+[y]补=00,1001+11,1001=00,0010,无溢出。 x+y=+2

4.设浮点数字长为16位,其中阶码8位,以2为底;尾数8位,规格化。且均用双符号位补码表示,求X±Y=?写出运算过程(要求写出具体乘法步骤)

1113 X?2?4? Y?2?3?

1616解 : 阶码(E) 尾数(M)

[x]补=11,111100 00.101100 [y]补=11,111101 00.110100

①对阶:ΔE=Ex-Ey

[ΔE]补=[Ex]补+[-Ey]补=11,111100+00,000011=11,111111 ΔE=-1,表明Ex比Ey小1,所以将x的阶码向y的阶码看齐,即将x 的尾数右移一位,其阶码加1。对阶后:

[x]补=11,111101 00.010110 ②尾数相加或相减:

a.[Mx+My]补=[Mx]补+[My]补=00.010110+00.110100=01.001010 b.[Mx-My]补=[Mx]补+[-My]补=00.010110+11.001100=11.100010 ③规格化处理:

a.[x+y]补=11,111101 01.001010

尾数溢出,需右规一位:即尾数右移一位,同时阶码加1。则有 [x+y]补=11,111110 00.100101

x+y=2?2?0.100101

b.[x-y]补=11,111101 11.100010

尾数非规格化,需左规一位:即尾数左移一位,同时阶码减1。 [x-y]补=11,111100,11.000100 x-y=2?4?(?0.111100)

5. 已知两数5678H和0DCBAH相加,试写出下列各标志位的置位情况和相加结果。(要求写出计算过程)

OF: SF: AF: CF: 结果:

解: 0101011001111000B(5678H) + 1101110010111010B(0DCBAH)

0011001100110010B (3332H)

0F=0 SF=0 AF=1 CF=1 结果为:3332H

六、指出下列指令的错误 (1)MOV AH, BX ;

答:源操作数与目的操作数的数据类型不匹配。

(2)ADD 15H, BX ;

11

答:目的的操作数不能为立即数。

(3)MOV CS, AX ;

答:不能使用MOV指令来修改代码段(CS)的内容。

(4)MOV AX, [SI][DI] ;

答:源操作数使用了非法的寻址方式(双变址)。

(5)MOV BYTE PTR[BX],1000 ;

答:源操作数与目的操作数的数据类型不匹配。 七、设计题

1.编写程序,计算 x2 + y - 5 多项式的值。

说明:·多项式运算结果存于AX中,x,y 是无符号数。 ·数据说明:x DB 0CH y DB 06H

解:DATA SEGMENT X DB 0CH Y DB 06H DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX XOR AX,AX

MOV AL , x

MOV BL , x MUL BL XOR CL , CL XOR BH,BH MOV BL , Y MOV CL,BL SHL BL,1 ADD BL,CL ADD AX , BX

12