历粤花子代枝大 X I D I A N UN IVERSIT Y 汇编语言程序设计基础 A.A.4.8.4.4.4.4.4. 徽机原理与系统设计 汇编语言基础 薏明皓 dminghao@xidian.edu.cn
1 汇编语言基本概念 2 3 4 8086的六类指令 5 总结 汇编语言指令分类 数据与转移地址的寻址方式 汇编语言程序设计基础 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
历安花子代技大 X I D I A N UNIVE RSIT Y 1.汇编语言基本概念 什么是机器语言? 人向机器发送号令,让机器能读懂的语言 机器能读懂什么语言? 01011101100010100. 例如: 10110000B 00010010B ;告诉CPU将AL一12H。 微机原理与系统设计 汇编语言基础 鳌明皓 dminghao@xidian.edu.cn
1. 汇编语言基本概念 什么是机器语言 ? 人向机器发送号令,让机器能读懂的语言 机器能读懂什么语言 ? 01011101100010100. 10110000B 00010010B ; 告诉CPU将AL 12H。 例如: 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
历粤花子代枝大 X I D I A N UN IVE RSIT Y 1.汇编语言基本概念 ·汇编语言与机器语言属于低级语言,它们与 高级语言有较大的区别,汇编语言中的语句 与机器的型号密切相关。 冬在高级语言中,完成某个加法功能,我们可 采用语句X=A+B,只要给变量A和B赋一确 定值,此加法就可以实现了。在汇编语言中 则不同,程序必须指出A、B存放在何处, 相加后的结果又存放在何处。 冬高级语言告诉机器做什么,汇编语言告诉机 器怎么做! 徽机原理与系统设计 汇编语言基础 薏明皓 dminghao@xidian.edu.cn
1. 汇编语言基本概念 汇编语言与机器语言属于低级语言,它们与 高级语言有较大的区别,汇编语言中的语句 与机器的型号密切相关 。 在高级语言中,完成某个加法功能,我们可 采用语句 X=A+B ,只要给变量A和B赋一确 定值,此加法就可以实现了。在汇编语言中 则不同,程序必须指出A、B存放在何处, 相加后的结果又存放在何处。 高级语言告诉机器做什么,汇编语言告诉机 器怎么做! 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
C I D I A N UNIVE RSITY 1.汇编语言基本概念 汇编 翻译官:把助记符翻译成机器语言 汇编:把汇编语言源程序翻译成机器语言程序的过程 汇编程序:能把汇编语言源程序翻译成机器语言程序 的系统程序(语言加工程序)。 8086宏汇编程序为MASM.EXE。 徽机原理与系统设计 汇编语言基础 藿明皓 dminghao@xidian.edu.cn
1. 汇编语言基本概念 汇编 翻译官:把助记符翻译成机器语言 汇编:把汇编语言源程序翻译成机器语言程序的过程 汇编程序:能把汇编语言源程序翻译成机器语言程序 的系统程序(语言加工程序)。 8086宏汇编程序为MASM.EXE。 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
历粤花子种枝大 X I D I A N UN IVERSIT Y 1.汇编语言基本概念 如: 汇编程序为MASM.EXE 机器语言程序 源程序 B012 MOV AL,12H H省去, 04 21 汇编 I ADD AX.21H 默认有H 50 PUsHAx B3 FF I MOV BL,OFFH C3 I AND BL,AL 58 POPAX 反汇编 在DEBUG.EXE下进行 徽机原理与系统设计 汇编语言基础 薏明皓 dminghao@xidian.edu.cn
1. 汇编语言基本概念 如: 机器语言程序 汇编程序为MASM.EXE 源程序 MOV AL , 12H ADD AX, 21H PUSH AX MOV BL, 0FFH AND BL, AL POP AX B0 12 04 21 50 B3 FF 20 C3 58 汇编 反汇编 在DEBUG.EXE下进行 H省去, 默认有H 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
C I D I A N UNIVE RSITY 3.4汇编语言程序设计的基本步骤 1.分析问题:从实际问题中提取数据模型,明确任务要求 就目的 2.确定算法:找出解决方案,确定算法,画出程序流程图 3.编写程序:根据流程图及汇编语言系统,采用汇编语言 编程(写出用户代码) 4.检验程序:上机调试 5.编写软件说明:编写软件使用功能、使用前提等 徽机原理与系统设计 汇编语言基础 藿明皓 dminghao@xidian.edu.cn
3.4 汇编语言程序设计的基本步骤 1. 分析问题:从实际问题中提取数据模型,明确任务要求 就目的 2. 确定算法:找出解决方案,确定算法,画出程序流程图 3. 编写程序:根据流程图及汇编语言系统,采用汇编语言 编程(写出用户代码) 4. 检验程序:上机调试 5. 编写软件说明:编写软件使用功能、使用前提等 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
历粤花子代枝大 X I D I A N UN IVE RSIT Y 3.4汇编语言程序设计的基本步骤 从汇编语言源程序到可执行程序所经过的处理过程 用全屏幕编辑软件编辑汇 编语言源程序文件名.ASM 用连接程序LINK.EXE对 文件名.OB」进行连接 用汇编程序MASM.EXE对源程序 文件名.ASM进行汇编 有错误吗? 有 有 有语法错误 没 吗? 没 在磁盘上形成了可执行文件 文件名.EXE 在磁盘上形成目标程序文件 文件名OBJ *.oj:地址不连续的目标码文件 *:exe:地址连续的目标码文件
从汇编语言源程序到可执行程序所经过的处理过程 用全屏幕编辑软件编辑汇 编语言源程序 文件名.ASM 用汇编程序MASM.EXE对源程序 文件名.ASM 进行汇编 有语法错误 吗? 在磁盘上形成目标程序文件 文件名.OBJ 用连接程序LINK.EXE 对 文件名.OBJ 进行连接 有错误吗? 在磁盘上形成了可执行文件 文件名.EXE 有 有 没 没 *.obj:地址不连续的目标码文件 *.exe:地址连续的目标码文件 3.4 汇编语言程序设计的基本步骤
I D I A N U NIVE RSIT Y 4.1.1汇编语言程序设计的基本步骤 编 目 连 辑程 编程 标程 接程 执行 序 序 序 序 .ASM 汇编 .OBJ 连接 .EXE masm.exe link.exe 步骤: 1)编写源程序;2)汇编;3)连接;4)调试。 徽机原理与系统设计 汇编语言基础 藿明皓 dminghao@xidian.edu.cn
.ASM 汇编 连接 .OBJ .EXE masm.exe 编 辑 程 序 源 程 序 连 接 程 序 汇 编 程 序 目 标 程 序 执 行 程 序 步骤: 1)编写源程序;2)汇编;3)连接;4)调试。 4.1.1 汇编语言程序设计的基本步骤 link.exe 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
历要花子代枝大 X I D I A N UN IVERSIT Y 4.1.2伪指令 伪指令:伪指令不是CPU运行的指令,而是程序员给汇编程 序下达的命令。是在汇编源程序期间由汇编程序执行的命令。 伪指令用来对汇编程序进行控制,对程序中的数据进行存 储空间分配、实现条件汇编、列表等处理,其格式和汇编 指令一样,但不产生目标代码,即不直接命令CPU去执行 什么操作。 徽机原理与系统设计 汇编语言基础 薏明皓 dminghao@xidian.edu.cn
4.1.2 伪指令 伪指令:伪指令不是CPU运行的指令,而是程序员给汇编程 序下达的命令。是在汇编源程序期间由汇编程序执行的命令。 伪指令用来对汇编程序进行控制,对程序中的数据进行存 储空间分配、实现条件汇编、列表等处理,其格式和汇编 指令一样,但不产生目标代码,即不直接命令CPU去执行 什么操作。 微机原理与系统设计 汇编语言基础 董明皓 dminghao@xidian.edu.cn
1D1AwUM1VER81T¥ 4.1.2伪指令 ●数据定义伪指令 DB:定义字节,其后的每个操作数占有一个存储单元,连 续存放 BUFFER 02H BUFFER DB 2,3 03H STRING N STRING DB NO ‘0 DW:定义字,其后的每个操作数占有两个字节 BUF 02H BUF DW 2,3,5 00H 03H DD:定义双字,其后每个操作数占4个字 00H 节; 05H 00H 还有DQ(4个字长)、DT(10个字节长)
4.1.2 伪指令 DB:定义字节,其后的每个操作数占有一个存储单元,连 续存放; BUFFER DB 2, 3 STRING DB ‘NO’ ‘O’ ‘N’ 03H BUFFER 02H DW:定义字,其后的每个操作数占有两个字节; BUF DW 2, 3, 5 05H 00H 00H 03H 00H BUF 02H STRING DD: 定义双字,其后每个操作数占4个字 节; 还有DQ(4个字长)、DT(10个字节长) 数据定义伪指令