92 MOD 16 ;结果为12(相当于取低4位的值)
97H MOD 20H ;结果为23(相当于取低5位的值)
格式:
OFFESET 变量或标号
功能:返回标号或变量的偏移地址值
格式:
SEG 变量或标号
功能:SEG返回标号或变量的段地址。
格式:
TYPE 变量或标号
功能:返回变量的类型属性或标号的距离属性
变量
类型 | 返回值 |
---|---|
DB | 1 |
DW | 2 |
DD | 4 |
DQ | 8 |
DT | 10 |
标号
类型 | 返回值 |
---|---|
NEAR | -1 |
FAR | -2 |
(4)LENGTH
格式:
LENGTH 变量
功能:LENGTH 只有当变量中使用 DUP 时,才返回该变量所含数据的个数,而对其他变量则返回1.
(5)SIZE
格式:
SIZE 变量
功能:返回该变量包含的总字节数。
SIZE = LENGTH * TYPE
格式:
段前缀: 变量或地址表达式
格式:
类型 PTR 变量
距离 PTR 标号
功能:将 PTR 左边的类型(或距离)属性赋给右边的变量(或标号),存储单元
注意:PTR 本身不分配内存,只是给已分配的存储单元赋予新的属性.
格式:
HIGH 变量或标号
LOW 变量或标号
功能:分离一个数或地址表达式的 高位字节(高8位),低位字节(低8位)
宏指令名 MACRO 形参1,形参2...
宏体
ENDM ;注意ENDM 前没有宏指令名
宏指令名 实参1,实参2...
汇编软件汇编源程序时,在每条插入的宏指令前带上 “ + ” 标记
MASM 汇编软件在宏定义中采用 LOCAL 伪指令把要出现在宏体中的标号定义成局部标号。
LOCAL 参数1,参数2,...
功能:局部标号或变量定义后,宏展开时程序中出现的各标号或变量依次使用 ?? 0000,??0001,??0002,…代替
该语句应放在宏体的第一行
(1)取消宏指令语句
PUGRGE 宏指令名1,宏指令名2,...宏指令名n
功能:一次取消多个宏指令名
注意:宏指令 优先于 同名的指令或伪操作。故使用PUGRGE 恢复原指令
(2)重复执行宏指令语句
REPT 表达式
宏体
ENDM
功能:连续重复完成相同的操作
(1)INT 20H
中止当前进程,关闭所有打开的文件,清楚磁盘缓冲区,返回控制台的命令接收状态
(2)INT 21H
该软中断有三种情况
① 无返回程序结束
MOV AH,0
INT 21H
该指令需要入口参数:AH=0,也叫调用功能号
②程序结束并驻留
MOV AH,31H
MOV AL,1
MOV DX,400H
INT 21H
入口参数:
AH=31H 是功能号
AL=1 是返回号
DX=400H 是保留从程序段前缀开始的内存长度(以字节为单位)
功能:程序结束并返回代码为1,同时驻留内存,保留从程序段前缀开始的 16KB 内存(对于上例)
③带返回程序结束
MOV AH,4CH
MOV AL,1
INT 21H
入口参数:
AH=4CH 是功能号
AL=1 是返回号
功能:程序结束并传送返回码1
(3)INT 27H
MOV DX,XX
INT 27H
入口参数:DX=XX 是设置的驻留程序的长度
用INT 27H 来退出程序时,DOS 把用户程序看成是系统的一个组成部分而驻留内存,因此,在其他程序装入运行时,这部分程序不会被覆盖
(1)单字符
2号 和 6号 功能
2号功能 在显示期间检测 Ctrl + Break 键
2号功能 在显示期间不检测 Ctrl + Break 键
入口参数:把要显示的ASCLL码 送入 DL 寄存器
MOV DL,'*'
MOV AH,2
INT 21H
(2)字符串
9号功能
入口参数:DS:DX 指向字符串地址的首地址,该字符串必须以 ‘$’ 结束。
注意: 回车的ASCLL码是 0DH,换行的 ASCLL 码是 0AH
。。。
(1)单字符键盘输入
1,6,7,8号功能调用
都是从键盘输入一个字符到 AL 寄存器。
1,6号 键入时回显
7,8号 键入时不回显
1,8号 检查 Ctrl + Break 键
6,7号 不检查 Ctrl + Break 键
(2)字符串键盘输入
0AH 功能
预先定义一个输入缓冲区:
输入参数:DS:DX 指向缓冲区的第一个字节。