社区
汇编语言
帖子详情
请问如何调试中断以及驻留程序
wycl16514
2007-05-12 12:58:54
如果我在汇编程序中接管了9号键盘中断,或者我写了一段驻留程序,但是运行时出问题,想调试,我该怎么办?
...全文
306
7
打赏
收藏
请问如何调试中断以及驻留程序
如果我在汇编程序中接管了9号键盘中断,或者我写了一段驻留程序,但是运行时出问题,想调试,我该怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wycl16514
2007-05-18
打赏
举报
回复
谢谢上楼的朋友,我在中断中调用了原来9号中断,调用后接着是我的代码,问题是我自己写的代码怎么调试?
x360995630
2007-05-18
打赏
举报
回复
直接debug命令就ok了
不过出来的全是内存地址及汇编指令
不好看啊
wycl16514
2007-05-18
打赏
举报
回复
感谢楼上各位朋友,用debug在中断代码处设置断点后虽然可以在断点处停留,但是一旦在断点处停留后dos就死了,输入都无效了
蒋晟
2007-05-18
打赏
举报
回复
http://support.microsoft.com/kb/148954
http://www.wd-3.com/archive/RemoteDbg.htm
mengshijie_1981
2007-05-16
打赏
举报
回复
一般情况下接管9号中断是不对的,而是应该偷窥,意思是这样的:在你的中断驻留程序或者中断出来函数中的最后,调用原来的9号中断。
wycl16514
2007-05-12
打赏
举报
回复
谢谢,可是不行,无法使程序停留在断点处
wuyunguo07
2007-05-12
打赏
举报
回复
能在线调试吗,在中断程序里打个断点就可以了
中断
服务
程序
设计实验
中断
服务
程序
设计实验 2.7.1 实验目的 1、 熟悉
中断
的概念、
中断
响应过程、
中断
向量表以及系统是如何根据
中断
类型号在
中断
向量表中得到该
中断
对应的
中断
服务
程序
的入口地址等内容。 2、 掌握
中断
服务
程序
的设计方法。 2.7.2 实验预习要求 1、 复习
中断
的有关内容。 2、 复习
中断
服务
程序
设计方法。 3、 读懂“2.7.4 实验内容”中给出的源
程序
,以便上机
调试
。 4、 从“2.7.5 实验习题”中任选一道题目,编写源
程序
,以便上机
调试
。 2.7.3
中断
服务
程序
设计方法简介 由2.6节中的
中断
向量表可以看出,PC
中断
系统中
中断
类型可分为三类: 磁盘操作系统DOS提供的
中断
服务
程序
,
中断
类型号从20H到2FH; 系统主板BIOS芯片提供的BIOS
中断
服务
程序
,包括系统内部
中断
,
中断
类型号从00H到07H;系统8级外部
中断
,
中断
类型号从08H到0FH,它们对应于接在可编程
中断
控制器8259A的8个
中断
请求输入端IR0IR7的8个外部
中断
,其中IR2(
中断
类型号0AH)为系统保留,用户可通过该引脚实现对用户所需的外部硬件
中断
的管理;设备驱动
程序
,
中断
类型号从10H到1FH等; 用户定义的
中断
,
中断
类型号从60H到7FH、F1H到FFH。用户可根据实际需要将某些通用性强的子
程序
功能通过
中断
服务
程序
来实现。一旦设置好了这样的
中断
服务
程序
,在其他应用
程序
中就可以调用这些
中断
服务
程序
。 设计
中断
服务
程序
的步骤如下: 1、 选择一个
中断
类型号 如果采用硬件
中断
,则要使用硬件决定的
中断
类型号。在PC机系统中,使用了一片可编程
中断
控制器8259A来对外部硬件
中断
进行管理,具体内容参见教材264页“8259A应用举例”,可以看出IR2为系统保留,其
中断
类型号为0AH。若用户需要,可将用户所需的外部
中断
源发来的
中断
请求信号接到IR2,编写该
中断
所需的
中断
服务
程序
,并将该
中断
服务
程序
的入口地址写到
中断
向量表0AH4AH4+3四个单元中,这样,当接在IR2上的外部
中断
源发来
中断
请求信号时,系统就会根据得到的类型号(0AH)到
中断
向量表中找出其入口地址,并转去执行该
中断
服务
程序
。 如果采用软件
中断
,即利用执行int n指令的方式执行
中断
服务
程序
,则可从系统预留给用户的
中断
类型号60H7FH、F1HFFH中选择一个。 2、 将
中断
服务
程序
的入口地址置入
中断
向量表的相应的四个存储单元中 确定了
中断
类型号,还要把
中断
服务
程序
入口地址置入
中断
向量表,以保证在
中断
响应时CPU能自动转入与该类型号相对应的
中断
服务
程序
。下面介绍两种将
中断
服务
程序
入口地址置入
中断
向量表的方法。 (1) 直接装入法 用传送指令直接将
中断
服务
程序
首地址置入矢量表中。设
中断
类型号为60H(此类型号对应的矢量表地址为从00180H开始的四个连续存储单元)。 PUSH DS XOR AX,AX MOV DS,AX ;将数据段寄存器清零 MOV AX,OFFSET INT60 ;将
中断
服务
程序
INT60所在段内的偏移地址送AX MOV DS:[0180H],AX ;将
中断
服务
程序
偏移地址送
中断
向量表00180H和00181单元 MOV AX,SEG INT60 ;将
中断
服务
程序
INT60所在段的段地址送AX MOV DS:[0180H+2],AX ;将
中断
服务
程序
所在代码段的段地址送00182H和00183单元 POP DS (2) DOS系统功能调用法 功能号(AH)=25H; 入口参数:(AL)=
中断
类型号, (DS)=
中断
服务
程序
入口地址的段地址 (DX)=
中断
服务
程序
入口地址的偏移地址 下面
程序
段完成
中断
类型号为60H的入口地址置入。 PUSH DS ;保护DS MOV DX,OFFSET INT60 ;取服务
程序
偏移地址 MOV AX,SEG INT60 ;取服务
程序
段地址 MOV DS,AX MOV AH,25H ;送功能号 MOV AL,60H ;送
中断
类型号 INT 21H ;DOS功能调用 POP DS ;恢复DS 3、 使
中断
服务
程序
驻留
内存,以便其他应用
程序
调用 实现这一步骤的必要性在于:一旦
中断
服务
程序
驻留
内存后,一般
程序
员使用这一新增的
中断
调用就如同调用DOS或BIOS的
中断
子
程序
一样,只要了解其入口要求和返回参数就可调用。
程序
驻留
在内存后,它占用的存储区就不会被其他软件覆盖。使
程序
驻留
内存,要求该
程序
以 .COM形式运行,这种种结构的
程序
要求入口定位于100H,并且数据和代码均在同一个段内,这样,.COM
程序
就被定位于低地址区,DOS常在低地址区增加
驻留
程序
,而 .EXE
程序
被定位于高地
8086/8088汇编语言
程序
设计教程
本书分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台,以MASM和TASM为汇编器,介绍汇编语言的有关概念,讲解汇编语言
程序
设计技术。第二部分是提高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关概念,系统和详细地讲解了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三部分是上机实验指导。 本书的第一部分适合初学者,可作为学习汇编语言
程序
设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的
程序
员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为
程序
员透彻地了解Windows
程序
设计技术的参考书。 第一部分 基础部分 第1章 绪论 1.1 汇编语言概述 1.1.1 汇编语言 1.1.2 汇编语言的特点 1.1.3 恰当地使用汇编语言 1.2 数据的表示和类型 1.2.1 数值数据的表示 1.2.2 非数值数据的表示 1.2.3 基本数据类型 1.3 Intel系列CPU简介 1.3.1 8位微处理器 1.3.2 16位微处理器 1.3.3 32位微处理器 1.3.4 Pentium和Pentium Pro 1.4 习题 第2章 8086/8088寻址方式和指令系统 2.1 8086/8088寄存器组 2.1.1 8086/8088 CPU寄存器组 2.1.2 标志寄存器 2.2 存储器分段和地址的形成 2.2.1 存储单元的地址和内容 2.2.2 存储器的分段 2.2.3 物理地址的形成 2.2.4 段寄存器的引用 2.3 8086/8088的寻址方式 2.3.1 立即寻址方式 2.3.2 寄存器寻址方式 2.3.3 直接寻址方式 2.3.4 寄存器间接寻址方式 2.3.5 寄存器相对寻址方式 2.3.6 基址加变址寻址方式 2.3.7 相对基址加变址寻址方式 2.4 8086/8088指令系统 2.4.1 指令集说明 2.4.2 数据传送指令 2.4.3 堆栈操作指令 2.4.4 标志操作指令 2.4.5 加减运算指令 2.4.6 乘除运算指令 2.4.7 逻辑运算和移位指令 2.4.8 转移指令 2.5 习题 第3章 汇编语言及其
程序
设计初步 3.1 汇编语言的语句 3.1.1 语句的种类和格式 3.1.2 数值表达式 3.1.3 地址表达式 3.2 变量和标号 3.2.1 数据定义语句 3.2.2 变量和标号 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.6 循环
程序
设计 3.6.1 循环
程序
举例 3.6.2 多重循环
程序
举例 3.7 习题 第4章 子
程序
设计和DOS功能调用 4.1 子
程序
设计 4.1.1 过程调用和返回指令 4.1.2 过程定义语句 4.1.3 子
程序
举例 4.1.4 子
程序
说明信息 4.1.5 寄存器的保护与恢复 4.2 主
程序
与子
程序
间的参数传递 4.2.1 利用寄存器传递参数 4.2.2 利用约定存储单元传递参数 4.2.3 利用堆栈传递参数 4.2.4 利用CALL后续区传递参数 4.3 DOS功能调用及应用 4.3.1 DOS功能调用概述 4.3.2 基本I/O功能调用 4.3.3 应用举例 4.4 磁盘文件管理及应用 4.4.1 DOS磁盘文件管理功能调用 4.4.2 应用举例 4.5 子
程序
的递归和重入 4.5.1 递归子
程序
4.5.2 可重入子
程序
4.6 习题 第5章 输入输出与
中断
5.1输 入和输出的基本概念 5.1.1 I/O端口地址和I/O指令 5.1.2 数据传送方式 5.1.3 存取RT/CMOS RAM 5.2 查询方式传送数据 5.2.1 查询传送方式 5.2.2 读实时钟 5.2.3 查询方式打印输出 5.3
中断
5.3.1
中断
和
中断
传送方式 5.3.2
中断
向量表 5.3.3
中断
响应过程 5.3.4 外部
中断
5.3.5 内部
中断
5.3.6
中断
优先级和
中断
嵌套 5.3.7
中断
处理
程序
的设计 5.4 基本输入输出系统BIOS 5.4.1 基本输入输出系统BIOS概述 5.4.2 键盘输入 5.4.3 显示输出 5.4.4 打印输出 5.5 软
中断
处理
程序
举例 5.5.1 打印I/O
程序
5.5.2 时钟显示
程序
5.6 习题 第6章 简单应用
程序
的设计 6.1 字符串处理 6.1.1 字符串操作指令 6.1.2 重复前缀 6.1.3 字符串操作举例 6.2 十进制数算术运算调整指令及应用 6.2.1 组合BCD码的算术运算调整指令 6.2.2 未组合BCD码的算术运算调整指令 6.2.3 应用举例 6.3 DOS
程序
段前缀和特殊情况处理
程序
6.3.1 DOS
程序
段前缀PSP 6.3.2 对Ctrl+C键和Ctrl+Break键的处理 6.4 TSR
程序
设计举例 6.4.1
驻留
的时钟显示
程序
6.4.2 热键激活的TSR
程序
6.5 习题 第7章 高级汇编语言技术 7.1 结构和记录 7.1.1 结构 7.1.2 记录 7.2 宏 7.2.1 宏指令的定义和使用 7.2.2 宏指令的用途 7.2.3 宏指令中参数的使用 7.2.4 特殊的宏运算符 7.2.5 宏与子
程序
的区别 7.2.6 与宏有关的伪指令 7.2.7 宏定义的嵌套 7.3 重复汇编 7.3.1 伪指令REPT 7.3.2 伪指令IRP 7.3.3 伪指令IRPC 7.4 条件汇编 7.4.1 条件汇编伪指令 7.4.2 条件汇编与宏结合 7.5 源
程序
的结合 7.5.1 源
程序
的结合 7.5.2 宏库的使用 7.6 习题 第8章 模块化
程序
设计技术 8.1 段的完整定义 8.1.1 完整的段定义 8.1.2 关于堆栈段的说明 8.1.3 段组的说明和使用 8.2 段的简化定义 8.2.1 存储模型说明伪指令 8.2.2 简化的段定义伪指令 8.2.3 存储模型说明伪指令的隐含动作 8.3 模块间的通信 8.3.1 伪指令PUBLIC和伪指令EXTRN 8.3.2 模块间的转移 8.3.3 模块间的信息传递 8.4 子
程序
库 8.4.1 子
程序
库 8.4.2 建立子
程序
库 8.4.3 使用举例 8.5 编写供Turbo C调用的函数 8.5.1 汇编格式的编译结果 8.5.2 汇编模块应该遵守的约定 8.5.3 参数传递和寄存器保护 8.5.4 举例 8.6 习题 第二部分 提高部分 第9章 80386
程序
设计基础 9.1 80386寄存器 9.1.1 通用寄存器 9.1.2 段寄存器 9.1.3 指令指针和标志寄存器 9.2 80386存储器寻址 9.2.1 存储器寻址基本概念 9.2.2 灵活的存储器寻址方式 9.2.3 支持各种数据结构 9.3 80386指令集 9.3.1 数据传送指令 9.3.2 算术运算指令 9.3.3 逻辑运算和移位指令 9.3.4 控制转移指令 9.3.5 串操作指令 9.3.6 高级语言支持指令 9.3.7 条件字节设置指令 9.3.8 位操作指令 9.3.9 处理器控制指令 9.4 实方式下的
程序
设计 9.4.1 说明 9.4.2 实例 9.5 习题 第10章 保护方式下的80386及其编程 10.1 保护方式简述 10.1.1 存储管理机制 10.1.2 保护机制 10.2 分段管理机制 10.2.1 段定义和虚拟地址到线性地址转换 10.2.2 存储段描述符 10 2.3 全局和局部描述符表 10.2.4 段选择子 10.2.5 段描述符高速缓冲寄存器 10.3 80386控制寄存器和系统地址寄存器 10.3.1 控制寄存器 10 3.2 系统地址寄存器 10.4 实方式与保护方式切换实例 10.4.1 演示实方式和保护方式切换的实例(实例一) 10.4.2 演示32位代码段和16位代码段切换的实例(实例二) 10.5 任务状态段和控制门 10.5.1 系统段描述符 10.5.2 门描述符 10.5.3 任务状态段 10.6 控制转移 10.6.1 任务内无特权级变换的转移 10.6.2 演示任务内无特权级变换转移的实例(实例三) 10.6.3 任务内不同特权级的变换 10.6.4 演示任务内特权级变换的实例(实例四) 10.6.5 任务切换 10.6.6 演示任务切换的实例(实例五) 10.7 80386的
中断
和异常 10.7.1 80386的
中断
和异常 10.7.2 异常类型 10.7.3
中断
和异常的转移方法 10.7.4 演示
中断
处理的实例(实例六) 10.7.5 演示异常处理的实例(实例七) 10.7.6 各种转移途径小结 10.8 操作系统类指令 10.8.1 实方式和任何特权级下可执行的指令 10.8.2 实方式及特权级0下可执行的指令 10 8.3 只能在保护方式下执行的指令 10.8.4 显示关键寄存器内容的实例(实例八) 10.8.5 特权指令 10.9 输入/输出保护 10.9.1 输入/输出保护 10.9.2 重要标志保护 10.9.3 演示输入/输出保护的实例(实例九) 10.10 分页管理机制 10.10.1 存储器分页管理机制 10.10.2 线性地址到物理地址的转换 10.10.3 页级保护和虚拟存储器支持 10.10.4 页异常 10.10.5 演示分页机制的实例(实例十) 10.11 虚拟8086方式 10.11.1 V86方式 10.11.2 进入和离开V86方式 10.11.3 演示进入和离开V86方式的实例(实例十一) 10.11.4 V86方式下的敏感指令 10.12 习题 第11章 80486及Pentium
程序
设计基础 11.1 80486
程序
设计基础 11.1.1 寄存器 11.1.2 指令系统 11.1.3 片上超高速缓存 11.2 80486对
调试
的支持 11 2.1
调试
寄存器 11.2.2 演示
调试
故障/陷阶的实例 11.3 Pentium
程序
设计基础 11.3.1 寄存器 11.3.2 指令系统 11.3.3 处理器的识别 11.3.4 片上超高速缓存 11.4 基于Pentium的
程序
优化技术 11.4.1 流水线优化技术 11.4.2 分支优化技术 11.4.3 超高速缓存代化技术 11.5 习题 第三部分 上机实验指导 第12章 实验指导 12.1 实验的一般步骤 12.2 汇编器和连接器的使用 12.2.1 MASM的使用 12.2.2 LINK的使用 12.2.3 TASM的使用 12.2.4 TLINK的使用 12.3
调试
器DEBUG的使用 12.3.1 启动和退出DEBUG 12.3.2 命令一览 12.3.3 利用DEBUG
调试
程序
12.4 Turbo Debugger的使用 12.4.1 启动和退出TD 12.4.2 利用TD
调试
汇编
程序
参考文献 附录 Pentium指令与标志参考表
80x86汇编语言
程序
设计教程
本书分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台,以MASM和TASM为汇编器,介绍汇编语言的有关概念,讲解汇编语言
程序
设计技术。第二部分是提高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关概念,系统和详细地讲解了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三部分是上机实验指导。 本书的第一部分适合初学者,可作为学习汇编语言
程序
设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的
程序
员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为
程序
员透彻地了解Windows
程序
设计技术的参考书。 第一部分 基础部分 第1章 绪论 1.1 汇编语言概述 1.1.1 汇编语言 1.1.2 汇编语言的特点 1.1.3 恰当地使用汇编语言 1.2 数据的表示和类型 1.2.1 数值数据的表示 1.2.2 非数值数据的表示 1.2.3 基本数据类型 1.3 Intel系列CPU简介 1.3.1 8位微处理器 1.3.2 16位微处理器 1.3.3 32位微处理器 1.3.4 Pentium和Pentium Pro 1.4 习题 第2章 8086/8088寻址方式和指令系统 2.1 8086/8088寄存器组 2.1.1 8086/8088 CPU寄存器组 2.1.2 标志寄存器 2.2 存储器分段和地址的形成 2.2.1 存储单元的地址和内容 2.2.2 存储器的分段 2.2.3 物理地址的形成 2.2.4 段寄存器的引用 2.3 8086/8088的寻址方式 2.3.1 立即寻址方式 2.3.2 寄存器寻址方式 2.3.3 直接寻址方式 2.3.4 寄存器间接寻址方式 2.3.5 寄存器相对寻址方式 2.3.6 基址加变址寻址方式 2.3.7 相对基址加变址寻址方式 2.4 8086/8088指令系统 2.4.1 指令集说明 2.4.2 数据传送指令 2.4.3 堆栈操作指令 2.4.4 标志操作指令 2.4.5 加减运算指令 2.4.6 乘除运算指令 2.4.7 逻辑运算和移位指令 2.4.8 转移指令 2.5 习题 第3章 汇编语言及其
程序
设计初步 3.1 汇编语言的语句 3.1.1 语句的种类和格式 3.1.2 数值表达式 3.1.3 地址表达式 3.2 变量和标号 3.2.1 数据定义语句 3.2.2 变量和标号 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.6 循环
程序
设计 3.6.1 循环
程序
举例 3.6.2 多重循环
程序
举例 3.7 习题 第4章 子
程序
设计和DOS功能调用 4.1 子
程序
设计 4.1.1 过程调用和返回指令 4.1.2 过程定义语句 4.1.3 子
程序
举例 4.1.4 子
程序
说明信息 4.1.5 寄存器的保护与恢复 4.2 主
程序
与子
程序
间的参数传递 4.2.1 利用寄存器传递参数 4.2.2 利用约定存储单元传递参数 4.2.3 利用堆栈传递参数 4.2.4 利用CALL后续区传递参数 4.3 DOS功能调用及应用 4.3.1 DOS功能调用概述 4.3.2 基本I/O功能调用 4.3.3 应用举例 4.4 磁盘文件管理及应用 4.4.1 DOS磁盘文件管理功能调用 4.4.2 应用举例 4.5 子
程序
的递归和重入 4.5.1 递归子
程序
4.5.2 可重入子
程序
4.6 习题 第5章 输入输出与
中断
5.1输 入和输出的基本概念 5.1.1 I/O端口地址和I/O指令 5.1.2 数据传送方式 5.1.3 存取RT/CMOS RAM 5.2 查询方式传送数据 5.2.1 查询传送方式 5.2.2 读实时钟 5.2.3 查询方式打印输出 5.3
中断
5.3.1
中断
和
中断
传送方式 5.3.2
中断
向量表 5.3.3
中断
响应过程 5.3.4 外部
中断
5.3.5 内部
中断
5.3.6
中断
优先级和
中断
嵌套 5.3.7
中断
处理
程序
的设计 5.4 基本输入输出系统BIOS 5.4.1 基本输入输出系统BIOS概述 5.4.2 键盘输入 5.4.3 显示输出 5.4.4 打印输出 5.5 软
中断
处理
程序
举例 5.5.1 打印I/O
程序
5.5.2 时钟显示
程序
5.6 习题 第6章 简单应用
程序
的设计 6.1 字符串处理 6.1.1 字符串操作指令 6.1.2 重复前缀 6.1.3 字符串操作举例 6.2 十进制数算术运算调整指令及应用 6.2.1 组合BCD码的算术运算调整指令 6.2.2 未组合BCD码的算术运算调整指令 6.2.3 应用举例 6.3 DOS
程序
段前缀和特殊情况处理
程序
6.3.1 DOS
程序
段前缀PSP 6.3.2 对Ctrl+C键和Ctrl+Break键的处理 6.4 TSR
程序
设计举例 6.4.1
驻留
的时钟显示
程序
6.4.2 热键激活的TSR
程序
6.5 习题 第7章 高级汇编语言技术 7.1 结构和记录 7.1.1 结构 7.1.2 记录 7.2 宏 7.2.1 宏指令的定义和使用 7.2.2 宏指令的用途 7.2.3 宏指令中参数的使用 7.2.4 特殊的宏运算符 7.2.5 宏与子
程序
的区别 7.2.6 与宏有关的伪指令 7.2.7 宏定义的嵌套 7.3 重复汇编 7.3.1 伪指令REPT 7.3.2 伪指令IRP 7.3.3 伪指令IRPC 7.4 条件汇编 7.4.1 条件汇编伪指令 7.4.2 条件汇编与宏结合 7.5 源
程序
的结合 7.5.1 源
程序
的结合 7.5.2 宏库的使用 7.6 习题 第8章 模块化
程序
设计技术 8.1 段的完整定义 8.1.1 完整的段定义 8.1.2 关于堆栈段的说明 8.1.3 段组的说明和使用 8.2 段的简化定义 8.2.1 存储模型说明伪指令 8.2.2 简化的段定义伪指令 8.2.3 存储模型说明伪指令的隐含动作 8.3 模块间的通信 8.3.1 伪指令PUBLIC和伪指令EXTRN 8.3.2 模块间的转移 8.3.3 模块间的信息传递 8.4 子
程序
库 8.4.1 子
程序
库 8.4.2 建立子
程序
库 8.4.3 使用举例 8.5 编写供Turbo C调用的函数 8.5.1 汇编格式的编译结果 8.5.2 汇编模块应该遵守的约定 8.5.3 参数传递和寄存器保护 8.5.4 举例 8.6 习题 第二部分 提高部分 第9章 80386
程序
设计基础 9.1 80386寄存器 9.1.1 通用寄存器 9.1.2 段寄存器 9.1.3 指令指针和标志寄存器 9.2 80386存储器寻址 9.2.1 存储器寻址基本概念 9.2.2 灵活的存储器寻址方式 9.2.3 支持各种数据结构 9.3 80386指令集 9.3.1 数据传送指令 9.3.2 算术运算指令 9.3.3 逻辑运算和移位指令 9.3.4 控制转移指令 9.3.5 串操作指令 9.3.6 高级语言支持指令 9.3.7 条件字节设置指令 9.3.8 位操作指令 9.3.9 处理器控制指令 9.4 实方式下的
程序
设计 9.4.1 说明 9.4.2 实例 9.5 习题 第10章 保护方式下的80386及其编程 10.1 保护方式简述 10.1.1 存储管理机制 10.1.2 保护机制 10.2 分段管理机制 10.2.1 段定义和虚拟地址到线性地址转换 10.2.2 存储段描述符 10 2.3 全局和局部描述符表 10.2.4 段选择子 10.2.5 段描述符高速缓冲寄存器 10.3 80386控制寄存器和系统地址寄存器 10.3.1 控制寄存器 10 3.2 系统地址寄存器 10.4 实方式与保护方式切换实例 10.4.1 演示实方式和保护方式切换的实例(实例一) 10.4.2 演示32位代码段和16位代码段切换的实例(实例二) 10.5 任务状态段和控制门 10.5.1 系统段描述符 10.5.2 门描述符 10.5.3 任务状态段 10.6 控制转移 10.6.1 任务内无特权级变换的转移 10.6.2 演示任务内无特权级变换转移的实例(实例三) 10.6.3 任务内不同特权级的变换 10.6.4 演示任务内特权级变换的实例(实例四) 10.6.5 任务切换 10.6.6 演示任务切换的实例(实例五) 10.7 80386的
中断
和异常 10.7.1 80386的
中断
和异常 10.7.2 异常类型 10.7.3
中断
和异常的转移方法 10.7.4 演示
中断
处理的实例(实例六) 10.7.5 演示异常处理的实例(实例七) 10.7.6 各种转移途径小结 10.8 操作系统类指令 10.8.1 实方式和任何特权级下可执行的指令 10.8.2 实方式及特权级0下可执行的指令 10 8.3 只能在保护方式下执行的指令 10.8.4 显示关键寄存器内容的实例(实例八) 10.8.5 特权指令 10.9 输入/输出保护 10.9.1 输入/输出保护 10.9.2 重要标志保护 10.9.3 演示输入/输出保护的实例(实例九) 10.10 分页管理机制 10.10.1 存储器分页管理机制 10.10.2 线性地址到物理地址的转换 10.10.3 页级保护和虚拟存储器支持 10.10.4 页异常 10.10.5 演示分页机制的实例(实例十) 10.11 虚拟8086方式 10.11.1 V86方式 10.11.2 进入和离开V86方式 10.11.3 演示进入和离开V86方式的实例(实例十一) 10.11.4 V86方式下的敏感指令 10.12 习题 第11章 80486及Pentium
程序
设计基础 11.1 80486
程序
设计基础 11.1.1 寄存器 11.1.2 指令系统 11.1.3 片上超高速缓存 11.2 80486对
调试
的支持 11 2.1
调试
寄存器 11.2.2 演示
调试
故障/陷阶的实例 11.3 Pentium
程序
设计基础 11.3.1 寄存器 11.3.2 指令系统 11.3.3 处理器的识别 11.3.4 片上超高速缓存 11.4 基于Pentium的
程序
优化技术 11.4.1 流水线优化技术 11.4.2 分支优化技术 11.4.3 超高速缓存代化技术 11.5 习题 第三部分 上机实验指导 第12章 实验指导 12.1 实验的一般步骤 12.2 汇编器和连接器的使用 12.2.1 MASM的使用 12.2.2 LINK的使用 12.2.3 TASM的使用 12.2.4 TLINK的使用 12.3
调试
器DEBUG的使用 12.3.1 启动和退出DEBUG 12.3.2 命令一览 12.3.3 利用DEBUG
调试
程序
12.4 Turbo Debugger的使用 12.4.1 启动和退出TD 12.4.2 利用TD
调试
汇编
程序
参考文献 附录 Pentium指令与标志参考表
汇编语言
程序
设计 第二版
作 者:吴向军 等 著 丛 书 名:普通高等教育“十一五”国家级规划教材 出 版 社:高等教育出版社 ISBN:9787040279498 出版时间:2009-11-01 版 次:2 页 数:386 装 帧:平装 开 本:16开 内容简介 《汇编语言
程序
设计(第2版)》以16位/32位Intel CPU为介绍对象,以并行推进的方式介绍这两类CPU的指令系统,以达到相互参考、对照的效果。另外,本书还介绍了常用的编程环境和
调试
工具的使用方法。 在内容组织上,把学习高级语言的习惯和汇编语言的特点相结合,按“硬件资源—变量定义一指令系统—编程”的顺序安排相应的内容。结合MASM V6.1x的编程环境,使汇编语言源
程序
具有一定的高级语言特点和结构。书中用一章来介绍浮点数的表示、浮点运算指令和编程方法,使读者对高级语言中的各种数据类型与低层实现之间的联系有一个更清晰的认识。还用一章介绍了用汇编语言编写Windows应用
程序
的基本方法,为拓宽汇编语言的应用领域做一点尝试。 书中附有一些基本的编程辅助信息,这些信息包括各种按键的码值和显示颜色信息等。在Windows应用
程序
的编写部分,附录中给出了编程中所用到的一些常量列表和函数功能的说明。这些辅助信息可为编程带来一定的方便,也可作为常用手册以待查阅。 《汇编语言
程序
设计(第2版)》可作为计算机学科的本科生、大专生及相近专业学生的教材,也可作为相关工程技术人员的学习资料或参考书。 目录 第一章 预备知识 1.1 汇编语言的由来及其特点 1.1.1 机器语言 1.1.2 汇编语言 1.1.3 汇编
程序
1.1.4 汇编语言
程序
的主要特点 1.1.5 汇编语言的应用领域 1.2 数据的表示和类型 1.2.1 数值数据的表示 1.2.2 非数值数据的表示 1.2.3 基本数据类型 习题 第二章 CPU资源和存储器 2.1 寄存器组 2.1.1 寄存器组 2.1.2 通用寄存器 2.1.3 段寄存器 2.1.4 专用寄存器 2.2 存储器的管理模式 2.2.1 16位微机的内存管理模式 2.2.2 32位微机的内存管理模式 习题 第三章 操作数的寻址方式 3.1 立即寻址方式 3.2 寄存器寻址方式 3.3 直接寻址方式 3.4 寄存器间接寻址方式 3.5 寄存器相对寻址方式 3.6 基址加变址寻址方式 3.7 相对基址加变址寻址方式 3.8 32位地址的寻址方式 习题 第四章 标识符和表达式 4.1 标识符 4.2 简单内存变量的定义 4.2.1 内存变量定义的一般形式 4.2.2 字节变量 4.2.3 字变量 4.2.4 双字变量 4.2.5 六字节变量 4.2.6 八字节变量 4.2.7 十字节变量 4.2.8 浮点类型变量 4.3 调整偏移量伪指令 4.3.1 偶对齐伪指令EVEN 4.3.2 对齐伪指令ALIGN 4.3.3 调整偏移量伪指令ORG 4.3.4 偏移量计数器的值 4.4 复合内存变量的定义 4.4.1 重复说明符DUP 4.4.2 结构类型的定义 4.4.3 联合类型的定义 4.4.4 记录类型的定义 4.4.5 数据类型的自定义 4.5 标号 4.6 内存变量和标号的属性 4.6.1 段属性操作符 4.6.2 偏移量属性操作符 4.6.3 类型属性操作符 4.6.4 长度屑性操作符 4.6.5 容量属性操作符 4.6.6 强制属性操作符 4.6.7 存储单元别名操作符 4.7 表达式 4.7.1 进制伪指令RADIX 4.7.2 数值表达式 4.7.3 地址表达式 4.8 符号定义语句 4.8.1 等价语句 4.8.2 等号语句 4.8.3 符号名定义语句 习题 第五章 微机CPU的指令系统 5.1 汇编语言指令格式 5.1.1 指令格式 5.1.2 指令的几个属性 5.2 指令系统 5.2.1 数据传送指令 5.2.2 标志位操作指令 5.2.3 算术运算指令 5.2.4 逻辑运算指令 5.2.5 移位操作指令 5.2.6 位操作指令 5.2.7 比较运算指令 5.2.8 循环指令 5.2.9 转移指令 5.2.10 条件设置字节指令 5.2.11 字符串操作指令 5.2.12 ASCⅡ-BCD码运算调整指令 5.2.13 处理器指令 习题 第六章
程序
的基本结构 6.1 源
程序
的基本组成 6.1.1 段的定义 6.1.2 段寄存器的说明语句 6.1.3 堆栈段的说明 6.1.4 源
程序
的结构 6.2
程序
的基本结构 6.2.1 顺序结构 6.2.2 分支结构 6.2.3 循环结构 6.3 段的基本属性 6.3.1 对齐类型(ALIGN) 6.3.2 组合类型(COMBINE) 6.3.3 类别(CLASS) 6.3.4 段组(GROUP) 6.4 简化的段定义 6.4.1 存储模式说明伪指令 6.4.2 简化段定义伪指令 6.4.3 简化段段名的引用 6.5 源
程序
的辅助说明伪指令 习题 第七章、子
程序
和库 7.1 子
程序
的定义 7.2 子
程序
的调用和返回指令 7.2.1 调用指令 7.2.2 返回指令 7.3 子
程序
的参数传递 7.3.1 寄存器传递参数 7.3.2 约定存储单元传递参数 7.3.3 堆栈传递参数 7.4 寄存器的保护与恢复 7.5 子
程序
的完全定义 7.5.1 子
程序
完全定义格式 7.5.2 子
程序
的位距 7.5.3 子
程序
的语言类型 7.5.4 子
程序
的可见性 7.5.5 子
程序
的“起始”和“结束”操作 7.5.6 寄存器的保护和恢复 7.5.7 子
程序
的参数传递 7.5.8 子
程序
的原型说明 7.5.9 子
程序
的调用伪指令 7.5.10 局部变量的定义 7.6 子
程序
库 7.6.1 建立库文件命令 7.6.2 建立库文件举例 7.6.3 库文件的应用 7.6.4库文件的好处 习题 第八章 输入输出和
中断
8.1 输入输出的基本概念 8.1.1 I/O端口地址 8.1.2 I/O指令 8.2
中断
8.2.1
中断
的基本概念 8.2.2
中断
指令 8.2.3
中断
返回指令 8.2.4
中断
和子
程序
调用 8.3
中断
功能的分类 8.3.1 键盘输入的
中断
功能 8.3.2 屏幕显示的
中断
功能 8.3.3 打印输出的
中断
功能 8.3.4 串行通信口的
中断
功能 8.3.5 鼠标的
中断
功能 8.3.6 目录和文件的
中断
功能 8.3.7 内存管理的
中断
功能 8.3.8 读取/设置
中断
向量 习题 第九章 宏 9.1 宏的定义和引用 9.1.1 宏的定义 9.1.2 宏的引用 9.1.3 宏的参数传递方式 9.1.4 宏的嵌套定义 9.1.5 宏与子
程序
的区别 9.2 宏参数的特殊运算符 9.2.1 连接运算符 9.2.2 字符串整体传递运算符 9.2.3 字符转义运算符 9.2.4 计算表达式运算符 9.3 与宏有关的伪指令 9.4 重复汇编伪指令 9.4.1 伪指令REPT 9.4.2 伪指令IRP 9.4.3 伪指令IRPC 9.5 条件汇编伪指令 9.5.1 条件汇编伪指令的功能 9.5.2 条件汇编伪指令的举例 9.6 宏的扩充 9.6.1 宏定义形式 9.6.2 重复伪指令REPEAT 9.6.3 循环伪指令WHILE 9.6.4 循环伪指令FOR 9.6.5 循环伪指令FORC 9.6.6 转移伪指令GOTO 9.6.7 宏扩充的举例 9.6.8 系统定义的宏 习题 第十章 应用
程序
设计 10.1 字符串的处理
程序
10.2 数据的分类统计
程序
10.3 数据转换
程序
10.4 文件操作
程序
10.5 动态数据的编程 10.6 COM文件的编程 10.7
驻留
程序
10.8
程序
段前缀及其应用 10.8.1
程序
段前缀的字段含义 10.8.2
程序
段前缀的应用 习题 第十一章 数值运算协处理器 11.1 协处理器的数据格式 11.1.1 有符号整数 11.1.2 BCD码数据 11.1.3 浮点数 11.2 协处理器的结构 11.2.1 协处理器的内部结构 11.2.2 状态寄存器 11.2.3 控制寄存器 11.2.4 标记寄存器 11.3 协处理器的指令系统 11.3.1 指令操作符的命名规则 11.3.2 数据传送指令 11.3.3 数学运算指令 11.3.4 比较运算指令 11.3.5 超越函数运算指令 11.3.6 常数操作指令 11.3.7 协处理器控制指令 11.4 协处理器的编程举例 习题 第十二章 汇编语言和C语言的混合编程 12.1 汇编指令的嵌入 12.2 C语言源
程序
的汇编输出 习题 第十三章 Windows应用
程序
的编程 13.1 消息框 13.2 编程伪指令 13.2.1 多路分支语句 13.2.2
调试
语句 13.3 Windows
程序
的结构 13.3.1 Windows
程序
的基本结构 13.3.2
程序
的初始化阶段 13.3.3 窗口的准备阶段 13.3.4 消息循环阶段 13.3.5 消息处理阶段 13.4 Windows应用
程序
13.4.1 按钮控件的应用 13.4.2 对话框的定义 13.4.3 对话框和控件的应用 13.4.4 绘画和图像的应用 13.4.5 命令行参数的处理 习题 第十四章 汇编语言编程环境和
调试
工具 14.1 汇编语言编程环境 14.1.1 MASM 6.1x 14.1.2 Turbo Assembler 14.1.3 MASM32 14.2
调试
工具 14.2.1 Debug 14.2.2 CodeView 14.2.3 Turbo Debugger 14.2.4 VKdebug 附录 附录一 键盘按键的各种编码对照表 附录二 显示地址及其显示属性 附录三 Windows中各类预定义常量 附录四 Windows应用
程序
中部分API函数 参考文献
汇编语言
程序
设计(chm格式)
汇编语言 chm格式 课程介绍 第1章 预备知识 1.1 汇编语言的由来及其特点 1 机器语言 2 汇编语言 3 汇编
程序
4 汇编语言的主要特点 5 汇编语言的使用领域 1.2 数据的表示和类型 1 数值数据的表示 2 非数值数据的表示 3 基本的数据类型 1.3 习题 第2章 CPU资源和存储器 2.1 寄存器组 1 寄存器组 2 通用寄存器的作用 3 专用寄存器的作用 2.2 存储器的管理模式 1 16位微机的内存管理模式 2 32位微机的内存管理模式 2.3 习题 第3章 操作数的寻址方式 3.1 立即寻址方式 3.2 寄存器寻址方式 3.3 直接寻址方式 3.4 寄存器间接寻址方式 3.5 寄存器相对寻址方式 3.6 基址加变址寻址方式 3.7 相对基址加变址寻址方式 3.8 32位地址的寻址方式 3.9 操作数寻址方式的小结 3.10 习题 第4章 标识符和表达式 4.1 标识符 4.2 简单内存变量的定义 1 内存变量定义的一般形式 2 字节变量 3 字变量 4 双字变量 5 六字节变量 6 八字节变量 7 十字节变量 4.3 调整偏移量伪指令 1 偶对齐伪指令 2 对齐伪指令 3 调整偏移量伪指令 4 偏移量计数器的值 4.4 复合内存变量的定义 1 重复说明符 2 结构类型的定义 3 联合类型的定义 4 记录类型的定义 5 数据类型的自定义 4.5 标号 4.6 内存变量和标号的属性 1 段属性操作符 2 偏移量属性操作符 3 类型属性操作符 4 长度属性操作符 5 容量属性操作符 6 强制属性操作符 7 存储单元别名操作符 4.7 表达式 1 进制伪指令 2 数值表达式 3 地址表达式 4.8 符号定义语句 1 等价语句 2 等号语句 3 符号名定义语句 4.9 习题 第5章 微机CPU的指令系统 5.1 汇编语言指令格式 1 指令格式 2 了解指令的几个方面 5.2 指令系统 1 数据传送指令 2 标志位操作指令 3 算术运算指令 4 逻辑运算指令 5 移位操作指令 6 位操作指令 7 比较运算指令 8 循环指令 9 转移指令 10 条件设置字节指令 11 字符串操作指令 12 ASCII-BCD码调整指令 13 处理器指令 5.3 习题 第6章
程序
的基本结构 6.1
程序
的基本组成 1 段的定义 2 段寄存器的说明语句 3 堆栈段的说明 4 源
程序
的结构 6.2
程序
的基本结构 1 顺序结构 2 分支结构 3 循环结构 6.3 段的基本属性 1 对齐类型 2 组合类型 3 类别 4 段组 6.4 简化的段定义 1 存储模型说明伪指令 2 简化段定义伪指令 3 简化段段名的引用 6.5 源
程序
的辅助说明伪指令 1 模块名定义伪指令 2 页面定义伪指令 3 标题定义伪指令 4 子标题定义伪指令 6.6 习题 第7章 子
程序
和库 7.1 子
程序
的定义 7.2 子
程序
的调用和返回指令 1 调用指令 2 返回指令 7.3 子
程序
的参数传递 1 寄存器传递参数 2 存储单元传递参数 3 堆栈传递参数 7.4 寄存器的保护与恢复 7.5 子
程序
的完全定义 1 子
程序
完全定义格式 2 子
程序
的位距 3 子
程序
的语言类型 4 子
程序
的可见性 5 子
程序
的起始和结束操作 6 寄存器的保护和恢复 7 子
程序
的参数传递 8 子
程序
的原型说明 9 子
程序
的调用伪指令 10 局部变量的定义 7.6 子
程序
库 1 建立库文件命令 2 建立库文件举例 3 库文件的应用 4 库文件的好处 7.7 习题 第8章 输入输出和
中断
8.1 输入输出的基本概念 1 I/O端口地址 2 I/O指令 8.2
中断
1
中断
的基本概念 2
中断
指令 3
中断
返回指令 4
中断
和子
程序
8.3
中断
的分类 1 键盘输入的
中断
功能 2 屏幕显示的
中断
功能 3 打印输出的
中断
功能 4 串行通信口的
中断
功能 5 鼠标的
中断
功能 6 目录和文件的
中断
功能 7 内存管理的
中断
功能 8 读取和设置
中断
向量 8.4 习题 第9章 宏 9.1 宏的定义和引用 1 宏的定义 2 宏的引用 3 宏的参数传递方式 4 宏的嵌套定义 5 宏与子
程序
的区别 9.2 宏参数的特殊运算符 1 连接运算符 2 字符串整体传递运算符 3 字符转义运算符 4 计算表达式运算符 9.3 与宏有关的伪指令 1 局部标号伪指令 2 取消宏定义伪指令 3 中止宏扩展伪指令 9.4 重复汇编伪指令 1 伪指令REPT 2 伪指令IRP 3 伪指令IRPC 9.5 条件汇编伪指令 1 条件汇编伪指令的功能 2 条件汇编伪指令的举例 9.6 宏的扩充 1 宏定义形式 2 重复伪指令REPEAT 3 循环伪指令WHILE 4 循环伪指令FOR 5 循环伪指令FORC 6 转移伪指令GOTO 7 宏扩充的举例 8 系统定义的宏 9.7 习题 第10章 应用
程序
的设计 10.1 字符串的处理
程序
10.2 数据的分类统计
程序
10.3 数据转换
程序
10.4 文件操作
程序
10.5 动态数据的编程 10.6 COM文件的编程 10.7
驻留
程序
10.8
程序
段前缀及其应用 1
程序
段前缀的字段含义 2
程序
段前缀的应用 10.9 习题 第11章 数值运算协处理器 11.1 协处理器的数据格式 1 有符号整数 2 BCD码数据 3 浮点数 11.2 协处理器的结构 11.3 协处理器的指令系统 1 操作符的命名规则 2 数据传送指令 3 数学运算指令 4 比较运算指令 5 超越函数运算指令 6 常数操作指令 7 协处理器控制指令 11.4 协处理器的编程举例 11.5 习题 第12章 汇编语言和C语言 12.1 汇编语言的嵌入 12.2 C语言
程序
的汇编输出 12.3 一个具体的例子 12.4 习题 附录
汇编语言
21,459
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章