(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?
(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]”功能相同。
(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]