当前位置:文档之家› 计算机原理及应用作业答案

计算机原理及应用作业答案


(4)基址寻址,物理地址=SS:[BP+10H]=15020H (5)段超越的间址寻址,物理地址=ES:[BX]=21100H (6)间址寻址,物理地址=DS:[SI]=200A0H (7)间址寻址,物理地址=SS:[BP]=15010H (8)基址寻址,物理地址=SS:[BP+VAL]=15060H (9)基址加变址寻址,物理地址=DS:[SI+BX]=212A0H 21. 假定有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H,(SI)=0002H, (20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH, (21202H)=0B7H,(21203H)=65H,试指出下列各条指令执行完后 AX 寄存器的内容。 〈1〉MOV AX,1200H 〈2〉MOV AX,BX 〈3〉MOV AX, [1200H ] 〈4〉MOV AX, [BX ] 〈5〉MOV AX,1100H [BX ] 〈6〉MOV AX,1100H [BX ] [SI ] 解:AX 寄存器的内容是两个字节! (得到的物理地址是它的低字节地址,高字节地址加 1。) ->事实上,一个字的地址就是其低字节的地址。 (1)(AX)=1200H (2)(AX)=100H (3)(AX)=4C2AH (4)(AX)=3412H (5)(AX)=4C2AH (6)(AX)=65B7H 22. 指出下列指令的错误: 〈1〉MOV AH,BX 〈2〉MOV [BX ], [SI ] 〈3〉MOV AX, [SI ] [DI ] 〈4〉MOV CS,AX 解:(1)错误: 数据类型不一致,AH 为 8 位,BX 为 16 位。 (2)错误:源操作数和目标操作数不能同为内存操作数。 (3)错误:不能用两个变址寄存器。 (4)错误:不能给 CS 赋值。 23. 用几条指令完成下列功能: 〈1〉 把 BX 寄存器和 DX 寄存器的内容相加,结果存入 DX 寄存器中。 〈2〉 用寄存器 BX 和 SI 的基址变址寻址方式,把存储器中的一个字节与 AL 寄存器的内 容相加,结果存入 AL 寄存器中。 〈3〉 用寄存器 BX 和位移量 0B2H 的基址寻址方式,把存储器中的一个字与(CX)相加,结 果送回存储单元中。 〈4〉 用位移量 0524H 的直接寻址方式,把存储器中的一个字与数 2A59H 相加,并把结果 送回存储单元中。 〈5〉 把数 0B5H 与(AL)相加,结果送回 AL 中。 解:(1)ADD (2)ADD (3)ADD (4)ADD (5)ADD DX, BX AL, BYTE PTR [BX] [SI] WORD PTR 0B2H [BX], CX WORD PTR [524H], 2A59H AL, 0B5H
计算机原理及应用作业参考解答
3. 将下列二进制数转换为十进制数: 〈1〉01101100B 〈2〉00101101B 〈3〉0.011B 〈4〉0.01101B 〈5〉1001.1001B 解:〈5〉1001.1001B=8+1+0.5+0.0625=9.5625D 4. 将下列十进制数转换为二进制数: 〈1〉17D 〈2〉121D 〈3〉0.4375D 〈4〉0.59375D 〈5〉125.125D 解:〈5〉125.125D = 26+25+24+23+22+20+2-3=1111101.001B 7. 将下列各数转换为十六进制数: 〈1〉11010100B 〈2〉00111100B 〈3〉0.0001101B 〈4〉1110101.101111B 〈5〉783D 〈6〉5372D 〈7〉9570D 〈8〉9587D 解:〈4〉1110101.101111B=75.BCH 8. 将下列十六进制数转换为二进制数: 〈1〉2B7CH 〈2〉2EFDH 〈3〉1AB0H 〈4〉0.56F8H 〈5〉4DE.ACH 解:〈5〉4DE.ACH =10011011110.101011B 9. 将下列十六进制数转换为十进制数: 〈1〉A8CH 〈2〉FFH 〈3〉1000H 〈4〉F001H 〈5〉FFFFH 解:〈1〉A8CH = 10*162 + 8*16 + 12 = 2700D 12. 将下列十进制数分别用八位原码、反码和补码表示: 〈1〉+15 〈2〉-15 〈3〉-64 〈4〉+117 〈5〉-6 〈6〉-120 解: 原码 〈4〉+117 〈5〉―6 01110101 10000110 反码 01110101 11111001 补码 01110101 11111010
〈1〉X=45,Y=85 〈2〉X=45,Y=-85 〈3〉X=-45,Y=85 〈4〉X=-45,Y=-85 解: [X]补 〈1〉 〈2〉 〈3〉 〈4〉 00101101B 00101101B 11010011B 11010011B [Y]补 01010101B 10101011B 01010101B 10101011B [X+Y]补 10000010B > 127 (溢出) 00101000 (无溢出) 01111110 (溢出) [X-Y]补 11011000B (无溢出) 01111110 (溢出) 00101000 (无溢出)
-3-
25. 设段寄存器(SS)=3A4BH,程序中要求堆栈长度为 200 个字节,试计算出堆栈指针 SP 的 初始值(即堆栈中没有数据时)和 SP 初始值指向的物理地址。 解: 因为堆栈长度为 200 个字节,所以堆栈指针 SP 的初始值 为 SP=200 其初始值指向的物理地址为: 3A4B0 H + 200 D= 3A4B0H + C8H = 3A578H 27. 指出下列指令哪些是错误的,若有错误请说明错在何处? 〈1〉CMP 15H,BX 〈4〉CMP AX, [3050H ] 解:(1)错误:目标操作数不能为立即数。 (2)错误:应指明内存操作数的类型 (3)错误:不能目标和源同为内存操作数 (4)若原来已定义内存操作数为字类型,则没错。 最好显式写出:CMP AX, WORD PTR [3050H] 28. 求 62A0H 分别与下列各数相加的结果,并根据结果设置标志位 SF,ZF 和 OF 的值。 〈1〉1234H 〈2〉4321H 〈3〉CFA0H 〈4〉9D60H 解:(1)62A0H+1234H = 74D4H (2)62A0H+4321H = A5C1H (3)62A0H+CFA0H =3240H (4)62A0H+9D60H = 0000H 29.〈1〉用一条逻辑运算指令使 AX 清零。 〈2〉用一条逻辑指令使 DX 的高 3 位为 1,其余位不变。 〈3〉用一条逻辑指令使 BL 的低 4 位为 0,其余位不变。 〈4〉用一条逻辑指令使 AX 中各位与 BX 对应位不相同的都变成 1,相同的位不变。 解:〈1〉 XOR 〈2〉 OR 〈3〉AND 〈4〉OR AX, AX DX, 1110 0000 0000 0000B BL, 11110000B AX, BX SF=0,ZF =0, OF=0 SF=1,ZF =0, OF=1 SF=0,ZF =0, OF=0 SF=0,ZF =1, OF=0 〈 2〉CMP [2000H ],25 〈3〉CMP [100H ],[200H ]
30. 用两条移位及循环移位指令,将 AL 中的各位按相反的顺序排列到 AH 中。 解: MOV LOOP1: SHL RCR LOOP INT 3 CX, 8 AL, 1 ; AL 逻辑左移 1 位,最高位进入 CF AH, 1 ; 将 AH 中的数与 CF 一起向右循环移动 1 位 LOOP1
31. 假定(DX)=10111001B,(CL)=03,(CF)=1,试确定下列各条指令分别执行后,DX 中的值。 〈1〉SHR DX, 1 〈2〉SAR DX,CL 〈3〉SHL DX,CL 〈4〉ROR DX,CL
11011000 (正加负, 无溢出) 10000010 (溢出)
16. 查 ASCII 代码表,将下列字符转换为 8 位 ASCII 代码,并用十六进制表示: 〈1〉5 〈2〉A 〈3〉a 〈4〉= 〈5〉?〈6〉* 解:查 ASCII 代码表得: 〈1〉 ‘5’ = 35H = 00110101B 〈2〉 ‘A’= 41H = 01000001B 〈3〉 ‘a’ = 61H = 01100001B 17. 查 ASCII 代码表,将下列 7 位 ASCII 代码,转换为相应字符(假设最高位都为 0): 〈1〉0100001 〈2〉0111001 〈3〉1010111 〈4〉1100101 〈5〉1111011 解:查 ASCII 代码表得: 〈2〉 0111001 = 39H =‘9’ 〈4〉 1100101 = 65H =‘e’ 18. 写出下列存储器地址的段基址,偏移地址和物理地址: 〈1〉2314H:0035H 〈2〉1FD0H:000AH 〈3〉60ADH:DDF6H 解:物理地址:〈1〉23175H 〈2〉1FD0AH 〈3〉 该存储器地址的 段基址为 60ADH; 偏移地址为 DDF6H; 物理地址为:60AD0H + DDF6H = 6E8C6H 19. 某一存储单元的物理地址为 12345H,试完成下列不同的逻辑地址表示: 〈1〉1234H: H 〈2〉 H:0345H 12345 – 12340 =5 12345 – 345 = 12000 解: 〈1〉 1234H :0005H 〈2〉 1200H :0345H
-4-
〈5ห้องสมุดไป่ตู้ROL DL, CL
〈6〉SAL DH,1
〈7〉RCL DX,CL
〈8〉RCR DL,1
解: 注意:DX=10111001B, 理解为高 8 位零略写。 (1)(DX)= 0000 0000 0101 1100B = 005CH (2)(DX)= 0000 0000 0001 0111B = 0017H (3)(DX)= 0000 0101 1100 1000B = 05C8H (4)(DX)= 0010 0000 0001 0111B = 2017H (5)(DX)= 0000 0000 1100 1101B = 00CDH (6)(DX)= 0000 0000 1011 1001B = 00B9H (7)(DX)= 0000 0101 1100 1100B = 05CCH (8)(DX)= 0000 0000 1101 1100B = 00DCH 32. 用两条移位及循环指令将 DX:AX 中的双字长无符号数乘以 2。 解: SHL RCL AX,1 ;低字逻辑左移一位,AX 的最高位进入 CF DX,1 ;高字带进位循环左移一位,CF 进入 DX 的最低位
相关主题