当前位置:文档之家› 汇编语言基础.ppt

汇编语言基础.ppt


一个简单的例子
CODE MAIN
CODE
SEGMENT ASSUME CS:CODE MOV AH, 2 MOV DL, ‘A’ INT 21H MOV AH,4CH INT 21H ENDS END MAIN
本程序功能在屏幕上输出一个大写字母A。
5.2 80X86 指令基础 5.2.1 指令格式 1.指令和指令系统 指令是计算机能够识别和执行的某种操作命令。一
前缀 : 是一些必须和其他指令配合使用的特殊 指令;
指令助记符 :是指令中的关键字,不可缺省; 操作数 : 指令要处理的数据,可以是一个或两个, 也可没有(隐含); 注释 : 说明指令功能; (2)伪指令语句: 一般格式如下: [名字]伪操作命令[操作数][;注释] 名字可以是符号名,常量名,变量名,过程名和段名等, 后面不能有“:”,是和指令语句的显著区别。
伪指令命令:主要包括符号定义,变量定义,程序分段定义,过 程定义,模块定义,和宏定义等。
操作数随伪操作命令的不同而不同,它们的格式和定义将在后面 的章节中一一介绍。 5.汇编语言程序结构
由指令、伪指令、变量、标号等组合起来写出的程序成为源程 序,一个汇编语言的源程序由若干个段和一行表示程序结束的伪 指令组成。
80X86宏汇编语言规定程序中最多可包括四种类型的段即: 代码段,数据段,堆栈段和附加段,每个段在程序中的先后不定, 数目也不定,但必须有段名。
综上所述,用汇编语言编写的程序,在结构上具有以下特点: (1)由若干逻辑段组成,各逻辑段包括伪指令语句定义和
说明; (2)整个源程序以伪指令END结束; (3)每个逻辑段由语句序列组成,各语句可以是指令语句、
5.1.1 汇编语言的基本语法 1.字符集 8086/8088 宏汇编语言规定可以使用的字符详见P77-78 2.标示符 标示符在程序中用作变量名,常量名,记录名和段名等
具体規定见P78 3.保留字 8086/8088中指令助记符,伪指令,寄存器名,表达式运算 符及属性操作符等均为保留字。保留字不能当作标示符使用。
伪指令语句、宏指令语句、注释语句或空行语句。
单模块汇编语言源程序的结构
DATE SEGMENT <数据定义伪指令序列〉 ;定义数据段
DATE ENDS
STACK SEGMENT STACK 《堆栈定义伪指令序列》 ;定义堆栈段
STACK ENDS
CODE SEGMENT 《程序段》
CODE ENDS END 标号
第五章 汇编语言基础
5. 1 汇编语言的基本概念
汇编语言是用指令助记符,符号地址和标号书写的 语言。用汇编语言编写的程序称为汇编语言源程序。
汇编语言源程序必须进行加工翻译转换为机器语言 程序。将源程序翻译成机器语言程序的过程叫汇编。 完成这种工作的语言程序称为汇编程序。
汇编程序是一种系统软件。IBM PC 系统配置了两种 汇编程序:一种称为小汇编的ASM,另一种是宏汇编 MASM。目前,一般多用宏汇编MASM。
80X86机器指令编码的一般格式
1 ~ 4字节
操作码 操作码
MOD字节 MOD字节
偏移量 DATA/DISP
操作码 操作码 操作码
MOD字节 DATA/DISP DATA/DISPL L
MOD字节 DATA/DISP DATA/DISPH L
MOD字节 DATA/DISP DATA/DISPH L
8086 CPU 指令形式
4.语句 80X86宏汇编有两种基本语句:指令语句和伪指令语句 指令语句对应机器的一种操作,汇编后产生一个目标代码; 伪指令是帮助汇编的,不产生目标代码,与机器操作无关;
一条语句在源程序中一般只占一行,长度超过一行时必须用 续行符号(&)
(1) 指令语句: 一般格式如下:
[ 标号:][前缀]指令助记符 [操作数][;注释] 其中: 标号 : 表示该指令语句的存储器地址,供 转移指令,调用指令或循环指令作为操作数使用;
编辑程序
汇编程序
连接程序
ASM文件
OBJ文件
汇编语言程序的处理过程
EXE文件
常见的汇编程序有以下两种类型:
1.行汇编程序:对汇编语言源程序进行逐条汇编, 常见的IBM PC动态调试程序DEBUG中的A命令就属于 这种汇编类型。
2.宏汇编程序:对扩展名为·ASM的汇编语言源程序 进行汇编,产生扩展名为·OBJ的可重定位的目标代码 文件,然后用链接程序LINK链接一个或多个·OBJ模块 (包括库文件),产生一个扩展名为·EXE的可执行目 标文件(P80) 具体进行汇编处理的过程如下: 建立源程序;产生目标代码;链接目标程序;运行和 调试;
Байду номын сангаас
DATA DATAL
DATAH
第1字节为操作码字节,其构成如下:
操作码
DW
7
21 0
8086中指令操作码的长度是固定的,一般占第一
字节中的7~2位;
D指示操作方向:
D=0 表示REG指出的寄存器是源操作;
D=1 表示REG指出的寄存器是目的操作数;
种计算机中所有指令的集合称为该计算机的指令系统。 可分为如下几类:
(1)数据传送指令 (2)算术运算指令 (3)逻辑运算指令 (4)移位运算指令 (5)位与位串操作指令 (6)控制转移指令 (7)输入/输出指令 (8)其他指令
2.指令格式
前缀 操作码 寻址方式 偏移量 立即数
0~3字节 1 ~ 2字节 1 ~ 2字节 1 ~ 4字节
* 程序设计语言
机器语言 汇编语言:机器语言的符号化,与机器密切相关。 高级语言
*汇编语言的意义
速度:对于同一个问题,用汇编语言设计出的程序能达到 “运行速度最快”。
空间:对于同一个问题,用汇编语言设计出的程序能达到 “占用空间最少”。
功能:汇编语言可以实现高级语言难以胜任甚至不能完成 的任务。
知识:学习汇编语言,有助于对计算机系统的理解、写出 更好的程序。
;定义代码段
在实际应用中,把一个独立汇编的源程序称为一 个模块。一个大程序可由几个模块组成,每个模 块具有不同的功能,这些模块分别汇编成目标代 码后,再用连接程序把它们连接成一个可执行程 序,其中只有一个模块可以指出程序的启动地址, 该模块称为主模块。 这就是汇编语言程序设计上机顺序:首先编写源 程序,其次汇编,然后连接,最后执行。
相关主题