发布时间 : 星期六 文章计算机组成原理与汇编语言复习题更新完毕开始阅读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