汇编语言
第3章 宏汇编语言3.1 宏汇编语言中的表达式 3.2 常用的机器指令语句
3.3 伪指令语句3.4 常用的dos系统功能调用
3.5 MASM汇编程序的功能<自学>作业
汇编语言
3.1 宏汇编语句中的表达式3.1.1 常量 3.1.2 数值表达式
3.1.3 变量3.1.4 标号 3.1.5 地址表达式返回本章首页
汇编语言
3.2.1 常量1.数值常量 2. 符号常量
返回本节
汇编语言
1.数值常量数值类型常量有二进制、八进制、十进制和十六进制数 字形式和字符串形式的常量。
表3.1
各种形式数字常量格式对照表 <汇编语言大小写不敏感>
汇编语言
字符串形式的常量字符串常量是用单引号或双引号引起来的一个或多 个字符,或以各字符的ASCⅡ码表示的。如‘A’
用41H 表示,字符串‘A1B2’用41H,31H,42H,32H表示。
返回本节
汇编语言
2. 符号常量 对经常使用的数值常量可以先为它定义一个名字, 然后在语句中用名字来表示该常量。常数若使用 有意义的符号名来表示,可以提高程序的可读性, 同时更具有通用性。
符号常量需要用等价伪指令EQU和等号伪指令“=” 来定义。
汇编语言
等价伪指令的基本格式为:符号名 EQU 表达式
例: VAL EQU 100 ;表达式为一个常数 NUM EQU VAL+50 ;表达式为一个数值表达式 OPE EQU ADD ;表达式为一个指令助记符
汇编语言
等号伪指令的基本格式为:
符号名=常数表达式例: COUNT=50 MOV BX,COUNT ;等价于MOV BX,50
思考:源操作数采用的什么寻址方式。 立即寻址 注意:EQU语句不能重复定义;而“=”伪指令可以重 复定义,其作用域从定义点开始到重新定义结束。返回本节
汇编语言
3.1.2 数值表达式数值表达式一般是指由运算符连接的各种常数所 构成的表达式。汇编程序在汇编过程中计算表达式, 最终得到一个数值,所以,程序运行速度没有变慢, 且增强程序的可读性。算术表达式(利用算术运算符)
数值表达式
逻辑表达式(利用逻辑运算符)
关系表达式(利用关系运算符)返回本节
汇编语言
1.算术运算符算术运算符包括:+(加)、-(减)、*(乘)、/ (除)、MOD(求模)、SHR(右移)、 SHL(左 移)几种。
注:1、加+和减-运算符还可以用于地址表达式 2、除加、减外,其他运算符的参数必须是整数
汇编语言
【例3.1】用算术运算符进行数值表达式运算。┆ NUM1 EQU 25*4 –50 NUM2 EQU NUM1 / 7 NUM3 DB NUM1 MOD 7 VAR1 DB 1,2,3,4,5 VAR2 DB ‘12345’ NUM4 EQU VAR2-VAR1 ; NUM5 EQU 0FH MOV AL,NUM5 SHL 4 MOV BL,NUM5 SHR 4 ┆ 结果:NUM1=50 ; NUM2=7 ; NUM3=1; NUM4=5; (AL)=11110000B ; (BL)=00000000B
汇编语言
2.逻辑运算符逻 辑 运 算 符 包 括 : 逻 辑 乘 ( AND ) 、 逻 辑 加 (OR)、按位加(XOR)、逻辑非(NOT)四
种运算。由于逻辑运算是按位操作,且在汇编过程中完成,因而运算
的结果仍为整数常量。
汇编语言
【例3.2】用逻辑运算符进行运算。 MOV AL,34H AND 0FH
MOV BL,05H OR 30HMOV CX,NOT 00FFH MOV DX,789AH XOR 000FH NUM5 EQU 0FH 结果:(AL)=04H ; (BL)=35H; (CX)=0FF00H (DX)=7895H; NUM5=0FH
汇编语言
3.关系运算符关系运算符包括:相等(EQ),不等(NE),小于(LT), 大于(GT),小于等于(LE)及大于等于(GE)。 运算结果:若关系不成立,结果为0;否则为0FFFFH。
【例3.3】用关系运算符进行数值表达式运算。 NUM1 DB 10 LT 5 NUM2 DB 0AAAAH GT 7FFFH MOV AX,‘A‘ EQ 41H MOV BX,NUM2 LT NUM1结果:NUM1=0 ; NUM2=0FFH; (AX)=0FFFFH; (BX)=0
汇编语言
3.1.3 变量1.变量
2.变量的定义
返回本节
汇编语言
1.变量变量是一个数据存储单元的名字。由于汇编 语言中存储单元是分段使用的,所以变量具 有三个属性:
(1)段属性 (2)偏移地址属性 (3)类型属性