80X86学习笔记--汇编语言的语句
(1)语句的种类和格式
1.语句的种类
指令语句和伪指令语句两类,指令语句有着与其对应的机器指令,伪指令语句没有与其对应的机器指令,只是指示汇编程序如何汇编源程序,包括符号的定义,变量的定义,段的定义。
2.语句格式
指令语句和伪指令语句的格式相似,都由四部分组成。
格式:
[标号] 指令助记符 [操作数] [;注释]
伪指令语句格式:
[名字] 伪指令定义符 [参数…,参数] [;注释]
一般伪指令语句都有参数,用于说明伪指令的操作对象,有时参数是常数(数值表达式),有时参数是一般符号,有时是具有特殊意义的符号。
标号和名字一般最多由31个字母,数字及规定的特殊字符(?@$)等组成,并且不能用数字开头。
汇编语言中的保留字主要是指令助记符,伪指令的ing一符和寄存器名,还有一些其他的特殊保留字。
汇编程序不区分保留字中字母的大小写。
(2)数值表达式
表达式分为数值表达式和地址表达式。
1.常数
常数有多种类型和表达式,常用类型和表示方式如下:
(1)十进制常数
可以用字母D结尾例:248D,通常轻快下,常数用十进制表示,所以表示十进制常数一般不加后缀字母D。
汇编语言提供改版基数的伪指令:RADIX
例:
MOV BX, 0FFH
MOV BX , 178
RADIX 16
MOV BX, 0FF
MOV BX, 178D
(2)十六进制数
必须以H结尾,为了避免与普通符号的混淆,16进制必须以数字开头,所以,凡是以字母开头的十六进制数,必须在前面加一个0.
(3)二进制常数
必须以字母B结尾。
(4)八进制常数
必须以Q结尾。
(5)字符串常数
一个字符串常数是用引号括起来的一个或多个字符。串常数的值是包括在引号中字符ASCII代码值,因此串常数与整常数有时可以交替使用。
2.算术运算符
+ – */ MOD
3.关系运算符
EQ NE LT GT LE GE 运算结果是一个数字值,若关系不成立为0,若关系成立则结果为0FFFFH。
4.逻辑运算符
AND OR XOR NOT SHL SHR
逻辑运算结果是数值。
5.在数值表达式中使用的操作符
(1)HIGH
格式:
HIGH 数值表达式
结果是数值表达式值的高8位,优先级高于+ -
(2)LOW
6.运算符和操作符的优先级
由高到低排列如下;
(1)圆括号 尖括号 方括号 圆点符 LENGTH SIZE WIDTH MASK 其中,尖括号使用于记录中,圆点符使用于结构中。
(2)PTR OFFSET SEG TYPE THIS 冒号(用于表示段超越前缀)
(3)* / MOD SHL SHR
(4)HIGH LOW
(5)+ -
(6)EQ NE LT LE GT GE
(7)NOT
(8)AND
(9)OR XOR
(10)SHORT
(3)地址表达式
地址表达式表示的是存储器操作数的地址。
单个标号 变量 和 右方括号扩起的基址火变址寄存器是地址表达式的特例。
在一个存储地址上加一个或减一个数字量,结果仍为存储器地址。