第三章习题-ddg

习 题

1. 给出以下概念的解释说明。

机器语言程序 机器指令 汇编语言 汇编指令 汇编语言程序 汇编助记符 汇编程序 反汇编程序 机器级程序 通用寄存器 定点通用寄存器 栈指针寄存器 指令指针寄存器 标志寄存器 条件标志(条件码) 控制标志 寻址方式 立即寻址 寄存器寻址 存储器操作数 实地址模式 保护模式 比例变址 非比例变址 比例系数(比例因子) MMX指令 SSE指令集 SIMD 多媒体扩展通用寄存器 栈(Stack) 调用者保存寄存器 被调用者保存寄存器 帧指针寄存器 当前栈帧 按值传递参数 按地址传递参数 嵌套调用 递归调用 缓冲区溢出 缓冲区溢出攻击 栈随机化 2. 简单回答下列问题。

(1)一条机器指令通常由哪些字段组成?各字段的含义分别是什么?

(2)将一个高级语言源程序转换成计算机能直接执行的机器代码通常需要哪几个步骤? (3)IA-32中的逻辑运算指令如何生成条件标志?移位指令可能会改变哪些条件标志? (4)执行条件转移指令时所用到的条件标志信息从何而来?请举例说明。 (5)无条件转移指令和调用指令的相同点和不同点是什么? (6)按值传递参数和按地址传递参数两种方式有哪些不同点?

(7)为什么在递归深度较深时递归调用的时间开销和空间开销都会较大? (8)为什么数据在存储器中最好按地址对齐方式存放? (9)造成缓冲区溢出的根本原因是什么?

3. 对于以下AT&T格式汇编指令,根据操作数的长度确定对应指令助记符中的长度后缀,并说明每个操作数的寻

址方式。

(1)mov 8(%ebp, %ebx, 4), %ax (2)mov %al, 12(%ebp) (3)add ( , %ebx,4), %ebx (4)or (%ebx), %dh (5)push $0xF8

(6)mov $0xFFF0, %eax (7)test %cx, %cx

(8)lea 8(%ebx, %esi), %eax

4. 使用汇编器处理以下各行AT&T格式代码时都会产生错误,请说明每一行存在什么错误。 (1)movl 0xFF, (%eax) (2)movb %ax, 12(%ebp) (3)addl %ecx, $0xF0

(4)orw $0xFFFF0, (%ebx) (5)addb $0xF8, (%dl)

第三章习题 ddg相关文档

最新文档

返回顶部