微机原理与接口技术+第四版+钱晓捷主编+课后习题答案 下载本文

⑨ 相对基址变址 ⑩ 带比例寻址

〔习题2.17〕使用本书配套的软件包(或者按照本书说明)创建MASM开发环境,通过编辑例题2-1

和例题2-2程序、汇编连接生成可执行程序和列表文件,掌握汇编语言的开发。

第3章 数据处理 〔习题3.1〕简答题

(1)使用二进制8位表达无符号整数,257有对应的编码吗?

(2)字符“'F'”和数值46H作为MOV指令的源操作数有区别吗?

(3)为什么可以把指令“MOV AX, (34+67H)*3”中的数值表达式看成是常量? (4)数值500,能够作为字节变量的初值吗?

(5)为什么说“XCHG EDX,CX”是一条错误的指令?

(6)都是获取偏移地址,为什么指令“LEA EBX, [ESI]”正确,而指令“MOV EBX, OFFSET[ESI]”

就错误?

(7)INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数? (8)大小写字母转换使用了什么规律?

(9)乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符

号数和有符号数运算?

(10)逻辑与运算为什么也称为逻辑乘? 〔解答〕

① 没有。使用二进制8位表达无符号整数,257没有对应的编码。 ② 字符“'F'”的ASCII码就是数值46H,所以没有区别。

③ 汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。 ④ 不能。数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。 ⑤ 源、目标寄存器位数不同,不能用该指令进行数据交换。

⑥ 前者在指令执行时获得偏移地址,是正确的;但后者的OFFSET只能在汇编阶段获得偏移地址,但

此时寄存器内容是不可知的,所以无法获得偏移地址。

⑦ INC,DEC,NEG和NOT指令的操作数既是源操作数也是目的操作数。 ⑧ 大小写字母转换利用它们的ASCII码相差20H。

⑨ 加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF和OF标志,可利用

CF和OF进行区别。

⑩ 逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。 〔习题3.2〕判断题

(1)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。 (2)常用的BCD码为8421 BCD码,其中的8表示D3位的权重。 (3)IA-32处理器采用小端方式存储多字节数据。 (4)空操作NOP指令其实根本没有指令。

(5)堆栈的操作原则是“先进后出”,所以堆栈段的数据除PUSH和POP指令外,不允许其他方法读

写。

(6)虽然ADD指令和SUB指令执行后会影响标志状态,但执行前的标志并不影响它们的执行结果。 (7)指令“INC ECX”和“ADD ECX,1”的实现功能完全一样,可以互相替换。

(8)无符号数在前面加零扩展,数值不变;有符号数前面进行符号扩展,位数加长一位、数值增加一

倍。

(9)逻辑运算没有进位或溢出问题,此时CF和OF没有作用,所以逻辑运算指令如AND、OR等将

CF和OF设置为0。

(10)CMP指令是目的操作数减去源操作数,CMPS指令是源操作数减去目的操作数。 〔解答〕

① 对 ② 对 ③ 对 ④ 错 ⑤ 错

- -9

⑥ 对 ⑦ 错 ⑧ 错 ⑨ 对 ⑩ 对

〔习题3.3〕填空题

(1)定义字节变量的伪指令助记符是_____________,获取变量名所具有的偏移地址的操作符是

_____________。

(2)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是10进制数___________;如

果认为它是BCD码,则表示真值_____________;又如果它是某个ASCII码,则代表字符__________。

(3)C语言用“\\n”表示让光标回到下一行首位,在汇编语言中需要输出两个控制字符:一个是回车,

其ASCII码是_____________,它将光标移动到当前所在行的首位;另一个是换行,其ASCII码是_____________,它将光标移到下一行。

(4)数据段有语句“H8843 DWORD 99008843H”,代码段指令“MOV CX, WORD PTR H8843”执行

后,CX=_____________。

(5)用DWORD定义的一个变量XYZ,它的类型是_____________,用“TYPE XYZ”会得到数值为

_____________。如果将其以字量使用,应该用_____________说明。

(6)数据段有语句“ABC BYTE 1,2,3”,代码段指令“MOV CL, ABC+2”执行后,CL=_____________。 (7)例题3-9的TAB定义如果是“1234567890”,则显示结果是__________。 (8)指令“XOR EAX, EAX”和“SUB EAX, EAX”执行后,EAX=__________,CF=OF=__________。

而指令“MOV EAX, 0”执行后,EAX=__________,CF和OF没有变化。

(9)例题3-15程序执行结束,变量QVAR内容是__________;BCD内容是__________。

(10)欲将EDX内的无符号数除以16,使用指令“SHR EDX, __________”,其中后一个操作数是一

个立即数。

〔解答〕

① BYTE,OFFSET ② 97,61,小写字母a

③ 0DH(13),0AH(10) ④ 8843H

⑤ DWORD,4,WORD PTR XYZ ⑥ 3

⑦ 78894111 ⑧ 0,0,0

⑨ 0123456788765432H,83H ⑩ 4 〔习题3.4〕

下列十六进制数表示无符号整数,请转换为十进制形式的真值: ① FFH ② 0H ③ 5EH ④ EFH

〔解答〕

① 255 ② 0 ③ 94 ④ 239 〔习题3.5〕

将下列十进制数真值转换为压缩BCD码: ① 12 ② 24 ③ 68 ④ 99

〔解答〕

① 12H ② 24H ③ 68H ④ 99H 〔习题3.6〕

将下列压缩BCD码转换为十进制数:

- -10

① 10010001 ② 10001001 ③ 00110110 ④ 10010000

〔解答〕

① 91 ② 89 ③ 36 ④ 90 〔习题3.7〕

将下列十进制数用8位二进制补码表示: ① 0 ② 127 ③-127 ④ -57

〔解答〕

① 00000000 ② 01111111 ③ 10000001 ④ 11000111 〔习题3.8〕

进行十六进制数据的加减运算,并说明是否有进位或借位: ① 1234H+7802H ② F034H+5AB0H ③ C051H-1234H ④ 9876H-ABCDH

〔解答〕

① 1234H+7802H=8A36H,无进位 ② F034H+5AB0H=4AF4H,有进位 ③ C051H-1234H=BE1DH,无借位 ④ 9876H-ABCDH=ECA9H,有借位 〔习题3.9〕

数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码0DH和0AH分别对

应什么字符?

〔解答〕

数码0~9对应的ASCII码依次是30H~39H。

大写字母A~Z对应的ASCII码依次是:41H~5AH。 小写字母a~z对应的ASCII码依次是:61~7AH。 ASCII码0DH和0AH分别对应的是回车和换行字符。 〔习题3.10〕

设置一个数据段,按照如下要求定义变量或符号常量: ① my1b为字符串变量:Personal Computer ② my2b为用十进制数表示的字节变量:20 ③ my3b为用十六进制数表示的字节变量:20 ④ my4b为用二进制数表示的字节变量:20 ⑤ my5w为20个未赋值的字变量 ⑥ my6c为100的常量

⑦ my7c表示字符串:Personal Computer

〔解答〕 my1b my2b my3b

byte 'Personal Computer' byte 20 byte 14h

- -11

my4b my5w my6c my7c

byte 00010100b word 20 dup(?) = 100

equ

〔习题3.11〕定义常量NUM,其值为5;数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-10,2,5和4,最后1个单元初值不定。 〔解答〕 num datalist

〔习题3.12〕从低地址开始以字节为单位,用十六进制形式给出下列语句依次分配的数值:

byte 'ABC',10,10h,'EF',3 dup(-1,?,3 dup(4)) word 10h,-5,3 dup(?) equ 5

byte -10,2,5,4,?

〔解答〕

41 42 43 0A 10 45 46 FF 00 04 04 04 FF 00 04 04 04 FF 00 04 04 04 10 00 FB FF 00 00 00 00 00 00

〔习题3.13〕设在某个程序中有如下片段,请写出每条传送指令执行后寄存器EAX的内容: varw varb vard buff mess

; 数据段 org 100h

word 1234h,5678h byte 3,4 dword 12345678h byte 10 dup(?) byte 'hello' ; 代码段

mov eax,offset mess

mov eax,type buff+type mess+type vard mov eax,sizeof varw+sizeof buff+sizeof mess mov eax,lengthof varw+lengthof vard

〔解答〕

① EAX=0114H ② EAX=0006H ③ EAX=0013H ④ EAX=0003H

〔习题3.14〕按照如下输出格式,在屏幕上显示ASCII表: | 0 1 2 3 4 5 6 7 8 9 A B C D E F

- -12