⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 汇编指令说明.txt

📁 基本的汇编指令,对与初学者有很大的帮助,加深对汇编的认识
💻 TXT
📖 第 1 页 / 共 4 页
字号:

EQ∶ 关系运算符——相等。若满足条件,输出结果为全1 (所有的位),否则为全0 。 

EQU∶ 等价伪指令 。格式为"符号名 EQU 表达式". EQU可以把它前面的符号定义为一个常量或一个能求出常数值的表达式,或定义为别的符号名,甚至定义为一条可执行的命令。不得重复定义。
  例一,"新变量名 EQU THIS DWORD",该语句将紧跟其后的变量重新定义为双字类,以新变量名命名。数据存储区首址不变。
  例二,"新变量名 EQU WORD PTR 旧变量名",该语句将旧变量重新定义为字类型,以新变量名命名。数据存储区首址不变。 

EVEN∶伪指令。它使此语句后面的程序或数据块的起始地址为偶数。 

EXTRN∶伪指令——定义外部符号。格式是 EXTRN 符号名:类型 。表示本模块中需要引用但却是在其他模块中定义说明为PUBLIC的那些符号(符号常量、变量、标号以及过程名)。符号类型必须与他们在其他模块定义时的符号类型保持一致。 

FLAGS∶ 标志寄存器(即PSW)。 

GE∶ 关系运算符——大于等于。若满足条件,输出结果为全 1 (所有的位),否则为全0 。 

GROUP∶ 伪指令——分组。把模块中若干不同名的段集合成一个组,并赋予一个组名,使它们都装在一个物理段中(64KB)。可以得到较紧凑的代码,组内各段间的跳转都可以看作是段内跳转。
  格式是 组名 GROUP <段名1,段名2,……> 

GT∶ 关系运算符——大于。若满足条件,输出结果为全1 (所有的位),否则为全0 。 

H∶ 数据类型后缀,表示十六进制常量。 

HIGH∶ 字节分解运算符(操作符)。用来从运算对象(一个数或地址表达式)中分离出(取)高字节。 

HLT∶ 指令助记符——停机。该指令使处理器处于暂停状态,该状态可以由复位信号、非屏蔽中断请求信号以及IF=1 情况下可屏蔽中断信号清除。 

IDIV∶指令助记符——带符号数除法。  对于字节操作,16位被除数(若被除数为 8位,需用符号扩展的方法,即用CBW 指令扩展到16位)放在AX中, 8位除数为源操作数,相除结果,8位商在AL中,而 8位余数在AH中。  对于字操作,32位被除数(若被除数为16位,用CWD 指令扩展到32位)放在DX和AX中,16位除数为源操作数,相除结果,字(16位)商在AX中,字余数在DX中。  余数的符号必须和被除数的符号相同。 

IF∶Interrupt Flag,①中断标志, 在标志寄存器的第9字节,当IF为1时,允许中断,即CPU响应外设的中断请求。②伪指令——条件(表达式的值不等于0 为真)。若条件成立,则汇编整个程序块;但中间若有ELSE命令,则只汇编到ELSE;当条件不成立时,只汇编从ELSE到ENDIF 之间的程序块。

IF1∶ 伪指令——条件(若是第一趟扫描,条件为真)。 

IF2∶ 伪指令——条件(若是第二趟扫描,条件为真)。 

IFB∶ 伪指令——条件(若其后的参数对应的实参存在,为真)。 

IFDEF∶ 伪指令——条件(若其后的符号已定义或被说明为外部符号,则条件为真)。 

IFDIF∶伪指令——条件(若两个字符串参数不相同,则条件为真)。 

IFE∶ 伪指令——条件(表达式的值等于0 时,条件为真)。 

IFIDN∶伪指令——条件(若两个字符串参数相同,则条件为真)。 

IFNB∶伪指令——条件(若其后的参数对应的实参不存在,为真)。 

IFNDEF∶伪指令——条件(若其后的符号未定义或未被说明为外部符号,则条件为真)。 

IMUL∶指令助记符——带符号的整数乘法。  对于字节乘法,(AL)*(源操作数)---> AX;   对于字乘法, (AX)*(源操作数)---> AX和DX;   若结果的高半部分(AH或DX,对应字节和字)是低半部分的符号扩展,则CF=0,OF=0; 否则,CF=1,OF=1,表示在AH(对于字节)或DX(对于字)中包含结果的有效值。 

IN∶指令助记符——输入。允许把一个字或字节由输入端口(port)传送到AX或AL。端口地址可以用直接寻址(IN AL n),也可用DX间接寻址(IN AL,DX)。8 位地址直接寻址,可寻址256 个端口;DX间接寻址,可寻址64K个端口。 

INC∶ 指令助记符——加1。 操作数可以是寄存器或存储器单元,但不能是段寄存器或立即数。状态标志CF不受影响。 

INCLUDE∶ 伪指令。当宏汇编程序汇编到INCLUDE伪指令时,立即打开INCLUDE指示的文件,并把它汇编到当前的源文件中去,直到该文件被汇编结束,汇编程序继续汇编INCLUDE伪指令之后的语句。INCLUDE可以嵌套。 

INT∶ 指令助记符——中断调用。操作数是用户定义的中断类型,它可以实现256种不同的中断。当指令执行时,首先将标志寄存器内容进栈,清除IF和TF标志并将当前CS内容进栈;然后将中断类型乘以4 ,得到中断向量地址;最后取中断向量的第二个字送CS,将IP进栈,取中断向量的第一个字送IP。由于CS:IP指向中断服务程序,因此可以实现指定中断类型的段间调用。 

INTO∶指令助记符——溢出中断。只有OF=1 时才进入溢出中断(IF和TF被改为0)。 

IP∶Instruction Pointer,控制寄存器——指令指针寄存器。用来存放代码段中指令的偏移地址。在程序运行的过程中,它始终指向下一条指令的首地址。它与CS联用,确定下一条要执行的指令的物理地址。IP寄存器不能用于算术运算,也不能直接存取,但可以用控制转移指令加以改变。 

IRET∶指令助记符——中断返回。执行该指令时,从栈中退出三个16位的值,分别送IP、CS和标志寄存器。 

IRP∶ 宏指令——重复块(以ENDM结束)。IRP 形参,<实参1,实参2,…> 这种宏指令用于带立即数的伪操作。实参是用户指定的立即数,它的个数就是重复的次数,每重复一次,就用一个实参代替形参。 

IRPC∶宏指令——重复块(以ENDM结束)。IRPC 形参,字符串这种宏指令用于带字符串的重复伪操作。重复次数由字符串中字符个数确定。每次重复,依次用字符串中的一个字符替代形参,直到字符替代完毕。 

JA∶ 无符号数条件转移指令助记符——(无符号数比较)高于转移(等价JBE)。CF=0,且ZF=0 则转移(段内直接短转移)。 

JAE∶ 无符号数条件转移指令助记符——(无符号数比较)高于或等于转移(等价JNB)。CF=0 , 或ZF=1 则转移(段内直接短转移)。 

JB∶ 无符号数条件转移指令助记符——(无符号数比较)低于转移(等价JNAE)。CF=1, 且ZF=0 则转移(段内直接短转移)。 

JBE∶ 无符号数条件转移指令助记符——(无符号数比较)低于或等于转移(等价JNA)。CF=1 或ZF=1 则转移。 

JC∶ 简单条件转移指令助记符——有进位转移。CF=1 则转移(段内直接短转移,产生 8位的位移量,即转移地址的偏移量在—128 到+127之间)。 

JCXZ∶指令助记符——条件转移。(CX)=0, 则转移(段内直接短转移?)。 

JE∶ 简单条件转移指令助记符——(两数比较)相等转移(同JZ)。前次操作结果为0,ZF=1则转移(段内直接短转移)。 

JG∶有符号数条件转移指令助记符——(有符号数比较)大于转移(等价JNLE)。SF和OF同号,且ZF=0 时转移。(段内直接短转移) 

JGE∶ 有符号数条件转移指令助记符——(有符号数比较)大于或等于转移(等价于JNL)。 当SF和OF同号,或ZF=1, 则转移(段内直接短转移)。 

JL∶ 有符号数条件转移指令助记符——(有符号数比较)小于转移(等价于JNGE)。当SF和OF异号,且ZF=0 时转移(段内直接短转移)。 

JLE∶ 指令助记符——(有符号数比较)小于或等于转移(等价于JNG)。当SF和OF异号或ZF=1时转移(段内直接短转移)。 

JMP∶ 指令助记符——无条件转移。无条件转移到指令所指示的目标地址,并从该地址开始执行。目标地址可以从指令中直接得到,也可以从指令中给定的寄存器或存储器中得到。
  一、段内直接短转移 JMP SHORT 标号。标号是转移的目的地址,由它确定一个 8位位移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是—128至+127。
  二、段内直接近转移 JMP NEAR PTR 标号。 标号是转移的目的地址,由它确定一个16位位移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是—32768至+32767。
  三、段内间接转移 ①JMP AX (段内寄存器间接转移);②JMP [BX](段内存储器间接转移)。将指令中给定的寄存器或存储单元中的内容送到IP中。
  四、段间直接转移 JMP FAR PTR 标号。 标号为符号地址。 

JNB∶ 无符号数条件转移指令助记符——(无符号数比较)不低于转移(等价JAE)。CF=0,或ZF=1 则转移(段内直接短转移)。 

JNBE∶无符号数条件转移指令助记符——(无符号数比较)不低于且不等于转移(等价JA)。CF=0, 且ZF=0 则转移(段内直接短转移)。 

JNC∶ 简单条件转移指令助记符——前次操作无进或进位位转移。CF=0 则转移(段内直接短转移)。 

JNE∶ 简单条件转移指令助记符——不相等转移(同JNZ)。前次操作结果不等于0,ZF=0 则转移(段内直接短转移)。 

JNG∶ 指令助记符——(有符号数比较)不大于转移(等价于JLE)。当SF和OF异号或ZF=1时转移(段内直接短转移)。 

JNGE∶指令助记符——(有符号数比较)不大于且不等于转移(等价于JL)。当SF和OF异号,且ZF=0 时转移(段内直接短转移)。 

JNL∶ 指令助记符——(有符号数比较)不小于时转移(等价于JGE)。 当SF和OF同号,或ZF=1, 则转移(段内直接短转移)。 

JNLE∶指令助记符——(有符号数比较)不小于且不等于转移(等价JG)。SF和OF同号,且ZF=0 时转移。 

JNO∶简单条件转移指令助记符——前次操作无溢出转移。OF=0 则转移(段内直接短转移)。 

JNP∶ 简单条件转移指令助记符——奇校验转移。PF=0 则转移(段内直接短转移)。 

JNS∶ 简单条件转移指令助记符——前次操作结果为正数转移。SF=0 则转移(段内直接短转移)。 

JNZ∶ 简单条件转移指令助记符——不相等转移(同JNE)。ZF=0 则转移(段内直接短转移)。 

JO∶ 简单条件转移指令助记符——前次操作溢出转移。OF=1 则转移(段内直接短转移)。 

JP∶ 简单条件转移指令助记符——偶校验转移。前次操作结果中1的个数是偶数,PF=1 则转移(段内直接短转移)。 

JPE∶ 简单条件转移指令助记符——偶校验转移。前次操作结果中1的个数是偶数,PF=1 则转移(段内直接短转移)。 

JPO∶ 简单条件转移指令助记符—奇校验转移。PF=0 则转移(段内直接短转移)。 

JS∶ 简单条件转移指令助记符——前次操作结果为负数转移。SF=1 则转移(段内直接短转移)。 

JZ∶ 简单条件转移指令助记符——相等转移(同JE)。ZF=1 则转移(段内直接短转移)。 

LABLE∶ 定义符号名伪指令——为当前存储单元定义一个指定类型的变量或标号。
一、LABLE 与变量连用。
  例 TIMB LABLE BYTE
    TIMW DW 4142H  第一句给第二句定义的字变量TIMW取一个新名字TIMB,并且修改类型属性为字节。以后如果以字类型访问该变量时,应使用变量名TIMW,以字节类型访问该变量时,应使用变量名TIMB。
二、LABLE 与标号连用。
  例 POINTF LABLE FAR     POINTN:MOV AX,[BX+SI]  第一句给第二句隐含定义的近标号POINTN取一个新名字POINTF,并将类型属性修改为FAR 。这样就允许作为
其他代码段中转移或调用指令的目标标号(这时标号是POINTF)。 

LAHF∶指令助记符——标志寄存器(PSW)低8位内容送AH中。 

LDS∶ 指令助记符——取地址指针到数据段寄存器。要求源操作数是一个双字长存储器操作数,目的操作数是16位通用寄存器、指针或变址寄存器,但不能是段寄存器。指令执行时,双字长存储器操作数中的低地址传送到指定的寄存器中,高地址传送到DS寄存器中。
  例:LDS SI,DATA_SEG[DI] 由DATA_SEG[DI]可以得到在数据段的有效地址EA(即段内偏移量)。在EA和EA+2中存放着目标指针。EA存放的是目标指针的段内偏移量,送至SI;EA+2存放的是目标指针的段地址,送至DS。
  例:变量名一 DD 变量名二
    ......

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -