社区
community_281
帖子详情
汇编语言宏指令的使用
XianHaHa
2017-10-31 12:35:15
编写一个宏指令CMP,它含有两个参数X和Y,比较它们的大小
...全文
385
回复
打赏
收藏
汇编语言宏指令的使用
编写一个宏指令CMP,它含有两个参数X和Y,比较它们的大小
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
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
指令
与标志参考表
汇编语言
经典电子书
这是一本关于汇编的电子书,制作精良,内附有大量彩图,希望能给想学汇编的朋友带来帮助.第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 子程序的位距
[
汇编语言
]
宏
汇编
使用
宏
汇编语句,可以减少程序书写错误,缩短源程序长度长度。
宏
:
宏
指令
:
宏
定义语句MACRO和子程序定义语句PROC一样都是伪
指令
。
宏
定义需要一对伪
指令
MACRO和ENDM完成。 格式:
宏
名 MACRO [哑元1,哑元2,…] 语句串 ENDM 说明:语句串代表
宏
定义体。
宏
定义并不产生目标代码,只是用来说明“
宏
名字”与
宏
定义体之间的联系。其中哑元1,哑元2,… 是虚拟参数或称形式参数,用逗号分隔。虚参(形参)可不设置。
宏
定义之后,要在程序中
使用
宏
时,只要写出
宏
名字即可。
使用
宏
的过程称为
宏
调用。如
宏
80X86
汇编语言
宏
指令
宏
的编写与调用,以及其展开的过程,注意区分
宏
和过程的不同之处。
80x86
汇编语言
编程:
宏
指令
用 80x86
汇编语言
编写程序时,可以
使用
微软推出的软件 MASM.EXE 来进行编译。这个软件的名称,第一个字母是“M”,它代表了“
宏
汇编”的意思。
使用
这个编译软件,就允许我们自己编写“
宏
指令
”了。
宏
指令
和子程序很像。
使用
子程序时,经过编译后,子程序的代码是独立存在的,可以由主程序反复的调用,整个程序比较简短。
使用
宏
指令
时,编译后的产生目标程序很长,因为在编译的时候,软件会把
宏
指令
的代码插入到
community_281
594
社区成员
254,047
社区内容
发帖
与我相关
我的任务
community_281
提出问题
复制链接
扫一扫
分享
社区描述
提出问题
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章