购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
习题

2.1 简答题

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

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

(3)为什么可以把指令“MOV EAX,(34+67H)*3”中的数值表达式看成是常量?

(4)汇编语言为什么规定十六进制数若以A~F开头,需要在前面加个0?

(5)数值500能够作为字节变量的初值吗?

(6)多字节数据对齐地址边界有什么作用?

(7)为什么将查找操作数的方法称为数据寻“址”方式?

(8)为什么变量VAR在指令“MOV EAX,VAR”中表达直接寻址?

(9)指令“MOV EAX,[ESI]”从哪个段获得存储器操作数?

(10)为什么带比例的变址寻址中的比例只设计支持1、2、4和8?

2.2 判断题

(1)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。

(2)常用的BCD码为8421 BCD码,其中的8表示D 3 位的权重。

(3)排序一般按照ASCII码值大小,从小到大升序排列时,小写字母排在大写字母之前。

(4)用DB和DD定义变量,如果初值相同,则占用的存储空间也一样多。

(5)TYPE DX的结果是一个常量,等于2。

(6)IA-32处理器采用小端方式存储多字节数据。

(7)某个双字变量存放于存储器地址0403H~0406H中,对齐了地址边界。

(8)立即数寻址只会出现在源操作数中。

(9)存储器寻址方式的操作数当然在主存了。

(10)指令“MOV EAX,[VAR+2]”与“MOV EAX,VAR[2]”功能相同。

2.3 填空题

(1)计算机中有一个“01100001”编码。如果认为它是无符号数,它是十进制数__________;如果认为它是BCD码,则表示真值__________;如果认为它是某个ASCII码,则代表字符__________。

(2)C语言用“\n”表示让光标回到下一行首位,在汇编语言中需要输出两个控制字符:一个是回车,其ASCII码是__________,它将光标移动到当前所在行的首位;另一个是换行,其ASCII码是__________,它将光标移到下一行。

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

(4)数据段有语句“H8843 DD 99008843H”,代码段指令“MOV CX,WORD PTR[H8843]”执行后,CX=__________。

(5)用DD定义的一个变量XYZ,它的类型是__________,用“TYPE XYZ”会得到数值为__________。如果将其以字量使用,应该用__________说明。

(6)数据段有语句“ABC DB 1,2,3”,代码段指令“MOV CL,[ABC+2]”执行后,CL=__________。

(7)除外设数据外的数据寻址方式有3类,分别称为__________、__________和__________。

(8)指令“MOV EAX,OFFSET MSG”的目的操作数和源操作数分别采用__________和__________寻址方式。

(9)已知ESI=04000H,EBX=20H,指令“MOV EAX,[ESI+EBX*2+8]”中访问的有效地址是__________。

(10)用EBX作为基地址指针,默认采用__________段寄存器指向的数据段;如果采用BP、EBP或SP、ESP作为基地址指针,默认使用

__________段寄存器指向堆栈段。

2.4 下列十六进制数表示无符号整数,请转换为十进制形式的真值:

(1)FFH

(2)0H

(3)5EH

(4)EFH

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

(1)12

(2)24

(3)68

(4)99

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

(1)10010001

(2)10001001

(3)00110110

(4)10010000

2.7 将下列十进制数用8位二进制补码表示:

(1)0

(2)127

(3)-127

(4)-57

2.8 进行十六进制数据的加减运算,并说明是否有进位或借位:

(1)1234H+7802H

(2)F034H+5AB0H

(3)C051H-1234H

(4)9876H-ABCDH

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

2.10 设置一个数据段,按照如下要求定义变量或符号常量:

(1)my1b为字符串变量:Personal Computer

(2)my2b为用十进制数表示的字节变量:20

(3)my3b为用十六进制数表示的字节变量:20

(4)my4b为用二进制数表示的字节变量:20

(5)my5w为20个未赋值的字变量

(6)my6c为100的常量

(7)my7c表示字符串:Personal Computer

2.11 定义常量NUM,其值为5;数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-10、2、5和4,最后1个单元初值不定。

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

2.13 设在某个程序中有如下片段,请写出每条传送指令执行后寄存器EAX的内容:

2.14 按照如下输出格式,在屏幕上显示ASCII表:

表格最上一行的数字是对应列ASCII代码值的低4位(用十六进制形式),而表格左边的数字对应行ASCII代码值的高4位(用十六进制形式)。编程在数据段直接构造这样的表格,填写相应ASCII代码值(不是字符本身),然后实现显示。

2.15 数据段有如下定义,IA-32处理器将以小端方式保存在主存:

可以编程使用十六进制字节显示子程序DSIPHB顺序显示各个字节进行验证,还可以使用十六进制双字显示子程序DSIPHD显示该数据进行对比。

2.16 给出IA-32处理器32位寻址方式的组成公式,并说明各部分的作用。

2.17 说明下列指令中源操作数的寻址方式。假设VARD是一个双字变量。

(1)mov edx,1234h

(2)mov edx,[dvar]

(3)mov edx,ebx

(4)mov edx,[ebx]

(5)mov edx,[ebx+1234h]

(6)mov edx,vard[ebx]

(7)mov edx,[ebx+edi]

(8)mov edx,[ebx+edi+1234h]

(9)mov edx,vard[esi+edi]

(10)mov edx,[ebp*4] L/BAkMgG5sJRSV72vtl+Sbmwog6XtwvH5tD0+MUk3mf2OMYaL/3h66Lc0OjdTa6K

点击中间区域
呼出菜单
上一章
目录
下一章
×