第3章汇编语言 本章主要教学内容 1、8086指令的基本格式 2、8086指令系统的寻址方式 3、8086指令的应用 本章教学特点、目的 先学机器指令,后学伪指令。先会用,后扩充 使学生掌握指令的寻址方式过程,掌握指令的应用: 教学重点:指令系统的寻址方式和指令的应用 教学难点:指令的寻址方式
第3章 汇编语言 本章主要教学内容 1、8086指令的基本格式 2、8086指令系统的寻址方式 3、8086指令的应用 本章教学特点、目的 先学机器指令,后学伪指令。先会用,后扩充。 使学生掌握指令的寻址方式过程,掌握指令的应用。 教学重点:指令系统的寻址方式和指令的应用 教学难点:指令的寻址方式
第3章汇编语言 3.1指令的基本概念和基本格式 3.2指令的寻址方式 3.38086指令系统 开始
第3章 汇编语言 3.1 指令的基本概念和基本格式 3.2 指令的寻址方式 3.3 8086指令系统 开 始
昇儿足非吊本的甩丁我直,它只云从外取米一个致,进仃运昇同 回去。因此,从哪取?取来后放在哪?进行什么运算?结果送到哪?就是 指令。 总线接口部件BIU 地址总线20位 执行部件U 通用寄有器 数据总线 AX AH A1. BH BL Cs 888(8位) CH CL DS 8086(16位) DX DH DL SP SS EP ES DI IP SI 内部通信寄存卷 控 交 制 巴外都eg 逻 哲存寄有器 EU 指令队列 制系 2 3 4 5 6 FR 8088 8085
计算机是非常笨的电子装置,它只会从外面取来一个数,进行运算后再送 回去。因此,从哪取?取来后放在哪?进行什么运算?结果送到哪?就是 指令
8086CPU的编程结构 8086CPU中可供编程使用的有14个16位寄存器,按其用途可分为3类:簿 用寄存器、段寄存器、指针和标志寄存器,如所示。 计算机的每一条指令,都要跟寄存器打交道,取来数,运算,送回去, AH AL 累加器 BH BL 基址寄存器 CH CL 计数寄存器 数据寄存器 DH DL 数据寄存器 SP 通用寄存器 堆栈指针寄存器 BP 基址指针寄存器 地址指针和 SI 源变址寄存器 变址寄存器 DI 目的变址寄存器 P 指令指针寄存器 FLAGS 控制寄存器 标志寄存器 CS 代码段寄存器 DS 数据段寄存器 SS 堆栈段寄存器 段寄存器 ES 附加段寄存器 一定要记住编程结构
8086CPU的编程结构 8086CPU中可供编程使用的有14个16位寄存器,按其用途可分为3类:通 用寄存器、段寄存器、指针和标志寄存器,如所示。 计算机的每一条指令,都要跟寄存器打交道,取来数,运算,送回去, AH AL 累加器 BH BL CL DH DL CH SP SI DI IP FLAGS CS DS SS ES BP 基址寄存器 计数寄存器 数据寄存器 堆栈指针寄存器 基址指针寄存器 源变址寄存器 目的变址寄存器 指令指针寄存器 标志寄存器 代码段寄存器 段寄存器 附加段寄存器 堆栈段寄存器 数据寄存器 地址指针和 变址寄存器 控制寄存器 通用寄存器 数据段寄存器 一定要记住编程结构
汇编语言开发工具 汇编语言开发工具有两种: 大翻译,又叫宏汇编,例如MASM.EXE 小翻译,又叫调试工具,例如DEBUG.EXE 大翻译的优点:功能强大,允许使用10进制数和符号 地址,适合编写大段的程序。缺点:需要下载,麻烦。 小翻译的优点:在任何运行windows的计算机中有,不 用找,使用非常方便。缺点:不允许使用10进制数和符 号地址,适合编写小段的程序。 般写底层驱动或破解、调试程序用DEBUG小翻 译。但我们要求你必须也会用大翻译
汇编语言开发工具 汇编语言开发工具有两种: 大翻译,又叫宏汇编, 例如 MASM.EXE 小翻译,又叫调试工具,例如DEBUG.EXE 大翻译的优点:功能强大,允许使用10进制数和符号 地址,适合编写大段的程序。缺点:需要下载,麻烦。 小翻译的优点:在任何运行windows的计算机中有,不 用找,使用非常方便。缺点:不允许使用10进制数和符 号地址,适合编写小段的程序。 一般写底层驱动或破解、调试程序用DEBUG小翻 译。 但我们要求你必须也会用大翻译
汇编语言开发工具DEBUG介绍 调试工具DEBUG的命令: 1、Assembler汇编命令,从某地址开始写汇编指冷 2、Compare比较命令 3、Data 显示某地址开始数据 4、Erase擦除某地址开始的存储数据 5、Fu某地址开始的存储区填充数据 6、Register查看寄存器的内容 7、Name 给程序命名
汇编语言开发工具DEBUG介绍 调试工具DEBUG的命令: 1、Assembler 汇编命令 ,从某地址开始写汇编指令 2 、Compare 比较命令 3 、Data 显示某地址开始数据 4 、Erase 擦除某地址开始的存储数据 5 、Full 某地址开始的存储区填充数据 6 、Register 查看寄存器的内容 7 、Name 给程序命名
汇编语言开发工具DEBUG介绍 7、nput 从某口输入数据 8、 Output向某口输出数据 9、 Move 从内存区1向区2搬一块数据,移动 10、Quit退出 11、Trap陷阱,单步执行1条指令。 12、Un-asm反汇编,查看机器指令 13、Wite写磁盘,写文件 14、P命令,单步执行一条指令
汇编语言开发工具DEBUG介绍 7 、 Input 从某口输入数据 8 、 Output 向某口输出数据 9 、 Move 从内存区1向区2搬一块数据,移动 10 、Quit 退出 11 、Trap 陷阱,单步执行1条指令。 12 、Un-asm 反汇编,查看机器指令 13 、Write 写磁盘,写文件 14、 P 命令,单步执行一条指令
DEBUG命令举例 A100 从当前段100单元开始编写源程序 U100 从当前段100单元开始反汇编源程序 R 查看、修改寄存器内容 G=100从100单元开始运行程序 P 从当前位置开始向下执行一条指令 N file1.com给程序起名字 W C: 把程序写到C盘根目录下 E100从当前段100单元开始修改内存中的数 Q退出DEBUG
DEBUG命令举例 A 100 从当前段100单元开始编写源程序 U 100 从当前段100单元开始反汇编源程序 R 查看、修改寄存器内容 G=100 从100单元开始运行程序 P 从当前位置开始向下执行一条指令 N file1.com 给程序起名字 W C:\ 把程序写到C盘根目录下 E 100 从当前段100单元开始修改内存中的数 Q 退出DEBUG
课堂演示实验一: DEBUG使用操作 1、如何进入DEBUG.EXE? 2、进来后,如何查看当前的程序空间? 3、如何查看当前的寄存器的值? 4、如何编写一段小程序? 5、如何把编写一段小程序存盘? 6、如何把小程序装入内存? 7、如何运行这个小程序?
课堂演示实验一: DEBUG使用操作 1、如何进入DEBUG.EXE? 2、进来后,如何查看当前的程序空间? 3、如何查看当前的寄存器的值? 4、如何编写一段小程序? 5、如何把编写一段小程序存盘? 6、如何把小程序装入内存? 7、如何运行这个小程序?
3.1指令的基本概念和指令格式 机器指令:指挥计算机完成某种操作的命令。 指令格式如下: 操作符OPD ,OPS OPD:目的操作数/地址 OPS:源操作数/地址 例MOV AL,05H MOV AL,[05H] MOV [O5H1,AL ADD AL,05H SUB [1234H,AL
3.1 指令的基本概念和指令格式 机器指令:指挥计算机完成某种操作的命令。 指令格式如下: 操作符 OPD, OPS OPD:目的操作数/地址 OPS:源操作数/地址 例 MOV AL, 05H MOV AL, [05H] MOV [05H], AL ADD AL, 05H SUB [1234H], AL