- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第三章习题-ddg分解
习题
1.给出以下概念的解释说明。
机器语言程序机器指令汇编语言
汇编指令汇编语言程序汇编助记符
汇编程序反汇编程序机器级程序
通用寄存器定点通用寄存器栈指针寄存器
指令指针寄存器标志寄存器条件标志(条件码)
控制标志寻址方式立即寻址
寄存器寻址存储器操作数实地址模式
保护模式比例变址非比例变址
比例系数(比例因子)X指令SSE指令集
SID多媒体扩展通用寄存器栈(Stack)
调用者保存寄存器被调用者保存寄存器帧指针寄存器
当前栈帧按值传递参数按地址传递参数
嵌套调用递归调用缓冲区溢出
缓冲区溢出攻击栈随机化
2.简单回答下列问题。
(1)一条机器指令通常由哪些字段组成?各字段的含义分别是什么?
(2)将一个高级语言源程序转换成计算机能直接执行的机器代码通常需要哪几个步
骤?
(3)IA-32中的逻辑运算指令如何生成条件标志?移位指令可能会改变哪些条件标
志?
(4)执行条件转移指令时所用到的条件标志信息从何而来?请举例说明。
(5)无条件转移指令和调用指令的相同点和不同点是什么?
(6)按值传递参数和按地址传递参数两种方式有哪些不同点?
(7)为什么在递归深度较深时递归调用的时间开销和空间开销都会较大?
(8)为什么数据在存储器中最好按地址对齐方式存放?
(9)造成缓冲区溢出的根本原因是什么?
3.对于以下ATT格式汇编指令,根据操作数的长度确定对应指令助记符中的长度
后缀,并说明每个操作数的寻址方式。
(1)mov8(%ebp,%ebx,4),%ax
(2)mov%al,12(%ebp)
(3)add(,%ebx,4),%ebx
(4)or(%ebx),%dh
(5)puh$0xF8
(6)mov$0xFFF0,%eax
(7)tet%cx,%cx
(8)lea8(%ebx,%ei),%eax
4.使用汇编器处理以下各行ATT格式代码时都会产生错误,请说明每一行存在什
么错误。
(1)movl0xFF,(%eax)
(2)movb%ax,12(%ebp)
(3)addl%ecx,$0xF0
(4)orw$0xFFFF0,(%ebx)
(5)addb$0xF8,(%dl)
(6)movl%bx,%eax
(7)andl%ei,%ex
(8)movw8(%ebp,,4),%ax
5.假设变量x和ptr的类型声明如下:
rc_typex;
dt_type*ptr;
这里,rc_type和dt_type是用typedef声明的数据类型。有以下一个C语言赋值
语句:
*ptr=(dt_type)x;
若x存储在寄存器EAX或AX或AL中,ptr存储在寄存器EDX中,则对于表3.12中
给出的rc_type和dt_type的类型组合,写出实现上述赋值语句的机器级代码。要求用
ATT格式汇编指令表示机器级代码。
6.假设某个C语言函数func的原型声明如下:
voidfunc(int*xptr,int*yptr,int*zptr);
函数func的过程体对应的机器级代码用ATT汇编形式表示如下:
1movl8(%ebp),%eax
2movl12(%ebp),%ebx
3movl16(%ebp),%ecx
4movl(%ebx),%edx
5movl(%ecx),%ei
6movl(%eax),%edi
7movl%edi,(%ebx)
8movl%edx,(%ecx)
9movl%ei,(%eax)
请回答下列问题或完成下列任务。
(1)在过程体开始时三个入口参
文档评论(0)