新書推薦:
《
不废风雅 生活的意趣(汪曾祺风雅意趣妙文)
》
售價:NT$
280.0
《
东亚世界形成史论(新版)
》
售價:NT$
490.0
《
奶奶的半个心愿 “课本里的作家” 中考热点作家孙道荣2024年全新散文集
》
售價:NT$
190.0
《
天生坏种:罪犯与犯罪心理分析
》
售價:NT$
445.0
《
新能源材料
》
售價:NT$
290.0
《
传统文化有意思:古代发明了不起
》
售價:NT$
199.0
《
无法从容的人生:路遥传
》
售價:NT$
340.0
《
亚述:世界历史上第一个帝国的兴衰
》
售價:NT$
490.0
|
編輯推薦: |
全面讲解IA-32结构系列(80x86系列)处理器的32位编程。新目标:理解系统原理,提升编程技能。新方法:依托高级语言,讲解低级语言。新平台:利用虚拟机器,运行示例代码。
|
內容簡介: |
本书设定新目标,采用新方法,基于新平台,讲解IA32结构系列(80x86系列)CPU的32位编程。本书分为4个部分: *部分利用VC 2010环境的嵌入汇编和目标代码,介绍IA32系列(80x86系列)CPU的基本功能和32位编程技术; 第二部分利用开源汇编器NASM、开源虚拟机VirtualBox和模拟器Bochs,介绍汇编语言和计算机系统底层输入输出的实现方式; 第三部分详细讲解保护方式编程技术,生动展示保护方式编程细节; 第四部分简要说明相关软件工具的使用。 本书依托高级语言,讲解低级语言;利用虚拟平台,演示系统原理。*部分和第二部分可作为高校计算机及电子信息类专业学生学习汇编语言的教材,第三部分可作为编程爱好者学习保护方式编程技术的教材或参考书。
|
目錄:
|
目录
第1章基础知识
1.1CPU简介
1.1.1目标代码
1.1.2基本功能
1.2汇编语言概念
1.2.1机器指令
1.2.2汇编格式指令
1.2.3汇编语言及其优缺点
1.3数据的表示和存储
1.3.1数值数据的表示
1.3.2非数值数据的表示
1.3.3基本数据类型
1.3.4数据的存储
习题
第2章IA32处理器基本功能
2.1IA32处理器简介
2.1.1IA32系列处理器
2.1.2保护方式和实地址方式
2.2通用寄存器及使用
2.2.1通用寄存器
2.2.2简单传送指令
2.2.3简单加减指令
2.2.4VC嵌入汇编和实验
2.3标志寄存器及使用
2.3.1标志寄存器
2.3.2状态标志
2.3.3状态标志操作指令
2.3.4带进位加减指令
2.4段寄存器及使用
2.4.1存储器分段
2.4.2逻辑地址
2.4.3段寄存器
2.5寻址方式
2.5.1立即寻址方式和寄存器寻址方式
2.5.232位的存储器寻址方式
2.5.3取有效地址指令
2.6指令指针寄存器和简单控制转移
2.6.1指令指针寄存器
2.6.2常用条件转移指令
2.6.3比较指令和数值大小比较
2.6.4简单的无条件转移指令
2.7堆栈和堆栈操作
2.7.1堆栈
2.7.2堆栈操作指令
习题
第3章程序设计初步
3.1堆栈的作用
3.1.1过程调用和返回指令
3.1.2参数传递
3.1.3局部变量
3.2算术逻辑运算指令
3.2.1乘除运算指令
3.2.2逻辑运算指令
3.2.3移位指令
3.3分支程序设计
3.3.1分支程序设计示例
3.3.2无条件和条件转移指令
3.3.3多路分支的实现
3.4循环程序设计
3.4.1循环程序设计示例
3.4.2循环指令
3.4.3多重循环设计举例
3.5子程序设计
3.5.1子程序设计要点
3.5.2子程序设计举例
3.5.3子程序调用方法
习题
第4章字符串操作和位操作
4.1字符串操作
4.1.1字符串操作指令
4.1.2重复操作前缀
4.1.3应用举例
4.2位操作
4.2.1位操作指令
4.2.2应用举例
4.3条件设置字节指令
4.3.1条件设置字节指令概述
4.3.2应用举例
习题
第5章VC目标代码的阅读理解
5.1汇编语言形式的目标代码
5.1.1基本样式
5.1.2符号化表示
5.2C语言部分编译的解析
5.2.1类型的转换
5.2.2表达式求值
5.2.3指针的本质
5.2.4结构体变量
5.3C部分功能实现细节
5.3.1引用
5.3.2通过引用传递参数
5.3.3函数重载
5.3.4虚函数
5.4目标程序的优化
5.4.1关于程序优化
5.4.2使大小最小化
5.4.3使速度最大化
5.4.4内存地址对齐
5.5C库函数分析
5.5.1函数strlen
5.5.2函数strpbrk
5.5.3函数memset
5.6C程序的目标代码
5.6.1Base64编码操作
5.6.2源程序
5.6.3目标程序
习题
第6章汇编语言
6.1实方式执行环境
6.1.1寄存器和指令集
6.1.2存储器分段管理
6.1.316位的存储器寻址方式
6.2源程序和语句
6.2.1汇编语言源程序
6.2.2语句及其格式
6.3操作数表示
6.3.1常数
6.3.2数值表达式
6.3.3有效地址
6.3.4数据类型说明
6.4伪指令语句和变量
6.4.1数据定义语句
6.4.2存储单元定义语句
6.4.3常数符号声明语句
6.4.4演示举例
6.5段声明和段间转移
6.5.1段声明语句
6.5.2无条件段间转移指令
6.5.3段间过程调用和返回指令
6.6目标文件和段模式
6.6.1目标文件
6.6.2段模式声明语句
6.7宏
6.7.1宏指令的声明和使用
6.7.2单行宏的声明和使用
6.7.3宏相关方法
习题
第7章BIOS和虚拟机
7.1BIOS及其调用
7.1.1BIOS简介
7.1.2键盘输入和显示输出
7.1.3应用举例
7.2磁盘及其读写
7.2.1磁盘简介
7.2.2磁盘读写
7.2.3主引导记录分析
7.3虚拟机
7.3.1虚拟机工作原理
7.3.2虚拟硬盘文件
7.3.3直接写屏显示方式
7.4一个简易的加载器
7.4.1加载方法
7.4.2程序加载器
7.4.3工作程序示例
习题
第8章输入输出和中断
8.1输入输出的基本概念
8.1.1IO端口地址
8.1.2IO指令
8.1.3数据传送方式
8.1.4实时时钟的存取
8.2查询传送方式
8.2.1查询传送流程
8.2.2实时时钟的稳妥存取
8.3中断概述
8.3.1中断的概念
8.3.2中断向量表
8.3.3中断响应过程
8.3.4内部中断
8.3.5外部中断
8.3.6中断优先级和中断嵌套
8.4中断处理程序设计
8.4.1键盘中断处理程序
8.4.2除法出错中断处理程序
8.4.3扩展显示IO程序
8.4.4时钟显示程序
习题
第9章保护方式程序设计
9.1概述
9.1.1存储器管理
9.1.2特权级设置
9.2分段存储管理机制
9.2.1存储段
9.2.2存储段描述符
9.2.3全局和局部描述符表
9.2.4段选择子
9.2.5逻辑地址到线性地址的转换
9.3存储管理寄存器和控制寄存器
9.3.1存储管理寄存器
9.3.2控制寄存器
9.3.3相关存取指令
9.4实方式与保护方式切换示例
9.4.1实方式和保护方式切换的演示示例一
9.4.2不同模式代码段切换的演示示例二
9.4.3局部描述符表使用的演示示例三
9.5分页存储管理机制
9.5.1存储分页
9.5.2线性地址到物理地址的转换
9.5.3页级保护和虚拟存储器支持
9.5.4分页存储管理机制的演示示例四
9.6任务状态段和控制门
9.6.1系统段描述符
9.6.2门描述符
9.6.3任务状态段
9.7控制转移
9.7.1任务内相同特权级的转移
9.7.2相同特权级转移的演示示例五
9.7.3任务内不同特权级的变换
9.7.4特权级变换的演示示例六
9.7.5任务切换
9.7.6任务切换的演示示例七
9.8中断和异常的处理
9.8.1异常概念
9.8.2异常类型
9.8.3中断和异常的处理
9.8.4中断处理的演示示例八
9.8.5异常处理的演示示例九
9.9保护机制小结
9.9.1转移途径小结
9.9.2特权指令
习题
第10章实验工具的使用
10.1汇编器NASM的使用
10.1.1NASM简介
10.1.2NASM的使用
10.1.3链接器及其使用
10.2虚拟机管理器VirtualBox的使用
10.2.1VirtualBox简介
10.2.2VirtualBox的使用
10.2.3关于硬件加速
10.3模拟器Bochs的使用
10.3.1Bochs简介
10.3.2Bochs的配置与运行
10.3.3控制台调试
10.3.4图形化界面调试
10.4VHDWriter的使用
参考文献
|
內容試閱:
|
前言
随着计算资源的日益丰富和开发环境的日趋完善,直接运用汇编语言编写程序的场合越来越少,因此汇编语言课程需要新定位,汇编语言课程需要新概念。
在这样的背景下,本书设定新的目标,采用新的方法,基于新的平台,讲解IA32结构系列(80x86系列)CPU的32位编程。学习汇编语言的新目标是深入理解计算机系统的工作原理,全面提升高级语言程序设计能力,而不再是熟练运用汇编语言编写程序。汇编语言课程将起到上承高级语言,下启机器系统的桥梁作用。学习汇编语言的新方法是依托高级语言。在学习汇编语言之前,通常已经具备高级语言(C或者C语言等)程序设计的基础。通过采用嵌入汇编和分析目标代码等方法,不仅可以降低学习和掌握汇编格式指令的难度,而且有助于知其然,知其所以然,有助于更好地掌握高级语言。实践汇编语言的新平台是虚拟机。目前虚拟机已经十分流行,它是很理想的裸机。基于虚拟机不仅可以突破操作系统的约束,为所欲为地操纵机器,从而轻松调试设备驱动程序或者系统程序,而且有助于熟悉计算机系统的启动过程,有助于明了计算机系统硬件和软件的相互关系。
本书分为4个部分,共10章。第一部分由前五章组成,利用VC 2010环境的嵌入汇编和目标代码,讲解IA32系列(80x86系列)CPU的基本功能和32位编程技术。第1章介绍基础知识; 第2章说明IA32系列CPU的基本功能; 第3章和第4章讲解利用IA32系列CPU的指令设计程序; 第5章分析VC源程序的目标代码。第二部分由第6章、第7章和第8章组成,利用汇编器NASM和虚拟机,讲解汇编语言和系统输入输出。第6章基于汇编器NASM介绍汇编语言; 第7章在介绍BIOS和主引导记录之后,说明虚拟机的原理及其使用方法; 第8章基于虚拟机讲解计算机系统底层输入输出的实现方式。第三部分是第9章,详细讲解基于IA32系列CPU的保护方式程序设计,该章内容十分丰富。第四部分是第10章,简要说明相关工具的使用,包括开源汇编器NASM、开源虚拟机VirtualBox和开源模拟器Bochs等。
本书依托高级语言,讲解低级语言; 利用虚拟平台,演示系统原理。第一部分和第二部分可作为学习汇编语言的教材,第三部分可作为学习保护方式编程技术的教材或参考书。本书还提供教学用PPT。
杨季文撰写第1~4章和第6~9章,朱晓旭撰写第5章,胡沁涵撰写第10章,赵雷参与部分工作。杨季文负责全书统稿、定稿。
本书得到了指导老师钱培德教授的大力支持,在此表示衷心感谢。本书还得到了同事
朱巧明、吕强、李云飞和李培峰
等教授的大力帮助,在此表示感谢。还要感谢同事卢维亮、查伟忠、陈宇和王莉等老师的帮助。
由于编者时间仓促和水平所限,书中难免有不妥之处,恳请读者批评指正。
作者
2017年6月
|
|