32汇编前5章习题参考答案要点Word格式.docx
- 文档编号:16880749
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:17
- 大小:25.18KB
32汇编前5章习题参考答案要点Word格式.docx
《32汇编前5章习题参考答案要点Word格式.docx》由会员分享,可在线阅读,更多相关《32汇编前5章习题参考答案要点Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
(8)00000010=2D
5、
(1)0=[000000000]原=[000000000]反=[000000000]补
(2)-127=[111111111]原=[100000000]反=[100000000]补
(3)127=[011111111]原=[011111111]反=[011111111]补
(4)-57=[100111001]原=[111000110]反=[111000111]补
(5)126=[011111110]原=[011111110]反=[011111110]补
(6)-126=[111111110]原=[100000001]反=[100000010]补
(7)-128=[100000000]补,无原码和反码
(8)11947超出8位二进制表示范围,无原、反、补码
6、
(1)-1=[10000000000000001]原=[11111111111111110]反
=[11111111111111111]补
(2)-10=[10000000000001010]原=[11111111111110101]反
=[11111111111110110]补
(3)845=[00000001101001101]原=[00000001101001101]反
=[00000001101001101]补
(4)-923=[10000001110011011]原=[11111110001100100]反
=[11111110001100101]补
(5)100=[00000000001100100]原=[00000000001100100]反
=[00000000001100100]补
(6)15000=[00011101010011000]原=[00011101010011000]反
=[00011101010011000]补
7、
(1)-1=[100000000000000000000000000000001]原
=[111111111111111111111111111111110]反
=[111111111111111111111111111111111]补
(2)-10=[100000000000000000000000000001010]原
=[111111111111111111111111111110101]反
=[111111111111111111111111111110110]补
(3)23=[000000000000000000000000000010111]原
=[000000000000000000000000000010111]反
=[000000000000000000000000000010111]补
(4)-100=[100000000000000000000000001100100]原
=[111111111111111111111111110011011]反
=[111111111111111111111111110011100]补
8、
(1)B64AH=1011011001001010B=-13898D
(2)F3E1H=1111001111100001B=-29665D
(3)6F20H=0110111100100000B=28448D
(4)00E1H=0000000011100001B=225D
9、
(1)1000B64AH=00010000000000001011011001001010B=268482122D
(2)98C2417DH=100110001100001001000001011111O1B=-415383933D
(3)FFFFFE03H=11111111111111111111111000000011B=-2147483139D
(4)0000F3E1H=00000000000000001111001111100001B=62433D
10、
(1)1011+1001=1100(进位1)
(2)1011-1001=0010
(3)1011×
1001=1100011
(4)1011÷
1001=10100(余数100)
(5)1011∧1001=1001
(6)1011∨1001=1011
(7)~1011=0100
(8)1011⊕1001=0010
11、答:
8位二进制数表示的无符号数范围为0~255,16位数为0~65535,32位数为0~4294967295。
12、答:
16位补码表示有符号数的范围为+32782~-32783,32位补码表示的有符号数范围为+2147483647~-2147483648。
13、答:
数码0~9的ASCII码为30H~39H,A~Z的ASCII码为41H~5AH,a~z的ASCII码为61H~7AH,。
ASCII码0DH对应回车符CR,0AH对应换行符LF。
14、答:
01100001为无符号数时代表十进制的97,BCD码的61,ASCII码的小写字母a
15、答:
进位是指当二进制运算结果的最高有效位有进位(加法)或借位(减法)时,产生进位。
对于n位二进制数表示的无符号数来说,如果运算结果超出了0~2n-1的范围,就产生进位或借位。
溢出是指处理器内部以补码形式表示有符号数,对于n位二进制补码表示的有符号数来说,如果运算结果超出了-2n-1~2n-1-1的范围,就产生溢出。
有溢出,说明有符号数的运算结果不正确。
二者的区别在于进位表示无符号数运算结果是否超出n位二进制数表示的无符号数范围,如果超出该范围则产生进位,但运算结果仍然正确;
而溢出表示有符号数运算结果是否超出n位二进制数表示的有符号数范围,如果如果超出该范围则产生溢出,运算结果不正确。
16、
(1)003FH+02A4H=0101001011101000B=02E3H,无进位,无溢出
(2)1B48H+39E1H=0101010100101001B=5529H,无进位,无溢出
(3)6C34H+5028H=1011110001011100B=BC5CH,无进位,有溢出
(4)7FFEH+0002H=1000000000000000B=8000H,无进位,有溢出
(5)FF07H+06BDH=0000010111000100B=05C4H,有进位,无溢出
(6)2A44H+D9CCH=0000010000010000B=0410H,有进位,无溢出
(7)FFE3H+FC70H=1111110001010011B=FC53H,有进位,无溢出
(8)FE00H+FD2DH=1111101100101101B=FB2DH,有进位,无溢出
(9)FFF1H+8005H=0111111111110110B=7FF6H,有进位,有溢出
(10)8ADCH+EC78H=0111011101010100B=7754H,有进位,有溢出
(11)9E58H-EBBCH=1011001010011100B=B29CH,有借位,无溢出
(12)EBBCH-9458H=0101011101100100B=5764H,无借位,有溢出
(13)EBBCH-791CH=0111001010100000B=72A0H,无借位,无溢出
(14)791CH-EBBCH=1000110101100000B=8D60H,有借位,无溢出
习题2
1、答:
IA32-CPU共有8个32位通用寄存器:
EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP,它们分别是16位CPU中8个16位寄存器的扩展。
每一个32位的通用寄存器的低半部分是一个16位寄存器:
AX、BX、CX、DX、DI、DI、SP、BP,而16位寄存器AX、BX、CX、DX又分别分为高低两个8位寄存器:
AH/AL,BH/BL,CH/CL,DH/DL。
32位通用寄存器的作用分别为:
EAX——称为累加器,使用频度最高,用于在算术、逻辑运算中保存操作数或中间运算结果,保存与外设交换的信息。
EBX——称为基址寄存器,常用于存放存储器地址,一般是指向DS段中数据的指针。
ECX——称为计数器,在循环指令和串操作指令中用作隐含计数器。
EDX——I∕O端口的指针;
常用于外设寻址时提供端口地址。
ESI——源变址寄存器,串操作的源操作数指针(DS段)。
EDI——目的变址寄存器,串操作的目的操作数指针(ES段);
在串指令中,ESI与DS连用、EDI与ES连用,分别寻址数据段和附加段;
同时,在串指令中,ESI和EDI还都具有自动增量或减量的功能。
EBP——为基址指针寄存器,表示堆栈段中的基地址。
ESP——为堆栈指针寄存器,指示栈顶的偏移地址。
16位寄存器的作用为:
AX——16位累加器。
BX——基址寄存器。
CX——计数器。
DX——数据寄存器。
BP——基址指针。
SP——堆栈指针。
SI——源地址寄存器。
DI——目的地址寄存器。
8位寄存器均为数据寄存器。
2、答:
标志用于反映指令执行结果或控制指令执行方式。
状态标志用来纪录程序执行结果的状态信息,许多指令的执行都将相应地设置状态标志。
控制标志用来控制处理器执行指令的方式,可由程序根据需要用指令设置。
状态标志:
CF——进位标志(CarryFlag)。
当算术运算时,最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;
否则CF=0。
ZF——零标志(ZeroFlag)。
若运算结果为0,则ZF=1,否则ZF=0。
SF——符号标志(SignFlag)。
运算结果的最高有效位就是符号标志的状态。
即运算结果最高位为1,则SF=1;
否则SF=0。
PF——奇偶标志(ParityFlag)。
当运算结果最低字节中“1”的个数为零或偶数时,PF=1;
否则PF=0。
OF——溢出标志(OverflowFlag)。
如果有符号整数运算的结果超出目的操作数表示范围时,则产生溢出,OF=1;
否则OF=0。
AF——辅助进位标志(AuxiliaryCarryFlag)。
运算时D3位(低半字节)有进位或借位时,AF=1;
否则AF=0。
控制标志:
DF——方向标志(DirectionFlag)。
该标志用于串操作指令中,控制地址的变化方向。
系统标志:
IF——中断允许标志(Interrupt-enableFlag)。
该标志用于控制外部可屏蔽中断是否可以被处理器响应。
TF——陷阱标志(TrapFlag),也常称为单步标志。
该标志用于控制处理器是否进入单步操作方式。
NT(D14)——任务嵌套标志(NestedTask)。
用来表明当前执行的任务是否嵌套于另一个任务中。
IOPL(D13D12)——I/O特权级标志位(I/OPrivilegeLevel),共2位,编码表示4个特权级别,用来指定任务的I/O操作处于4个特权级别的哪一级。
VM(D17)——虚拟8086模式标志(Virtual8086Mode)。
RF(D16)——恢复标志(ResumeFlag),与调试寄存器一起使用。
AC(D18)——对齐检测标志(AlignmentCheck)。
表明是否在存储器访问时进行数据对齐检测。
VIF(D19)——虚拟中断标志(VirtualInterruptFlag)。
IF中断允许标志的虚拟影像,与VIP连用。
VIP(D20)——虚拟中断挂起标志(VirtualInterruptPending)。
此标志置位指示有一个中断被挂起。
ID(D21)——CPU识别标志(IdentificationFlag),表明该微处理器是否支持CPU识别指令CPUID。
(少EFLAGES的图)
3、答:
字和双字在存储器中占据相邻的两个或四个存储单元。
存放时,低字节存入低地址,高字节存入高地址,字或双字的地址用它的低地址来表示,这种“低对低,高对高”的存储形式称为“小端方式”。
字的对齐地址在偶地址(×
×
0B),双字的对齐地址在模四地址(能被四整除的地址,即×
00B)。
使用对齐地址的数据,处理器对他们的访问速度较高。
4、答:
每个存储器单元的唯一寻址地址称为该单元的物理地址。
在寻址一个具体物理单元时,必须要由一个基地址加上一个偏移量来形成实际的20位物理地址,这种“段地址:
偏移地址”的形式称为逻辑地址。
在形成20位逻辑地址时,段寄存器中的16位数自动左移4位,然后与16位偏移量相加,得到20位物理地址。
(1)FFFh:
0=FFF0h
(2)40H:
17H=417H
(3)2000H:
4500H=24500H(4)B821H:
4567H=BC777H
5、答:
在实模式下,段寄存器中存放的是段基地址,即逻辑段在主存中的起始位置。
而在保护模式下,段寄存器中存放的是一个16位的段选择器,其高13位是段描述符索引,用来指示描述符在描述符表中的序号,D2位是描述符表引用指示位TI,最低两位是请求特权级RPL,用于特权检查。
6、答:
段选择器用来指明所用段的段描述符等信息。
段描述符对应与某个特定的段,其中定义了段基地址、界限和访问类型等段属性。
为了便于组织管理,段描述符被组织成线性表的形式,这就是描述符表。
三者之间关系密切,在段选择器中存放的是段描述符,而描述符表则是段描述符组成的线性表。
7、答:
在实模式和虚拟8086模式下,IA-32CPU用于寻址内存空间的地址线是20位,所以内存的寻址空间是1MB,地址从00000H-FFFFFH。
处理器在1MB空间中只能执行一个程序,此时存储器管理模型只能采用实地址模型,该模型与16位CPU的存储器管理模型兼容。
保护模式下,有32条地址线寻址内存,处理器可以同时执行多个程序,并且为每个程序分配4GB的内存空间;
此时存储器既可以使用分段模型、分页管理,又可以使用段页式管理,还可以使用平展模型。
8、答:
数据的默认段是DS,其他段也可以存放数据。
当需要将数据放入其他段时,只需要使用段超越前缀明确指明使用的是哪个段即可。
9、答:
IA-32CPU的内存空间为4GB。
10、答:
程序员对组成外设与系统连接的I/O接口寄存器的编号,形成了I/O地址,通常称其为I/O端口。
端口的地址编码有两种方式:
独立编址和与存储器统一编址。
前者是将外设端口单独编排地址,独立于存储器地址。
后者将外设端口与存储器地址统一编排,共享一个地址空间,即外设端口要使用一部分内存空间。
此时的处理器不再区分外设和内存的访问。
习题3
不产生CPU动作的说明性工作,并在程序执行前由汇编程序完成处理的指令称为伪指令,而那些使CPU产生动作并在程序执行时才处理的语句称为硬指令。
伪指令通常用来指示会变成程序如何汇编源程序。
汇编语言中的标识符包括标号和名字。
标号出现在执行性语句中,用来反映该指令的逻辑地址。
名字出现在说明性语句中,它可以是变量名、段名、子程序名或宏名等,既反映逻辑地址又具有自身的各种属性。
标识符一般最多由31个字母、数字及规定的特殊符号组成,不能以数字开头且不能是汇编语言采用的保留字。
保留字就是在汇编语言中具有特定含义的字符串。
汇编语言的保留字(ReservedWord)主要有硬指令助记符、伪指令助记符、运算符、寄存器名以及预定义符号等。
例如mov、ds、~等。
汇编语句分为执行性语句与说明性语句两类。
前者由标号、硬指令助记符、操作数和注释组成,后者由名字、伪指令助记符、参数和注释组成。
汇编程序开发分四个步骤。
第一步,源程序编辑,可以使用任意的文本编辑器实现,生成相应的文本文件。
如用masm编辑的源程序后缀名为.asm。
第二步,源程序汇编,该过程将源程序翻译成由机器代码组成的目标模块文件,masm提供的汇编程序为ml.exe,生成后缀为.obj的文件。
第三步,目标文件连接,该过程将一个或多个目标文件和库文件合成一个可执行文件,其后缀通常为.exe。
这一过程使用link连接程序完成。
第四步,可执行程序的调试,该过程使用debug.exe完成,只是对可执行程序的调试,并不生成新的文件。
6、
(1)变量位于说明性语句中,用来反映逻辑地址,同时自身还具有各种属性,而标号存在于执行性语句中,仅反映逻辑地址。
(2)数值表达式一般是指由运算符连接的各种常数所构成的表达式。
地址表达式是指名字、标号以及利用各种操作符形成的表达式。
(3)符号常量就是利用一个标识符表达的数值,字符串常量是用单或双引号括起来的单个或多个字符。
7、
(1)byte‘ABC’,10,10h,‘EF’,3dup(-1,?
3dup(4))
00000000H
41H
00000001H
42H
00000002H
43H
00000003H
0AH
00000004H
10H
00000005H
45H
00000006H
46H
00000007H
FFH
00000008H
00H
00000009H
04H
0000000AH
0000000BH
0000000CH
0000000DH
0000000EH
0000000FH
00000010H
00000011H
00000012H
00000013H
00000014H
00000015H
(2)word10h,-5,3dup(?
)
FBH
8、
(1)my1bDB‘PersonalComputer’
(2)my2bDB20
(3)my3bDB20h
(4)my4bDB20B
(5)my5wDW20dup(?
(6)my6cEQU100
(7)my7cEQU‘PersonalComputer’
标号和变量具有两类属性:
①地址:
标号和名字对应存储单元的逻辑地址,包括段地址和偏移地址;
②类型:
标号、子程序名的类型可以是NEAR(近)和FAR(远),分别表示段内或段间;
变量名的类型可以是BYTE(字节)、WORD(字)和DWORD(双字)等。
masm定义了TINY(微型模式)、SMALL(小型模式)、COMPACT(紧凑模式)、MEDIUM(中型模式)、LARGE(大型模式)、HUGE(巨型模式)、FLAT(平展模式)这七种存储模式。
TINY创建COM程序,SMALL创建EXE程序。
设计32位程序应该使用FLAT模式。
实模式下的程序结构为:
.modelsmall,stdcall;
定义程序的存储模式(一般采用small)
.386;
可选,如果有该语句,可以使用386指令集
include\masm32\include\io16.inc;
可选,如果在程序中使用作者自定义的宏命令需要这一句
.stack;
定义堆栈段
.data;
定义数据段
……;
数据定义
.code;
定义代码段
.startup:
;
程序起始点
程序代码
.exit0;
程序结束点,返回DOS
子程序代码
end;
汇编结束
保护模式下的程序结构为:
.386;
必须是第一条非注释语句,说明这是一个32位应用程序
.modelflat,stdcall;
定义程序的存储模式(32位应用程序中必须采用flat)
include\masm32\include\io32.inc;
.stack4096;
定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 32 汇编 习题 参考答案 要点