第四章 汇编语言程序设计
4.1 汇编语言源程序
4.1.1 汇编语言源程序的结构
完整的汇编语言源程序:由若干个逻辑段组成,包括数据段,附加段,堆栈段,代码段
4.1.2 汇编语言语句类型及格式
汇编语言源程序的语句可以分成:指令性语句和指示性语句
4.1.3 数据项及表达式
1)常量
2)标号
3)变量
4)表达式
1.算数运算符
常用的有+,-,*,/,MOD
2.逻辑运算符
常用的有AND OR NOT XOR
3.关系运算符
常用的有EQ(等于) NE(不等于) LT(小于) GT(大于) LE(小于
等于) GE(大于等于),当关系不成立时,结果为0。关系成立时。结果为
0FFFFH。
4.取值运算符和属性运算符
1.OFFSET /*可以得到一个标号或变量的偏移地址*/
例如:
MOV SI,OFFSET DATA1
其与下面这条指令效果相同:
LEA SI,DATA1
2.SEG /*可以得到一个标号或变量的段地址*/
例如:
MOV AX,SEG DATA
MOV DS,AX
3.PTR /*用来指定位于其后的存储器操作数的类型*/
例如:
CALL DWORD PTR[BX]
如果一个变量已经定义为字变量,利用PTR运算符可以修改它的属性。例如:
MOV AL,VAR
MOV AL,BYTE PTR VAR
5.其它运算符
段重设符“:”运算符“:”跟在某个段寄存器名(DS,ES,SS)之后表示段重设,用来指定一个存储器操作数的段属性而不管其原来隐含的段是什么。例如:
MOV AX,ES:[DI] /*把ES段中由DI指向的字操作数送AX*/
4.2 伪指令
CPU指令在程序运行时有CPU执行,而伪操作指令在汇编过程中由汇编程序执行。其次,
汇编之后,每条CPU指令都被汇编并产生一条与之对应的目标代码,而伪操作则不
产生与之相应的目标代码
4.2.1 数据定义伪指令
1)格式:
[变量名]伪操作 操作数[,操作数···]
常用的伪操作有:
1.DB:定义变量为字节类型,也常用来定义字符串
2.DW:定义变量为字类型,低字节在低地址,高字节在高地址
3.DD:用来定义双子类型的变量
4.DQ:定义四字类型的变量
5.DT&