六、汇编语言基础 (一)汇编语言的基本语法
: X1 {& B2 Z) y( L9 j, a$ U 1.字符集
! M. d* D- V/ k2 k* S (1)英文字符:A~Z a~z
. K- ?5 Y+ R% c4 \/ ], i$ q! y (2)数字字符:0~9
1 k8 ~& q% X5 C9 K (3)算术运算符:+ - * /
4 K4 M' L& V( b) Z (4)关系运算符:
6 O/ p9 _ \3 X. a/ j& b (5)分隔符: , : ;() [] ’ (空格) TAB, u' i6 \/ H' }$ p& @5 ?
(6)控制符: CR(回车) LF(换行) FF(换页)
( ?/ P: q% O5 z5 \5 M0 | (7)其他字符: & - (下划线)?. $ @ ! %( X, ^7 X# S7 \5 O, B M
在用汇编语言编写程序时,程序中的指令助记符、标识符、运算符、分隔符等,均应由上述字符集中的字符组成。使用其他字符均为非法字符,8086/8088宏汇编程序不能识别和翻译。
% I) b2 y0 |# W) a. F. ` 2.标识符/ N/ {' ` C- G5 n7 O6 ^/ {
标识符在程序中用作变量名、常量名、记录名、段名等。规定如下:- h& w3 O: [: U. A" C+ `9 F: ^
(1)标识符由1~31个字符组成,打头的字符必须是字母、?(问号)、@和 - (下划线)。* [$ Y# v7 U& {3 f2 n8 x; T# F: i5 u
(2)从第2个字符开始。组成标识符的字符可以是字母、数字、@、?、 - 等,不能使用其他字符。
* b+ X8 f) k; ]$ c+ Z$ M& o 3.保留字+ `$ z# D L0 l) \- S- X
8086/8088中指令助记符、伪指令、寄存器名、表达式运算符及属性操作符等都是系统的保留字。保留字不能用作标识符。, p) y( p1 Y1 l
4.语句% }$ x2 v9 G& I5 m/ a
80x86宏汇编语言有三种基本语句,即指令语句、伪指令语句和宏指令语句。指令语句对应着机器的一种操作,汇编时产生一个目标代码;伪指令是为汇编程序提供编译信息、指标汇编程序做某些操作的语句,它不产生目标代码,与机器的操作无关。% M3 f% l% p# }5 a, t- B
一条语句在源程序中一般只占一行,长度超过一行时必须用续行符号&。, z) ?3 Y; w/ r8 ]
5.汇编语言程序结构
( _8 s0 S @; a/ x 用汇编语言编写的源程序,在结构上具有以下特点:! c8 N; Z U m, z. [& y3 u8 Q
(1)由若干逻辑段组成,各逻辑段由伪指令语句定义和说明。
7 r' s9 [# x- W4 o# @ (2)整个源程序以END伪指令结束。4 v7 s8 e+ y* N9 j8 }: h, \% P
(3)每个逻辑段由语句序列组成,各语句可以是指令语句、伪指令语句、宏指令语句、注释语句或空行语句。
6 ]: p% [2 d3 I0 [% y: I (二)汇编语言和汇编处理过程
& u: H# N; G9 l8 Q) d1 X 计算机完成汇编任务是由一个称为汇编程序(Assembler)软件工具实现的。汇编程序是一种系统软件。汇编程序加工的对象是汇编语言程序,称为源程序,而汇编后产生的结果是机器语言程序,称为目标程序。
6 Y& z$ a- V0 x, G: d6 y8 Z 常见的汇编程序有行汇编和宏汇编。
! h0 P: k! J' h: F 1.行汇编( v4 l! }% v- n6 `4 A
这种类型的汇编程序按行对汇编语言源程序逐条汇编,常见的IBM PC动态调试程序DEˉBUG中的A命令就属于这种汇编类型。
1 i1 {6 n2 u5 @1 F* E 2.宏汇编
, P( B" B1 j& O8 ?; M 这种类型的汇编程序首先对扩展名为.ASM的汇编语言源程序进行汇编,产生扩展名为.OBJ的可重定位目标代码文件,然后用链接程序LINK链接一个或多个.OBJ模块(包括库文件),生成一个扩展名为.EXE的可执行目标文件。使用这种汇编语言进行汇编处理的过程如下:. k7 S* c, l/ i8 L6 ?$ [( {
(1)建立源程序;
1 H, U( p* g! F \5 e4 x! w, ?& Z (2)产生目标程序;# v2 T! s) n2 l7 C, [
(3)链接目标程序;
" V+ C: b* \. O& [' l( R (4)运行和调试。 |