《汇编语言(第3版)》具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。《汇编语言(第3版)》可用作大学计算机专业本科生的汇编教材及希望深入学习计算机科学的读者的自学教材。
目录
- 第1章 基础知识
- 1.1 机器语言
- 1.2 汇编语言的产生
- 1.3 汇编语言的组成
- 1.4 存储器
- 1.5 指令和数据
- 1.6 存储单元
- 1.7 CPU对存储器的读写
- 1.8 地址总线
- 1.9 数据总线
- 1.10 控制总线
- 1.11 内存地址空间(概述)
- 1.12 主板
- 1.13 接口卡
- 1.14 各类存储器芯片
- 1.15 内存地址空间
- 第2章 寄存器
- 2.1通用寄存器
- 2.2字在寄存器中的存储
- 2.3几条汇编指令
- 2.4物理地址
- 2.516位结构的CPU
- 2.68086CPU给出物理地址的方法
- 2.7“段地址×16+偏移地址=物理地址”
- 的本质含义
- 2.8段的概念
- 2.9段寄存器
- 2.10CS和IP
- 2.11修改CS、IP的指令
- 2.12代码段
- 实验1查看CPU和内存,用机器指令
- 和汇编指令编程
- 第3章寄存器(内存访问)
- 3.1内存中字的存储
- 3.2DS和(address)
- 3.3字的传送
- 3.4mov、add、sub指令
- 3.5数据段
- 3.6栈
- 3.7CPU提供的栈机制
- 3.8栈顶超界的问题
- 3.9push、pop指令
- 3.10栈段
- 实验2用机器指令和汇编指令编程
- 第4章第一个程序
- 4.1一个源程序从写出到执行的过程
- 4.2源程序
- 4.3编辑源程序
- 4.4编译
- 4.5连接
- 4.6以简化的方式进行编译和连接
- 4.71.exe的执行
- 4.8谁将可执行文件中的程序装载进入
- 内存并使它运行?
- 4.9程序执行过程的跟踪
- 实验3编程、编译、连接、跟踪
- 第5章(BX)和loop指令
- 5.1(BX)
- 5.2Loop指令
- 5.3在Debug中跟踪用loop指令实现的
- 循环程序
- 5.4Debug和汇编编译器masm对指令的
- 不同处理
- 5.5loop和(bx)的联合应用
- 5.6段前缀
- 5.7一段安全的空间
- 5.8段前缀的使用
- 实验4(bx)和loop的使用
- 第6章 包含多个段的程序
- 6.1在代码段中使用数据
- 6.2在代码段中使用栈
- 6.3将数据、代码、栈放入不同的段
- 实验5编写、调试具有多个段的程序
- 第7章更灵活的定位内存地址的
- 方法
- 7.1anol和or指令
- 7.2关于ASCII码
- 7.3以字符形式给出的数据
- 7.4大小写转换的问题
- 7.5(bx+idata)
- 7.6用(bx+idata)的方式进行数组的
- 处理
- 7.7SI和DI
- 7.8(bx+si)和(bx+di)
- 7.9(bx+si+idata)和(bx+di+idata)
- 7.10不同的寻址方式的灵活应用
- 实验6实践课程中的程序
- 第8章数据处理的两个基本问题
- 8.1bx、si、di和bp
- 8.2机器指令处理的数据在什么地方
- 8.3汇编语言中数据位置的表达
- 8.4寻址方式
- 8.5指令要处理的数据有多长
- 8.6寻址方式的综合应用
- 8.7div指令
- 8.8伪指令dd
- 8.9dup
- 实验7寻址方式在结构化数据访问中的
- 应用
- 第9章转移指令的原理
- 9.1操作符offset
- 9.2jmp指令
- 9.3依据位移进行转移的jmp指令
- 9.4转移的目的地址在指令中的jmp
- 指令
- 9.5转移地址在寄存器中的jmp指令
- 9.6转移地址在内存中的jmp指令
- 9.7jcxz指令
- 9.8loop指令
- 9.9根据位移进行转移的意义
- 9.10编译器对转移位移超界的检测
- 实验8分析一个奇怪的程序
- 实验9根据材料编程
- 第10章CALL和RET指令
- 10.1ret和retf
- 10.2call指令
- 10.3依据位移进行转移的call指令
- 10.4转移的目的地址在指令中的call
- 指令
- 10.5转移地址在寄存器中的call指令
- 10.6转移地址在内存中的call指令
- 10.7call和ret的配合使用
- 10.8mul指令
- 10.9模块化程序设计
- 10.10参数和结果传递的问题
- 10.11批量数据的传递
- 10.12寄存器冲突的问题
- 实验10编写子程序
- 课程设计1
- 第11章标志寄存器
- 11.1ZF标志
- 11.2PF标志
- 11.3SF标志
- 11.4CF标志
- 11.5OF标志
- 11.6adc指令
- 11.7sbb指令
- 11.8cmp指令
- 11.9检测比较结果的条件转移指令
- 11.10DF标志和串传送指令
- 11.11pushf和popf
- 11.12标志寄存器在Debug中的表示
- 实验11编写子程序
- 第12章内中断
- 12.1内中断的产生
- 12.2中断处理程序
- 12.3中断向量表
- 12.4中断过程
- 12.5中断处理程序和iret指令
- 12.6除法错误中断的处理
- 12.7编程处理0号中断
- 12.8安装
- 12.9do0
- 12.10设置中断向量
- 12.11单步中断
- 12.12响应中断的特殊情况
- 实验12编写0号中断的处理程序
- 第13章int指令
- 13.1int指令
- 13.2编写供应用程序调用的
- 中断例程
- 13.3对int、iret和栈的深入理解
- 13.4BIOS和DOS所提供的
- 中断例程
- 13.5BIOS和DOS中断例程的
- 安装过程
- 13.6BIOS中断例程应用
- 13.7DOS中断例程应用
- 实验13编写、应用中断例程
- 第14章端口
- 14.1端口的读写
- 14.2CMOS RAM芯片
- 14.3shl和shr指令
- 14.4CMOS RAM中存储的时间信息
- 实验14访问CMOS RAM
- 第15章外中断
- 15.1接口芯片和端口
- 15.2外中断信息
- 15.3PC机键盘的处理过程
- 15.4编写int 9中断例程
- 15.5安装新的int 9中断例程
- 实验15安装新的int 9中断例程
- 第16章直接定址表
- 16.1描述了单元长度的标号
- 16.2在其他段中使用数据标号
- 16_3直接定址表
- 16.4程序入口地址的直接定址表
- 实验16编写包含多个功能子程序的
- 中断例程
- 第17章使用BIOS进行键盘输入
- 和磁盘读写
- 17.1int 9中断例程对键盘输入的处理
- 17.2使用int 16h中断例程读取
- 键盘缓冲区
- 17.3字符串的输入
- 17.4应用int 13h中断例程对磁盘
- 进行读写
- 实验17编写包含多个功能子程序的
- 中断例程
- 课程设计2
- 综合研究
- 研究试验1搭建一个精简的C语言
- 开发环境
- 研究试验2使用寄存器
- 研究试验3使用内存空间
- 研究试验4不用main函数编程
- 研究试验5函数如何接收不定数量的
- 参数
- 附注
- 附注1Intel系列微处理器的3种工作
- 模式
- 附注2补码
- 附注3汇编编译器(masm.exe)对jmp的
- 相关处理
- 附注4用栈传递参数
- 附注5公式证明