![]()
内容推荐 本书主要从常见的x86指令系统和MIPS指令系统来讨论学语言。本书以CISC架构典型的Intel80x86指令系统为汇编语言程序设计,同时,还对比学RISC架构的MIPS指令系统和汇编语言程序设计。通过介绍MASM32和MARS的使用使学生们掌握汇编程序设计与调试,同时引入O1lydbg和Ghidra来介绍逆向工程。本书在x86和MIPS汇编程序基础的阐述上,力求条理清楚、层次分明,在x86和MIPS汇编程序设计的讲解上,提供了实例、以便读者快速掌握和熟练使用所学的汇编语言。 本书可作为高等院校信息安全、计算机专业本科生的汇编语言教材及希望深入学习计算机科学的读者的自学教材,也可供使用汇编语言的工程技术人员参考。 目录 第1章 计算机系统概述 1.1 计算机系统分类 1.1.1 历史背景 1.1.2 三大主流芯片架构 1.2 复杂指令集与精简指令集 1.2.1 复杂指令集 1.2.2 精简指令集 1.2.3 CISC与RISC的对比 1.3 x86系统介绍 1.3.1 冯·诺依曼结构模型和工作机理 1.3.2 CPU寄存器结构及其用途 1.3.3 存储器 1.3.4 外部设备 1.4 MIPS系统简介 1.4.1 基本特点 1.4.2 体系分类 1.4.3 龙芯简介 第2章 x86汇编基础 2.1 汇编语言源程序 2.1.1 汇编语言源程序的结构 2.1.2 hello world程序示例(32位) 2.1.3 汇编语言语句格式 2.1.4 伪指令 2.2 数据段定义及规范 2.2.1 数据段定义 2.2.2 存储器单位相关概念 2.2.3 操作符DUP的使用 2.2.4 地址计数器与对准伪操作 2.2.5 变量 2.2.6 段寻址伪指令 2.3 代码段定义及规范 2.3.1 代码段定义指令 2.3.2 算术、逻辑与关系运算符 2.3.3 数值返回运算符 2.3.4 属性修算符 2.3.5 运算符的优先级 2.3.6 书写规范 2.4 简化段定义 2.4 含伪指令INCLUDE 2.4.2 段的简化定义 2.4.3 程序的开始和结束 2.4.4 信息显示 2.4.5 输入输出子程序库 2.5 基于MASM32的汇编开发过程演示 2.5.1 汇编程序的开发流程 2.5.2 实例 本章习题 第3章 80×86指令系统和寻址方式 3.1 80×86数据寻址方式(32位) 3.1.1 立即寻址 3.1.2 寄存器寻址 3.1.3 存储器寻址 3.1.4 练习题 3.2 数据传送类指令 3.2.1 通用数据传送指令 3.2.2 地址传送指令 3.2.3 练习题 3.3 算术运算类指令 3.3.1 标志位 3.3.2 加法运算指令和调正指令 3.3.3 减法运算指令 3.3.4 乘法运算指令 3.3.5 除法运算指令 3.3.6 练习题 3.4 位操作类指令 3.4.1 逻辑运算指令 3.4.2 移位指令 3.4.3 练习题 3.5 转移指令 3.5.1 无条件转移指令 3.5.2 条件转移指令 3.5.3 循环指令 3.5.4 练习题 3.6 指令运用实例 3.6.1 寻址方式实例 3.6.2 指令执行过程实例 3.6.3 指令位、溢出判断实例 3.6.4 指令执行与标志位改变实例 3.6.5 无条件和条件转移指令实例 本章习题 第4章 80×86汇编语言程序设计 4.1 C语言程序的机器级表示 4.1.1 程序编码 4.1.2 过程调用指令CALL和过程返回指令RET 4.1.3 过程定义伪指令 4.1.4 参数传递 4.1.5 局部变量 4.3 C语言分支语句的机器级表示和程序设计 4.3.1 分支语句的机器级表示 4.3.2 分支程序设计示例 4.3.3 多分支程序设计 4.3.4 练习题 4.4 C语言循环语句的机器级表示和程序设计 4.4.1 循环语句的机器级表示 4.4.2 循环程序设计示例 4.4.3 双重循环程序设计 4.4.4 练习题 4.5 计算机程序逆向技术 4.5.1 计算机程序 4.5.2 逆向工程及应用 4.5.3 逆向技术原理 4.5.4 常用软件分析工具 4.5.5 OllyDbg使用示例 本章习题 第5章 MIPS汇编基础 5.1 MIPS指令集简介 5.1.1 MIPS背景知识 5.1.2 MIPS与x86汇编下的区别 5.1.3 MIPS基本地址空间 5.2 MIPS通用寄存器和指令格式 5.2.1 MIPS寄存器 5.2.2 特殊寄存器 5.2.3 MIPS指令类型 5.2.4 访问存储器指令 5.2.5 寻址模式 5.2.6 练习题 5.3 MIPS汇编程序框架 5.3.1 MIPS源程序框架 5.3.2 数据段 5.3.3 代码段 5.3.4 系统调用syscall 5.3.5 练习题 5.4 MARS调试工具介绍和演示 5.4.1 MARS简介 5.4.2 MARS界面 5.4.3 MARS运行 本章习题 第6章 MIPS汇编程序设计 6.1 MIPS顺序程序设计 6.1.1 顺序程序的特点 6.1.2 算术运算类指令 6.1.3 逻辑运算类指令 6.1.4 移位指令 6.1.5 练习题 6.2 MIPS分支设计 6.2.1 置位指令 6.2.2 无条件转移指令 6.2.3 分支转移指令 6.2.4 常见的分支结构 6.2.5 练习题 6.3 MIPS循环程序设计 6.3.1 do-whi1e结构 6.3.2 while结构 6.3.3 循环程序设计示例 6.4 MIPS逆向技术 6.4.1 MIPS逆向工程 6.4.2 常用软件分析工具 6.4.3 Ghidra使用示例 本章习题 第7章 模块化程序设计 7.1 模块化程序设计概述 7.1.1 模块化程序设计的优点 7.1.2 模块化程序设计的一般原则 7.1.3 模块化程序设计的步骤 7.2 子程序结构及系统调用 7.2.1 子程序定义 7.2.2 子程序系统调用 7.2.3 保 |