32位汇编语言程序设计部分课后习题答案课件

上传人:我*** 文档编号:144845559 上传时间:2020-09-14 格式:PPT 页数:115 大小:1.26MB
返回 下载 相关 举报
32位汇编语言程序设计部分课后习题答案课件_第1页
第1页 / 共115页
32位汇编语言程序设计部分课后习题答案课件_第2页
第2页 / 共115页
32位汇编语言程序设计部分课后习题答案课件_第3页
第3页 / 共115页
32位汇编语言程序设计部分课后习题答案课件_第4页
第4页 / 共115页
32位汇编语言程序设计部分课后习题答案课件_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《32位汇编语言程序设计部分课后习题答案课件》由会员分享,可在线阅读,更多相关《32位汇编语言程序设计部分课后习题答案课件(115页珍藏版)》请在金锄头文库上搜索。

1、32位汇编语言习题解答,课件制作: 钱晓捷,钱晓捷,32位汇编语言程序设计,机械工业出版社,第1章习题:汇编语言基础,1.1 简答题(1、3、6、7、8) 1.2 判断题(1、6、7、8、9) 1.3 填空题(3、4、5、7、10) 1.9、1.13、1.15、1.16,3,1.1 简答题-1,(1)哪个处理器的指令系统成为Intel 80 x86系列处理器的基本指令集? 8086 (3)什么是通用寄存器? 一般指处理器最常使用的整数寄存器,可用于保存整数数据、地址等 (6)最高有效位MSB是指哪一位? 数据的最高位,例如对8、16、32位数据,MSB依次指D7、D15和D31位,4,1.1

2、简答题-2,(7)汇编语言中的标识符与高级语言的变量和常量名的组成原则有本质的区别吗? 没有 (8)汇编语言的标识符大小写不敏感意味着什么? 表示字母大小写不同、但表示同一个符号,5,1.2 判断题,1)EAX也被称为累加器,因为它使用最频繁。 对,EAX中的A来自英文累加器(Accumulator) 6)处理器的传送指令MOV属于汇编语言的执行性语句 对 7)汇编语言的语句由明显的4部分组成,不需要分隔符区别。 错,使用了分隔符才有了明显的4部分 8)MASM汇编语言的注释用分号开始,不能用中文分号 对,源程序中的分隔符以及各种标识符都是英文 9)程序终止执行也就意味着汇编结束,所以两者含义

3、相同。 错,两者完全是两个概念,6,1.3 填空题-1,(3)IA-32处理器有8个32位通用寄存器,其中EAX,_,_和EDX,可以分成16位和8位操作;还有另外4个是_,_,_,和_。 EBX,ECX,ESI,EDI,EBP,ESP (4)寄存器EDX是_位的,其中低16位的名称是_,还可以分成两个8位的寄存器,其中D0D7和D8D15部分可以分别用名称_和_表示。 32,DX,DL,DH (5)IA-32处理器有_个段寄存器,它们都是_位的。 6,16,7,1.3 填空题-2,(7)逻辑地址由_和_两部分组成。代码段中下一条要执行的指令由CS和_寄存器指示,后者在实地址模型中起作用的仅有

4、_寄存器部分。 段基地址,偏移地址,EIP,IP (10)MASM要求汇编语言源程序文件的扩展名是_,汇编产生扩展名为OBJ的文件被称为_文件,编写32位Windows应用程序应选择_存储模型。 ASM,目标模块,FLAT,8,习题1.9,IA-32处理器有哪三类基本段,各是什么用途? 解答: 代码段:存放程序的指令代码 数据段:存放当前运行程序所用的数据 堆栈段:主存中堆栈所在的区域,9,习题1.13,汇编语言语句有哪两种,每种语句由哪4个部分组成 解答: 汇编语句有两种 执行性语句(处理器指令) 说明性语句(伪指令) 每个语句有4部分组成 标号 指令助记符 操作数或参数 注释,10,习题1

5、.15,MASM汇编语言中,下面哪些是程序员可以使用的自定义标识符。 FFH,DS,Again,next,data,h_ascii,6364b,flat 解答: FFH,Again,next,h_ascii 其他符号错误的原因: DS是数据段寄存器名 6364b是数字开头 data是汇编语言使用预定义符号,表示数据段地址 flat是表示平展存储模型的关键字,11,习题1.16,汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 解答: 汇编语言程序的开发有4个步骤: 编辑:用文本编辑器形成一个以ASM为扩展名的源程序文件。 汇编:用汇编程序将ASM文件转换为OBJ模块文件

6、。 连接:用连接程序将一个或多个目标文件链接成一个EXE或COM可执行文件。 调试:用调试程序排除错误,生成正确的可执行文件。,第2章习题:数据表示和寻址,2.1 简答题(2、3、4、7、8) 2.2 判断题(2、4、8、9、10) 2.3 填空题(1、2、3、8、9) 2.10、2.14、2.15、2.17,13,2.1 简答题-1,(2)字符“F”和数值46H作为MOV指令的源操作数有区别吗? 没有,因为字符“F”的ASCII码就是数值46H (3)为什么可以把指令“MOV EAX, (3467H)*3”中的数值表达式看成是常量? 汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,

7、故称数值表达式为常量 (4)汇编语言为什么规定十六进制数若以AF开头,需要在前面加个0? 以便与标识符区别,因为标识符要求以字母(或特殊符号)开头,14,2.1 简答题-2,(7)为什么将查找操作数的方法称为数据寻“址”方式? 指令的操作数需要通过存储器地址或I/O地址,才能查找到数据本身,故称数据寻址方式 (8)为什么变量VAR在指令“MOV EAX, VAR”中表达直接寻址? 因为这里的变量名VAR实际上表达了从变量所存放的主存单元,即地址,15,2.2 判断题-1,(2)常用的BCD码为8421 BCD码,其中的8表示D3位的权重。 对 (4)用“BYTE”和“DWORD”定义变量,如果

8、初值相同,则占用的存储空间也一样多。 错。用BYTE只占一个存储单元,而DWORD要占4个存储单元 (8)立即数寻址只会出现在源操作数中。 对,16,2.2 判断题-2,(9)存储器寻址方式的操作数当然在主存了。 对 (10)指令“MOV EAX, VAR+2”与“MOV EAX, VAR2”功能相同。 对,仅是不同的形式罢了,17,2.3 填空题-1,(1)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是十进制数_;如果认为它是BCD码,则表示真值_;又如果它是某个ASCII码,则代表字符_。 97,61,小写字母a (2)C语言用“n”表示让光标回到下一行首位,在汇编语

9、言中需要输出两个控制字符:一个是回车,其ASCII码是_,它将光标移动到当前所在行的首位;另一个是换行,其ASCII码是_,它将光标移到下一行。 0DH(13),0AH(10),18,2.3 填空题-2,(3)定义字节变量的伪指令助记符是_,获取变量名所具有的偏移地址的操作符是_。 BYTE,OFFSET (8)指令“MOV EAX, OFFSET MSG”的目的操作数和源操作数分别采用_和_寻址方式。 寄存器寻址,立即数寻址 (9)已知ESI04000H,EBX20H,指令“MOV EAX, ESI+EBX*2+8”中访问的有效地址是_。 04000H20H2804048H,19,习题2.1

10、0-1,按照如下要求定义变量或符号常量: (1) my1b为字符串变量:Personal Computer my1bbyte Personal Computer (2) my2b为用十进制数表示的字节变量:20 my2bbyte 20 (3) my3b为用十六进制数表示的字节变量:20 my3bbyte 14h (4) my4b为用二进制数表示的字节变量:20 my4bbyte 00010100b,20,习题2.10-2,按照如下要求定义变量或符号常量: (5) my5w为20个未赋值的字变量 my5wword 20 dup(?) (6) my6c为100的常量 my6c= 100 (7) m

11、y7c表示字符串:Personal Computer my7cequ ,21,习题2.14,按照如下输出格式,在屏幕上显示ASCII表 编程在数据段直接构造这样的表格、填写相应ASCII代码值(不是字符本身),然后使用字符串显示子程序DISPMSG实现显示,22,习题2.14解答1,.data tablebyte |0 1 2 3 4 5 6 7 8 9 A B C D E F, 13,10 byte -+-, 13,10 byte 20 |,20h,20h,21h,20h,22h,20h,23h,20h, 24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h

12、,20h byte 2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh,20h, 2fh,20h,13,10 byte 30 |,30h,20h,31h,20h,32h,20h,33h,20h, 34h,20h,35h,20h,36h,20h,37h,20h,38h,20h,39h,20h byte 3ah,20h,3bh,20h,3ch,20h,3dh,20h,3eh,20h, 3fh,20h,13,10 byte 0,23,习题2.14解答2, ca=2 cas=20h byte ca,0 |,cas,20h,cas+1,20h,cas+2,20h, cas+3,20h

13、,cas+4,20h,cas+5,20h,cas+6,20h,cas+7,20h byte cas+8,20h,cas+9,20h,cas+0ah,20h,cas+0bh,20h, cas+0ch,20h,cas+0dh,20h,cas+0eh,20h,cas+0fh,20h,13,10 cas=cas+10h ca=ca+1 byte ca,0 |,cas,20h,cas+1,20h,cas+2,20h, cas+3,20h,cas+4,20h,cas+5,20h,cas+6,20h,cas+7,20h byte cas+8,20h,cas+9,20h,cas+0ah,20h,cas+0bh

14、,20h, cas+0ch,20h,cas+0dh,20h,cas+0eh,20h,cas+0fh,20h,13,10 ,24,习题2.15,数据段有如下定义: vardword 12345678h 现以字节为单位按地址从低到高的顺序,写出这个变量内容。 var变量的内容:78H、56H、34H、12H 并说明如下指令的执行结果: mov eax,var;EAX12345678H mov bx,word ptr var;BX5678H mov cx,word ptr var+2;CX1234H mov dl,byte ptr var;DL78H mov dh,byte ptr var+3;DH

15、12H,25,习题2.17,说明源操作数的寻址方式,(1)mov edx,1234h立即数 (2)mov edx,vard直接 (3)mov edx,ebx寄存器 (4)mov edx,ebx寄存器间接 (5)mov edx,ebx+1234h寄存器相对 (6)mov edx,vardebx寄存器相对 (7)mov edx,ebx+edi基址变址 (8)mov edx,ebx+edi+1234h相对基址变址 (9)mov edx,vardesi+edi相对基址变址 (10)mov edx,ebp*4带比例寻址,第3章习题:通用数据处理指令,3.1 简答题(1、2、5、7、9) 3.2 判断题(

16、1、4、5、7、10) 3.3 填空题(2、4、5、8、10) 3.4、3.6、3.11、3.14、3.16 3.21、3.22,27,3.1 简答题-1,(1)如何修改“MOV ESI, WORD PTR 250”语句使其正确? 删除“WORD PTR”即可 (2)为什么说“XCHG EDX,CX”是一条错误的指令? 源、目标寄存器位数不同,不能用该指令进行数据交换 (5)执行了一条加法指令后,发现ZF1,说明结果是什么? (5)表明运算结果为0,28,3.1 简答题-2,(7)大小写字母转换使用了什么规律? 大小写字母转换利用它们的ASCII码相差20H (9)除法指令“DIV ESI”的被除数是什么? 被除数64位,在EDX和EAX中,EDX保存高32位、EAX

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号