六、汇编语言基础 (一)汇编语言的基本语法0 \; w) t* _( c* w
1.字符集6 Z0 _; O- m, V$ Z' Y
(1)英文字符:A~Z a~z
' x# L5 S8 @4 m7 `2 I9 U+ p% v (2)数字字符:0~9
1 ]& ?2 A4 P6 ] P' m. y (3)算术运算符:+ - * /
6 n, A6 b+ Y& t3 p0 O- e0 }3 U (4)关系运算符:
) R2 i0 {7 t5 z& E6 G/ V6 x& p (5)分隔符: , : ;() [] ’ (空格) TAB
C1 i. e6 I) _7 H* } (6)控制符: CR(回车) LF(换行) FF(换页)
$ W/ _$ x( A+ d8 d0 B: D& C$ I (7)其他字符: & - (下划线)?. $ @ ! %
* ~" G3 Z" R, J% n1 \ 在用汇编语言编写程序时,程序中的指令助记符、标识符、运算符、分隔符等,均应由上述字符集中的字符组成。使用其他字符均为非法字符,8086/8088宏汇编程序不能识别和翻译。7 L7 Q* B& |) B
2.标识符
; v& \3 m4 I( ~) c h5 B7 N 标识符在程序中用作变量名、常量名、记录名、段名等。规定如下:% N/ d; i# Q/ j; a3 o% o, r
(1)标识符由1~31个字符组成,打头的字符必须是字母、?(问号)、@和 - (下划线)。$ ^$ h0 Y* I) z/ J2 h
(2)从第2个字符开始。组成标识符的字符可以是字母、数字、@、?、 - 等,不能使用其他字符。
0 [1 I) E* n4 H7 F8 F, ^ 3.保留字" o8 \7 {" B G* P9 T" X) B
8086/8088中指令助记符、伪指令、寄存器名、表达式运算符及属性操作符等都是系统的保留字。保留字不能用作标识符。
0 w' g* F5 p8 X; g$ ? 4.语句; S( d: l! S7 v- |% r) }& N
80x86宏汇编语言有三种基本语句,即指令语句、伪指令语句和宏指令语句。指令语句对应着机器的一种操作,汇编时产生一个目标代码;伪指令是为汇编程序提供编译信息、指标汇编程序做某些操作的语句,它不产生目标代码,与机器的操作无关。1 i& Y) u4 n; c: s; q# ]( K+ o
一条语句在源程序中一般只占一行,长度超过一行时必须用续行符号&。8 B% @+ V1 O" T2 p J) T+ o
5.汇编语言程序结构0 ?! ^* ~* j/ C' E2 q
用汇编语言编写的源程序,在结构上具有以下特点:6 g; I/ _9 ~6 Z7 ` ?, d$ g. K6 |
(1)由若干逻辑段组成,各逻辑段由伪指令语句定义和说明。
( W5 f7 E. w e) ?+ P6 T" T (2)整个源程序以END伪指令结束。
& Y8 g- \, j/ l (3)每个逻辑段由语句序列组成,各语句可以是指令语句、伪指令语句、宏指令语句、注释语句或空行语句。0 T$ `- }( G; u$ n1 W f7 @/ M0 W
(二)汇编语言和汇编处理过程
* ~1 U/ h$ h! @0 V3 s, F4 b 计算机完成汇编任务是由一个称为汇编程序(Assembler)软件工具实现的。汇编程序是一种系统软件。汇编程序加工的对象是汇编语言程序,称为源程序,而汇编后产生的结果是机器语言程序,称为目标程序。' _7 S# B( A- Q, o: P' A
常见的汇编程序有行汇编和宏汇编。
( J7 }; V+ o) x6 M; ? 1.行汇编! ~! E3 m5 C3 D! c
这种类型的汇编程序按行对汇编语言源程序逐条汇编,常见的IBM PC动态调试程序DEˉBUG中的A命令就属于这种汇编类型。
# h& K8 T; p1 F, }5 P 2.宏汇编
6 p$ y5 W. W3 T! X: N. H1 r 这种类型的汇编程序首先对扩展名为.ASM的汇编语言源程序进行汇编,产生扩展名为.OBJ的可重定位目标代码文件,然后用链接程序LINK链接一个或多个.OBJ模块(包括库文件),生成一个扩展名为.EXE的可执行目标文件。使用这种汇编语言进行汇编处理的过程如下:7 k T% \5 |+ K5 @ T) i
(1)建立源程序;
5 g! ]/ Z2 m: P) j0 K (2)产生目标程序;
# A$ {% K+ @7 r8 s$ c (3)链接目标程序;# k& r! A r# S6 R) y) G
(4)运行和调试。 |