
| 本书针对80×86微处理器,详细论述了汇编语言程序设计的方法,本书贯穿学以致用的指导原则,注重实例教学。配有丰富的教学资源——电子课件、习题库和案例库等。 |
| 朱耀庭,男,1944年生,1969年毕业于南开大学数学专业。现任南开大学信息学院计算机科学与技术系教授、博士生导师。南开大学滨海学院计算机科学系系主任。主要研究方向:多媒体技术,应用软件开发。主要讲授课程:多媒体技术,汇编语言程序设计,C语言程序设计,计算机图形学等。 |
| 第1章 预备知识1 1.1 计算机语言1 1.1.1 面向机器的语言1 1.1.2 非面向机器的计算机语言5 1.1.3 学习汇编语言的意义6 1.2 思维方式的转变6 1.2.1 从设计师到设计师兼建筑师7 1.2.2 冯·诺依曼计算机的设计思想7 1.2.3 从高级语言的局限性看汇编语言9 1.2.4 汇编语言的主要特性10 1.3 计算机中数的表示11 1.3.1 数的表示12 1.3.2 数制转换14 1.3.3 ASCII码15 1.3.4 数的补码表示16 1.3.5 二进制编码的十进制数BCD码(Binary-CodedDecimal)19 1.3.6 IEEE浮点数20 1.3.7 从不同角度来看待一个二进制数23 习题23 第2章 80x86实模式汇编的运行环境25 2.1 DOS下Edit的使用25 2.1.1 汇编源程序文件的编辑及相关知识25 2.1.2 用Edit编辑汇编源程序25 2.2 Debug调试汇编程序29 2.2.1 用Debug运行汇编语言程序29 2.2.2 典型Debug命令剖析31 2.2.3 Debug命令综述34 2.3 Emu8086的使用40 2.3.1 Emu8086简介40 2.3.2 Emu8086的安装及使用41 2.3.3 Emu8086显示模拟41 2.3.4 Emu8086应用实例41 2.4 用MASM(或ASM)运行汇编语言程序44 2.4.1 MASM汇编语言程序的调试步骤44 2.4.2 MASM典型实例45 2.5 Windows下虚拟DOS运行环境的搭建50 习题51 第3章 PC引导机制53 3.1 加电自检POST操作53 3.2 操作系统的加载55 3.3 嵌入式系统与汇编语言57 习题58 第4章 8086微处理器及其寻址方式59 4.1 8086CPU的基本逻辑结构59 4.1.1 8086基本功能结构59 4.1.2 理解并运用基本逻辑结构图60 4.1.3 8086CPU的运行特点61 4.1.4 执行程序的步骤61 4.1.5 指令与数据62 4.2 8086寄存器组63 4.2.1 通用寄存器64 4.2.2 段寄存器65 4.2.3 控制寄存器65 4.3 8086的存储器分段结构66 4.3.1 8086的存储器分段66 4.3.2 段寄存器的引用70 4.4 堆栈71 4.4.1 什么是栈71 4.4.2 8086的栈机制71 4.5 寻址方式74 4.5.1 汇编指令的书写形式74 4.5.2 三种类型的操作数75 4.5.3 寻址规则77 习题83 第5章 汇编语言程序设计基础85 5.1 源程序的书写格式85 5.1.1 简化段定义格式85 5.1.2 完整段定义格式90 5.2 汇编语言的语句95 5.3 汇编语言的数据组织及其访问98 5.4 汇编语言程序正常结束的方式103 5.5 指令简介104 习题109 第6章 数据传送与顺序程序设计111 6.1 MOV指令与顺序程序设计111 6.2 堆栈操作118 6.3 数据交换指令121 6.4 查表转换指令124 6.5 地址目标传送指令127 6.6 标志位传送指令129 6.7 端口输入/输出指令131 6.8 顺序程序设计133 习题133 第7章 算术运算指令与程序设计135 7.1 算术运算和逻辑运算对标志寄存器的影响135 7.2 算术运算的数据格式138 7.3 二进制数加减运算139 7.3.1 二进制数加法139 7.3.2 二进制数减法143 7.3.3 二进制数加减运算的有效性145 7.4 无符号二进制数乘除运算146 7.5 带符号二进制数乘除运算151 7.5.1 带符号二进制数乘法运算指令151 7.5.2 带符号二进制数除法运算指令153 7.6 非压缩型BCD码运算155 7.6.1 非压缩型BCD码加法运算155 7.6.2 非压缩型BCD码减法运算158 7.6.3 非压缩型BCD码乘法运算158 7.6.4 非压缩型BCD码除法运算161 7.7 压缩型BCD码加减运算162 7.7.1 压缩型BCD码加法运算162 7.7.2 压缩型BCD码减法运算165 习题166 第8章 逻辑运算168 8.1 逻辑运算指令168 8.2 移位指令170 8.3 循环移位指令175 8.4 逻辑运算指令应用177 8.4.1 BCD码的输入/输出177 8.4.2 二进制数的输入/输出181 习题184 第9章 分支程序与循环程序设计186 9.1 分支186 9.1.1 标号186 9.1.2 无条件转移指令188 9.1.3 条件转移195 9.2 程序设计流程图198 9.3 循环程序设计200 9.3.1 循环控制指令200 9.3.2 单重循环204 9.3.3 多重循环207 习题212 第10章 串操作指令与程序设计214 10.1 字符串操作综述214 10.2 字符串操作指令219 10.3 串操作指令的重复前缀227 习题228 第11章 过程230 11.1 过程的定义与说明230 11.2 过程调用232 11.3 过程的返回238 11.4 模块间的调用和转移238 11.5 寄存器的保护和恢复242 11.6 调用程序与被调用过程之间的数据传送244 11.7 递归246 11.8 C语言调用汇编过程248 习题250 第12章 高级汇编语言技术252 12.1 结构252 12.2 联合260 12.3 记录262 12.4 宏269 习题273 第13章 中断及中断处理程序276 13.1 中断及中断相关概念276 13.1.1 中断的基本概念276 13.1.2 中断向量表276 13.1.3 中断源及中断源的识别278 13.1.4 中断的分类279 13.1.5 中断处理机制281 13.1.6 CPU响应中断的条件282 13.1.7 中断的优先级282 13.1.8 中断嵌套283 13.2 软件中断284 13.2.1 软件中断的处理过程284 13.2.2 软件中断的分类285 13.2.3 软件中断的访问287 13.3 DOS中断服务288 13.3.1 DOS中断服务的概念288 13.3.2 常用的DOS中断288 13.4 BIOS中断服务290 13.4.1 BIOS的概念290 13.4.2 BIOS中断服务的概念290 13.4.3 常见的BIOS中断290 13.5 DOS和BIOS功能调用实例291 13.6 典型的中断处理程序实例306 13.6.1 中断处理程序的编程原则306 13.6.2 读取和设置中断向量306 习题311 第14章 端口输入/输出与外设编程314 14.1 端口314 14.2 8259A、8253和8255典型芯片编程316 14.2.1 8259A芯片编程316 14.2.2 8255编程319 14.2.3 8253编程322 14.3 其他芯片编程325 14.4 综合实例328 习题335 第15章 32位80x86汇编336 15.1 80386系统结构及内存寻址336 15.1.1 80386CPU的逻辑结构337 15.1.2 80386CPU的工作模式343 15.1.3 80386CPU内存寻址344 15.1.4 80386CPU内存分页机制346 15.2 WIN32汇编开发环境349 15.2.1 MASM32配置与使用350 15.2.2 32位调试程序TD32352 15.3 WIN32汇编实践353 15.3.1 WIN32汇编语言程序 结构354 15.3.2 启蒙实例——“Hello,World!”358 15.3.3 嵌入式汇编实例——?高精度定时363 15.3.4 综合实例——?图形化时钟367 习题375 附录AASCII表377 附录B调试程序DEBUG简介380 附录C键盘扫描码set1386 参考文献388 |
商品评论(0条)