汇编语言的基本语法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言的基本语法
.
1.1. 汇编语言源程序的格式
DATA ARRAY
SEGMENT AT 2000H DB a1,a2,a3,…a10(a1~a10为立即数)
COUNT EQU $ - ARRAY
SUM
DW ?
来自百度文库
DATA
ENDS
STACK SEGMENT PARA STACK ‘STACK’
STAK
.
常量、标识符和表达式 一、常量
其值在程序中不能改变的量, 在汇编语言源程序中的常量有: 数字常量、字符常量和符号常量 ( 1 ) 数字常量可以是二进制数、八进制数、十进 制数或十六进制数表示 ( 2 ) 字符常量是用单引号‘ ’括起来的ASCII字 符, 其值是该字符的ASCII代码值
.
( 3 ) 符号常量是用标识符定义的常量。 例如,采用符号定义语句 PORTA EQU 80H, 则指令 MOV AL,PORTA 与指令 MOV AL,80H 等价。
的商是2,而19 MOD 7则为5(余数)。
.
算术操作符可以用于数字表达式或地 址表达式中,但当它用于地址表达式时, 只有当其结果有明确的物理意义时才是 有效的结果。例如两个地址相乘或相除 是无意义的。在地址表达式中,可以使 用 + 或 - ,但也必须注意其物理意义。
.
例如把两个不同段的地址相加也是无意义的。 经常使用的是地址 ± 数字量,它是有意义的。例如 SUM +1是指SUM字节单元的下一个字节单元的地址 (注意:不是指SUM单元的内容加1),而SUM-1则 是指SUM字节单元的前一个字节单元的地址。
DB 10 DUP (?)
TOP
EQU LENGTH STAK
STACK ENDS
.
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START: LOP:
MOV AX,DATA MOV DS,AX MOV AX,0 MOV DI,OFFSET SUM MOV BX,OFFSET ARRAY MOV CX,COUNT ADD AL,[BX] ADC AH,0
.
一般说来,名字项可以是标号或变量。它 们都用来表示本语句的符号地址,都是可有可 无的,只有当需要用符号地址来访问该语句时 它才需要出现。
·标号:标号在代码段中定义,后面跟着 冒号:,此外,它还可以作为过程名定义。
·变量:变量在数据段或附加数据段中定 义,后面不跟冒号。 变量经常在操作数字段出 现。
.
指令性语句 格式为: [ 标号 ]: 操作码 [ 操作数 ] [; 注释 ] 带方括号的为任选项, 标号是指令的符号地址, 操作码和操作数是用汇编语言指令表示的指令部分, 注释是对该语句在本程序中的功能的说明。
.
指示性语句 格式为: [ 名字 / 变量 ] 命令 [参数] [; 注释 ] 命令指示汇编程序进行某种汇编操作, 参数是有关的数据, 名字是段名、符号名等标识符,变量用变量名表示。
INC BX
LOOP LOP MOV [DI],AX MOV AH,4CH
INT 21H
CODE ENDS
END START
.
汇编语言源程序格式的特点是: 1 .分段结构 2 .语句行 汇编语言程序的语句有两类: ( 1 ) 指令性语句 ( 2 ) 指示性语句
.
汇编语言源程序语句的格式
汇编语言源程序中的每个语句可以由四项组成, 格式如下:
操作数项可以是常数、寄存器、标号、变 量或由表达式组成。
.
(4) 注释项 注释项用来说明一段程序、一条或几条指 令的功能。对于汇编语言程序来说,注释项的 作用是很明显的,它可以使程序容易被读懂, 因此汇编语言程序必须写好注释。注释应该写 出本条(或本段)指令在程序中的功能和作用, 而不应该只写指令的动作。读者在有机会阅读 程序例子时,应注意学习注释的写法,在编制 程序时,更应学会写好注释。
.
(2)操作项 操作项可以是指令、伪指令或宏指
令的助记符。对于指令,汇编程序将其 翻译为机器语言指令。对于伪指令,汇 编程序将根据其所要求的功能进行处理。 对于宏指令,则将根据其定义展开。
.
(3) 操作数项 操作数项由一个或多个表达式组成,多个
操作数项之间一般用逗号分开。对于指令,操 作数项一般给出操作数地址,它们可能有一个, 或二个,或三个,或一个也没有。对于伪操作 或宏指令,则给出它们所要求的参数。
二、标识符 在编程时建立的有特定意义的字符序列,标识符
可用作符号常量、名字、变量和标号等。 组成标识符有如下规定:
.
( 1 ) 组成标识符的字符有: 英文大写字母:A~Z; 英文小写字母: a-z; 数字0~9; 字符?、@、_ 、$;
( 2 )字符长度不超过3l个; ( 3 ) 首字符不能是数字; ( 4 ) ? 不能单独作为一个标识符; ( 5 ) 不能把保留字用作标识符,保留字包括助记符、 寄存器名等。
.
三、表达式 表达式是常数、标号、变量与一些操作符相
组合的序列,可以有数字表达式和地址表达式 两种。在汇编期间,汇编程序按照一定的优先 规则对表达式进行计算后可得到一个数值或一 个地址。 常用的表达式操作符介绍如下:
.
(1) 算术操作符 算术操作符有+、-、*、/ 和MOD。 MOD是指除法运算后得到的余数,如19/7
[名字] 操作 操作数 [ ;注释]
其中: 名字项是指一个标号或变量。
操作项是一个操作码的助记符,它可以是指令、 伪指令或宏指令名。
.
操作数项由一个或多个表达式组成, 它提供为执行所要求的操作而需要的信 息。操作数项可以是常数、寄存器、标 号、变量或由表达式组成。
注释项用来说明程序或语句的功能。 ";"为识别注释项的开始。";"也可以 从一行的第一个字符开始,此时整行都 是注释,常用来说明下面一段程序的功 能。
.
上面四项中带方括号的两项是可选项。 各项之间必须用"空格"(space)或"水 平制表"(Tab)符隔开。
(1) 名字项 (2) 操作项 (3) 操作数项 (4) 注释项
.
(1) 名字项 源程序中用下列字符来表示名字: 字母A~Z 数字0~9 专用字符 ?、·、@ 、-、$
除数字外,所有字符都可以放在源语句的 第一个位置。名字中如果用到·则必须是第一 个字符。可以用很多字符来说明名字,但只有 前面的31个字符能被汇编程序所识别。
.
1.1. 汇编语言源程序的格式
DATA ARRAY
SEGMENT AT 2000H DB a1,a2,a3,…a10(a1~a10为立即数)
COUNT EQU $ - ARRAY
SUM
DW ?
来自百度文库
DATA
ENDS
STACK SEGMENT PARA STACK ‘STACK’
STAK
.
常量、标识符和表达式 一、常量
其值在程序中不能改变的量, 在汇编语言源程序中的常量有: 数字常量、字符常量和符号常量 ( 1 ) 数字常量可以是二进制数、八进制数、十进 制数或十六进制数表示 ( 2 ) 字符常量是用单引号‘ ’括起来的ASCII字 符, 其值是该字符的ASCII代码值
.
( 3 ) 符号常量是用标识符定义的常量。 例如,采用符号定义语句 PORTA EQU 80H, 则指令 MOV AL,PORTA 与指令 MOV AL,80H 等价。
的商是2,而19 MOD 7则为5(余数)。
.
算术操作符可以用于数字表达式或地 址表达式中,但当它用于地址表达式时, 只有当其结果有明确的物理意义时才是 有效的结果。例如两个地址相乘或相除 是无意义的。在地址表达式中,可以使 用 + 或 - ,但也必须注意其物理意义。
.
例如把两个不同段的地址相加也是无意义的。 经常使用的是地址 ± 数字量,它是有意义的。例如 SUM +1是指SUM字节单元的下一个字节单元的地址 (注意:不是指SUM单元的内容加1),而SUM-1则 是指SUM字节单元的前一个字节单元的地址。
DB 10 DUP (?)
TOP
EQU LENGTH STAK
STACK ENDS
.
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START: LOP:
MOV AX,DATA MOV DS,AX MOV AX,0 MOV DI,OFFSET SUM MOV BX,OFFSET ARRAY MOV CX,COUNT ADD AL,[BX] ADC AH,0
.
一般说来,名字项可以是标号或变量。它 们都用来表示本语句的符号地址,都是可有可 无的,只有当需要用符号地址来访问该语句时 它才需要出现。
·标号:标号在代码段中定义,后面跟着 冒号:,此外,它还可以作为过程名定义。
·变量:变量在数据段或附加数据段中定 义,后面不跟冒号。 变量经常在操作数字段出 现。
.
指令性语句 格式为: [ 标号 ]: 操作码 [ 操作数 ] [; 注释 ] 带方括号的为任选项, 标号是指令的符号地址, 操作码和操作数是用汇编语言指令表示的指令部分, 注释是对该语句在本程序中的功能的说明。
.
指示性语句 格式为: [ 名字 / 变量 ] 命令 [参数] [; 注释 ] 命令指示汇编程序进行某种汇编操作, 参数是有关的数据, 名字是段名、符号名等标识符,变量用变量名表示。
INC BX
LOOP LOP MOV [DI],AX MOV AH,4CH
INT 21H
CODE ENDS
END START
.
汇编语言源程序格式的特点是: 1 .分段结构 2 .语句行 汇编语言程序的语句有两类: ( 1 ) 指令性语句 ( 2 ) 指示性语句
.
汇编语言源程序语句的格式
汇编语言源程序中的每个语句可以由四项组成, 格式如下:
操作数项可以是常数、寄存器、标号、变 量或由表达式组成。
.
(4) 注释项 注释项用来说明一段程序、一条或几条指 令的功能。对于汇编语言程序来说,注释项的 作用是很明显的,它可以使程序容易被读懂, 因此汇编语言程序必须写好注释。注释应该写 出本条(或本段)指令在程序中的功能和作用, 而不应该只写指令的动作。读者在有机会阅读 程序例子时,应注意学习注释的写法,在编制 程序时,更应学会写好注释。
.
(2)操作项 操作项可以是指令、伪指令或宏指
令的助记符。对于指令,汇编程序将其 翻译为机器语言指令。对于伪指令,汇 编程序将根据其所要求的功能进行处理。 对于宏指令,则将根据其定义展开。
.
(3) 操作数项 操作数项由一个或多个表达式组成,多个
操作数项之间一般用逗号分开。对于指令,操 作数项一般给出操作数地址,它们可能有一个, 或二个,或三个,或一个也没有。对于伪操作 或宏指令,则给出它们所要求的参数。
二、标识符 在编程时建立的有特定意义的字符序列,标识符
可用作符号常量、名字、变量和标号等。 组成标识符有如下规定:
.
( 1 ) 组成标识符的字符有: 英文大写字母:A~Z; 英文小写字母: a-z; 数字0~9; 字符?、@、_ 、$;
( 2 )字符长度不超过3l个; ( 3 ) 首字符不能是数字; ( 4 ) ? 不能单独作为一个标识符; ( 5 ) 不能把保留字用作标识符,保留字包括助记符、 寄存器名等。
.
三、表达式 表达式是常数、标号、变量与一些操作符相
组合的序列,可以有数字表达式和地址表达式 两种。在汇编期间,汇编程序按照一定的优先 规则对表达式进行计算后可得到一个数值或一 个地址。 常用的表达式操作符介绍如下:
.
(1) 算术操作符 算术操作符有+、-、*、/ 和MOD。 MOD是指除法运算后得到的余数,如19/7
[名字] 操作 操作数 [ ;注释]
其中: 名字项是指一个标号或变量。
操作项是一个操作码的助记符,它可以是指令、 伪指令或宏指令名。
.
操作数项由一个或多个表达式组成, 它提供为执行所要求的操作而需要的信 息。操作数项可以是常数、寄存器、标 号、变量或由表达式组成。
注释项用来说明程序或语句的功能。 ";"为识别注释项的开始。";"也可以 从一行的第一个字符开始,此时整行都 是注释,常用来说明下面一段程序的功 能。
.
上面四项中带方括号的两项是可选项。 各项之间必须用"空格"(space)或"水 平制表"(Tab)符隔开。
(1) 名字项 (2) 操作项 (3) 操作数项 (4) 注释项
.
(1) 名字项 源程序中用下列字符来表示名字: 字母A~Z 数字0~9 专用字符 ?、·、@ 、-、$
除数字外,所有字符都可以放在源语句的 第一个位置。名字中如果用到·则必须是第一 个字符。可以用很多字符来说明名字,但只有 前面的31个字符能被汇编程序所识别。