




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教材符号 +、-、*、/算术运算符。 &宏处理操作符。宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。 $地址计数器的值记录正在被汇编程序翻译的语句地址。每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。 ?操作数。在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。 等号伪指令符号定义。对符号进行定义和赋值,功能与 EQU相似,但允许(重复)再定义。 :修改属性运算符(操作符)段操作符。用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。注意,段寄存器CS和ES不能被跨越,堆栈操作时也不能跨越SS。 ;注释符号。 %特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。 ( )1.运算符用来改变运算符的优先级别。2.教材符号,表示括号内存储单元(或寄存器)的内容。 宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。 1.运算符。方括号括起来的数是数组变量的下标或地址表达式。带方括号的地址表达式必须遵循下列原则,只有BX、BP、SI、DI这四个寄存器可在方括号内出现;BX或BP可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不允许BX和BP出现在同一个方括号内;SI和DI可以单独出现在各方括号内,也可以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;一个方括号内包含多个寄存器时,它们只能作加法运算;若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。2.教材符号,表示其中的内容可省略。 .LIST 伪指令。用于打开列表文件输出。 .RADIX伪指令。把缺省的基数改为2-16范围内的任意基数。.RADIX不影响DD、DQ、DT伪指令,在这些伪指令中,输入的数值只要没有加上数据类型就认为是十进制数。 .XLIST伪指令。用于关闭列表文件输出。 %OUT伪指令。在汇编时显示其后的信息。 AAA 指令助记符加法运算后的ASCII调整(非压缩的BCD码)。无操作数,调整的加法结果在AL中。AF和CF的状态改变说明结果大于9。检查AL的低四位是否为合法的BCD码(0-9),如果合法就清除AL的高四位以及AF和CF标志。当AL的低四位表示的数大于 9或AF1时, 将AL加 6,AH加1 ,并使AF和CF置位,清除AL中的高四位。任何一个AF之间的数加上6 以后,都会使AL低 4位产生0-9之间的数,从而达到调整的目的。 AAD 指令助记符除法的ASCII调整(非压缩的BCD码)。在执行除法操作前,必须利用 AAD指令将非压缩型 BCD码表示的数转换成二进制数送AL。步骤是,先将被除数的高位数(AH中的内容)乘以10,然后加到AL的低位数中,接着将AH清零。 AAM 指令助记符乘法的ASCII调整(非压缩的BCD码)。用于将字节乘法的积转换成两个合法的十进制非压缩码。AAM不带操作数,假定成绩在AH和AL中,并将调整后的非压缩码送回AH和AL。为了保证 AAM得到正确的结果,原乘数和被乘数必须是合法的非压缩码。指令执行时,AAM 用10(0AH) 除AL寄存器,并将除得的商和余数分别送AH和AL寄存器,实现转换。 AAS 指令助记符减法运算后的ASCII调整(非压缩的BCD码)。检查AL的低四位是否为合法的BCD码(0-9),如果合法就清除AL的高四位以及AF和CF标志。当AL的低四位表示的数大于 9或AF1时, 将AL减 6,AH减1 ,并使AF和CF置1,清除AL中的高四位。 ADC 指令助记符带进位加法(把CF的值加上)。用于多字节数的高字节加法运算。 ADD 指令助记符加法。参与运算的二操作数应该同时带符号或不带符号 ,并且长度一致。操作数可以是寄存器、存储器或立即数,但不能同时为存储单元或段寄存器,立即数也不能作为目的操作数。 AF Auxiliary Carry Flag,辅助进位标志,在标志寄存器的第4字节。记录运算时第 3位(半个字节)产生的进位值(置1)。该标志用于对BCD码的加减运算中。 AND逻辑运算符(在语句的操作数部分,汇编时完成)或逻辑操作指令助记符(在语句的操作码部分,其运算在执行指令时完成)按位与。只有相“与”的两位全为1 ,结果才为1。某数自己与自己相“与”,操作数不变,进位标志CF清0 。 ASSUME段定义伪指令设定分段寄存器,格式为ASSUME 段寄存器:段名,段寄存器名:段名。在代码段的开始用来指出所有段与段寄存器的关系,确定某个段分配给哪个段寄存器。ASSUME只指出各段寄存器的分配,并没有把段地址装入相应的段寄存器。为此,在代码段中,还必须把数据段和附加数据段的段地址装入相应的寄存器中。 AT伪指令段定义(组合类型)。该段按绝对地址定位,段基址为数值表达式的值,位移量为0 。不能指定代码段。 AX Accumulator,通用寄存器,算术运算的主要寄存器。另外,所有的I/O指令都使用这一寄存器与外部设备传送信息。其中AH是高8位,AL是低8位。 B 数据类型后缀,表示二进制常量。 BPBase Pointer, 基址指针寄存器。可以与SS寄存器联用来确定堆栈中任一存储单元的地址。它指示堆栈中任一单元的偏移量。非堆栈进出指令要访问堆栈,只能通过BP进行。 BXBase,通用寄存器。在计算存储器地址时,经常用作基址寄存器。其中BH是高 8位,BL是低 8位。 BYTE伪指令段定义(定位类型)。本段起始单元可以从任一地址开始,段间不留空隙,存储器利用率最高。 CALL指令助记符程序调用。一、段内直接调用:格式为 CALL 过程名。先把IP内容(子程序的返回地址,即CALL下一条指令的地址)压入堆栈,然后IP转移到子程序的入口地址。二、段内间接调用:格式为 CALL WORD PTR OPD。先把IP的内容压入堆栈,然后IP指向(转到)由寻址方式决定的EA。三、段间直接调用。格式为CALL FAR PTR 过程名。先把CS和IP的内容压入堆栈,然后在CS中装入新的段地址,IP指向段内偏移地址。四、段间间接调用:格式为CALL DWORD PTR OPD。 先把CS和IP的内容压入堆栈,然后把寻址方式确定的有效地址所指定的一个字储存单元的内容送入IP,下一个字存储单元的内容(段首址)送入CS。 CBW指令助记符字节转换为字。把AL中字节的符号扩展到AH中,若(AL)的最高有效位为0 ,则(AH)00;若(AH)的最高有效位为1, 则(AH)0FFH。 CFCarry Flag,进位标志,在标志寄存器的第0字节 ,记录运算时从最高有效位产生的进位值(置1)。 作加法时,CF位可以用来表示无符号数的溢出(有符号数溢出用OF表示)。 CLC 指令助记符标志(进位)设置。设置CF0。 CLD 指令助记符清方向标志。使DF0 。这样,当执行字节串操作指令时,地址自动增1 ;当执行字串操作指令时,地址自动增2 。 CLI 指令助记符中断允许标志设置。设置IF0 。 CMC 指令助记符标志(进位)设置。CF取反。 CMP 指令助记符比较。对于“ CMP AX,BX” ,如果是两个无符号数比 较(减),若结果没有产生借位,即CF0, 则(AX)(BX);若CF 1,则(AX)(BX)。 如果是两个带符号数比较,则 当没有溢出(OF0)时,若SF0,则(AX)(BX) 若SF1,则(AX)(BX) 当产生溢出(OF1)时,若SF0,则(AX)(BX) 多SF1,则(AX)(BX) 简炼的结论,若 OF 异或 SF0,则(AX)(BX) 若 OF 异或 SF1,则(AX)(BX) CMPS指令助记符串比较。通常用CMPSB或CMPSW。 CMPSB 指令助记符串比较。将DS段SI指出的字节数据减去ES段DI指出的字节数据(不保存结果),然后根据相减结果设置标志位(两个数据相等,则ZF1)。 并由方向标志DF修改SI 和DI中的地址,即当DF0时,地址都加1; 当DF1时, 地址都减1 。 CMPSW 指令助记符串比较。将DS段SI指出的字数据减去ES段DI指出的字数据(不保存结果),然后根据相减结果设置标志位(两个数据相等,则ZF1)。 并由方向标志DF修改SI 和DI中的地址,即当DF0时,地址都加2; 当DF1时, 地址都减2 。 COMMON伪指令段定义(组合类型)。该段与其它模块中所有也说明为COMMON的同名,同类别段共享相同的存储区域,即这些段的起始地址都相同,共享的公共存储区域的长度是各模块同名段中最大的长度。使用COMMON方式可以使不同模块中的不同变量或标号作用于相同的存储单元。 CSCode Segment,代码段寄存器,存放当前运行的代码段起始地址(高16位)。代码段存放当前正在运行的程序。 CWD 指令助记符字转换为双字。把AX中字节的符号扩展到DX中,若(AX)的最高有效位为0 ,则(DX)0000;若(AX)的最高有效位为1, 则(DX)0FFFFH。 CXCount, 通用寄存器。在循环和串处理指令中用作隐含的计数器。其中CH是高 8位,CL是低 8位。 DAA 指令助记符加法的十进制调整(压缩的BCD码)。 无操作数,调整 的加法结果在AL中。调整方法是,如果AL的低 4位大于9 或AF1 ,则加 6 到AL并置AF1 ;如果AL的高 4位大于 9或CF1 ,则加60H 到AL,并 置CF1 。 DAS 指令助记符减法的十进制调整(压缩的BCD码)。 调整方法是,若AF1 或AL的低4位为AF,则(AL)减06H,且AF置 1;若CF1 或AL的高 4位为AF,则(AL)减60H,且CF置1。 DB 伪指令定义字节。其后的每个操作数占用一个字节。若是字符串, 必须用引号 括起来,字符串不能超过 255个字符,字符串自左至右以 字符的ASCII码按地址递增的顺序依次存放。 DD 伪指令定义双字。其后的每个操作数占用二个字(低字在前)。 DD还可以把其后的变量或标号的偏移地址和所在段首址存入存储器内指定 的双字单元(即DD前面的变量)中,第一个字中存放DD后的变量的偏移地址, 第二个字中存放该变量所在段的段首址。 DEC 指令助记符减1 。操作数可以是寄存器或存储器单元,但不能是段 寄存器或立即数。 DFDirection Flag,方向标志,在标志寄存器的第 10字节,在串处理指令中控制处理信息的方向。DF为1时是反向,每次操作后使SI和DI减量(这样就使串处理从高地址向低地址方向处理);当DF为0时是正向,使SI和DI增量。 DIDestination Index,目的变址寄存器。与ES联用,用来确定数据段中某一存储单元的偏移地址。在串处理指令中,DI指出目的操作数的地址,隐含段为当前的附加段。 DIV 指令助记符无符号数除法。对于字节操作,16位被除数(若被除数为 8位,需用符号扩展的方法 ,即用CBW 指令扩展到16位)放在AX中, 8位除数为源操作数,相除结果 ,8位商在AL中,而 8位余数在AH中。对于字操作,32位被除数(若被除数为16位,用CWD 指令扩展到32位)放在DX和AX中,16位除数为源操作数,相除结果,字(16位)商在AX中 ,字余数在DX中。源操作数不能是立即操作数,指令执行后,源操作数的值不变。如果商超过目标寄存器能存放的最大数值时,系统产生0 类中断。被除数若需要转换为双精度值时,一定不能用符号扩展,而只能将高16位送0(MOV DX,0)。 DQ 伪指令定义四字。其后的每个操作数占用四个字。 DSData Segment,数据段寄存器。存放数据段的起始地址(高16位)。数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令,则其源操作数也存放在数据段中。 DT 伪指令定义十字节。其后的每个操作数占用十个字节。 DUP 复制操作符。DUP 前面的常量或表达式的值(正整数)指明DUP 后面的括号中的操作数之重复次数。 DW 伪指令定义字。其后的每个操作数占用一个字(低字节在前,高字节在后)。DW可以给两个字符组成的字符串(用 括起来) 分配两个字节的存储单元(前一个字符在高字节)。DW还可以把其后的变量或标号的偏移地址存入存储器的指定单元(即DW前的变量)。 DXData,通用寄存器。在作双字长运算时,把DX和AX组合在一起存放一个双字数,DX用来存放高位字。此外,对某些I/O 操作,DX可用来存放 I/O的端口地址。其中DH是高 8位,DL是低 8位。 EA 教材符号-某一存储单元的偏移地址,即该单元到它所在段首址的字节距离。 ELSE伪指令条件。条件不满足时汇编ELSE至ENDIF之间的程序块。 END 伪指令程序模块结束。主程序模块结束,END 后要接标号(存储器地址),指出程序开始执行的地址 。子程序不用。 ENDIF伪指令条件(结尾)。 ENDM宏指令宏定义(结尾)。重复块(结尾)。 ENDP伪指令过程(子程序)定义(结尾)。 ENDS伪指令段定义或结构定义(结尾)。 ESExtra Segment,附加段寄存器。 用于存放附加段的起始地址(高16位)。附加段是一个辅助的数据区,也是串处理指令的目的操作数据存放区。 ESC指令助记符交权给外部协处理器。是在大模式下使用的一条指令,它可以使外部协处理器从 8086/8088指令流中获得一个操作码和一个操作数,并使用8086/8088 的寻址方式。指令后的操作码是一个 6位的立即数 ,其中 3位用来指明哪一个协处理器工作,另外 3位指明这个处理器执行什么指令。随后的源操作数若是寄存器,则8086/8088 直接将其内容放置在数据总线上;如果这个源操作数是存储变量,则8086/8088 从存储器中取出操作数并放到数据总线上,从而使外部协处理器可以获取这个操作数,对它进行运算。 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 指令助记符停机。该指令使处理器处于暂停状态,该状态可以由复位信号、非屏蔽中断请求信号以及IF1 情况下可屏蔽中断信号清除。 IDIV指令助记符带符号数除法。对于字节操作,16位被除数(若被除数为 8位,需用符号扩展的方法,即用CBW 指令扩展到16位)放在AX中, 8位除数为源操作数,相除结果,8位商在AL中,而 8位余数在AH中。对于字操作,32位被除数(若被除数为16位,用CWD 指令扩展到32位)放在DX和AX中,16位除数为源操作数,相除结果,字(16位)商在AX中,字余数在DX中。余数的符号必须和被除数的符号相同。 IFInterrupt 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,对应字节和字)是低半部分的符号扩展,则CF0,OF0; 否则,CF1,OF1,表示在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指令助记符溢出中断。只有OF1 时才进入溢出中断(IF和TF被改为0)。 IPInstruction Pointer,控制寄存器指令指针寄存器。用来存放代码段中指令的偏移地址。在程序运行的过程中,它始终指向下一条指令的首地址。它与CS联用,确定下一条要执行的指令的物理地址。IP寄存器不能用于算术运算,也不能直接存取,但可以用控制转移指令加以改变。 IRET指令助记符中断返回。执行该指令时,从栈中退出三个16位的值,分别送IP、CS和标志寄存器。 IRP 宏指令重复块(以ENDM结束)。IRP 形参,实参1,实参2, 这种宏指令用于带立即数的伪操作。实参是用户指定的立即数,它的个数就是重复的次数,每重复一次,就用一个实参代替形参。 IRPC宏指令重复块(以ENDM结束)。IRPC 形参,字符串这种宏指令用于带字符串的重复伪操作。重复次数由字符串中字符个数确定。每次重复,依次用字符串中的一个字符替代形参,直到字符替代完毕。 JA 无符号数条件转移指令助记符(无符号数比较)高于转移(等价JBE)。CF0,且ZF0 则转移(段内直接短转移)。 JAE 无符号数条件转移指令助记符(无符号数比较)高于或等于转移(等价JNB)。CF0 , 或ZF1 则转移(段内直接短转移)。 JB 无符号数条件转移指令助记符(无符号数比较)低于转移(等价JNAE)。CF1, 且ZF0 则转移(段内直接短转移)。 JBE 无符号数条件转移指令助记符(无符号数比较)低于或等于转移(等价JNA)。CF1 或ZF1 则转移。 JC 简单条件转移指令助记符有进位转移。CF1 则转移(段内直接短转移,产生 8位的位移量,即转移地址的偏移量在128 到127之间)。 JCXZ指令助记符条件转移。(CX)0, 则转移(段内直接短转移?)。 JE 简单条件转移指令助记符(两数比较)相等转移(同JZ)。前次操作结果为0,ZF1则转移(段内直接短转移)。 JG有符号数条件转移指令助记符(有符号数比较)大于转移(等价JNLE)。SF和OF同号,且ZF0 时转移。(段内直接短转移) JGE 有符号数条件转移指令助记符(有符号数比较)大于或等于转移(等价于JNL)。 当SF和OF同号,或ZF1, 则转移(段内直接短转移)。 JL 有符号数条件转移指令助记符(有符号数比较)小于转移(等价于JNGE)。当SF和OF异号,且ZF0 时转移(段内直接短转移)。 JLE 指令助记符(有符号数比较)小于或等于转移(等价于JNG)。当SF和OF异号或ZF1时转移(段内直接短转移)。 JMP 指令助记符无条件转移。无条件转移到指令所指示的目标地址,并从该地址开始执行。目标地址可以从指令中直接得到,也可以从指令中给定的寄存器或存储器中得到。一、段内直接短转移 JMP SHORT 标号。标号是转移的目的地址,由它确定一个 8位位移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是128至127。二、段内直接近转移 JMP NEAR PTR 标号。 标号是转移的目的地址,由它确定一个16位位移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是32768至32767。三、段内间接转移 JMP AX (段内寄存器间接转移);JMP BX(段内存储器间接转移)。将指令中给定的寄存器或存储单元中的内容送到IP中。四、段间直接转移 JMP FAR PTR 标号。 标号为符号地址。 JNB 无符号数条件转移指令助记符(无符号数比较)不低于转移(等价JAE)。CF0,或ZF1 则转移(段内直接短转移)。 JNBE无符号数条件转移指令助记符(无符号数比较)不低于且不等于转移(等价JA)。CF0, 且ZF0 则转移(段内直接短转移)。 JNC 简单条件转移指令助记符前次操作无进或进位位转移。CF0 则转移(段内直接短转移)。 JNE 简单条件转移指令助记符不相等转移(同JNZ)。前次操作结果不等于0,ZF0 则转移(段内直接短转移)。 JNG 指令助记符(有符号数比较)不大于转移(等价于JLE)。当SF和OF异号或ZF1时转移(段内直接短转移)。 JNGE指令助记符(有符号数比较)不大于且不等于转移(等价于JL)。当SF和OF异号,且ZF0 时转移(段内直接短转移)。 JNL 指令助记符(有符号数比较)不小于时转移(等价于JGE)。 当SF和OF同号,或ZF1, 则转移(段内直接短转移)。 JNLE指令助记符(有符号数比较)不小于且不等于转移(等价JG)。SF和OF同号,且ZF0 时转移。 JNO简单条件转移指令助记符前次操作无溢出转移。OF0 则转移(段内直接短转移)。 JNP 简单条件转移指令助记符奇校验转移。PF0 则转移(段内直接短转移)。 JNS 简单条件转移指令助记符前次操作结果为正数转移。SF0 则转移(段内直接短转移)。 JNZ 简单条件转移指令助记符不相等转移(同JNE)。ZF0 则转移(段内直接短转移)。 JO 简单条件转移指令助记符前次操作溢出转移。OF1 则转移(段内直接短转移)。 JP 简单条件转移指令助记符偶校验转移。前次操作结果中1的个数是偶数,PF1 则转移(段内直接短转移)。 JPE 简单条件转移指令助记符偶校验转移。前次操作结果中1的个数是偶数,PF1 则转移(段内直接短转移)。 JPO 简单条件转移指令助记符奇校验转移。PF0 则转移(段内直接短转移)。 JS 简单条件转移指令助记符前次操作结果为负数转移。SF1 则转移(段内直接短转移)。 JZ 简单条件转移指令助记符相等转移(同JE)。ZF1 则转移(段内直接短转移)。 LABLE 定义符号名伪指令为当前存储单元定义一个指定类型的变量或标号。一、LABLE 与变量连用。例TIMB LABLE BYTETIMW 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_SEGDI 由DATA_SEGDI可以得到在数据段的有效地址EA(即段内偏移量)。在EA和EA2中存放着目标指针。EA存放的是目标指针的段内偏移量,送至SI;EA2存放的是目标指针的段地址,送至DS。例:变量名一 DD 变量名二.LDS SI 变量名一变量名二所在数据段的EA和段地址存放在变量名一中,EA送至SI,EA+2存放的段地址送至DS。 LE 关系运算符小于等于。若满足条件,输出结果为全 1(所有的位),否则为全0 。 LEA指令助记符取有效地址。将存储器操作数的偏移地址传送到通用寄存器、指针或变址寄存器中。该指令常用来建立串操作指令所需要的寄存器指针。例一 LEA SI,变量名(与MOV SI OFFSET 变量名 等效);例二 LEA AX,AX (将SI所指存储单元的EA送至AX,而MOV AX,SI送的是该存储单元存放的内容) LENGTH数值返回运算符。其加在一个变量名前面,返回的数值是数组变量的元素个数。如果变量是用DUP 说明的,则返回DUP前面的数值;如果没有DUP 说明的,则返回的值总是1。 LES 指令助记符取地址指针到数据段寄存器。要求源操作数是一个双字长存储器操作数,目的操作数是16位通用寄存器、指针或变址寄存器,但不能是段寄存器。指令执行时,双字长存储器操作数中的低地址传送到指定的寄存器中,高地址传送到ES寄存器中。 LDCK 指令助记符封锁总线。加在任何指令前面的单字节前缀指令,配合用来维持总线的锁存信号,直到与其配合的指令执行完为止。 LOCAL 宏指令局部符号(变量,标号)定义。在宏扩展时,汇编程序给LOCAL 后的形式参数指定特殊的符号,然后用这些符号替换宏指令体中LOCAL 指出的形式参数。这样可避免这些符号在多次调用宏时发生重复定义。 LODS指令助记符装入串。一般用LODSB或LODSW。 LODSB 指令助记符字节装入(从字节串中取数)。它将DS段SI指出的字节数据送入AL寄存器中,并根据方向标志DF修改SI中的地址。即当DF0时,地址加1 ;DF 1 时,地址减1 。 LODSW 指令助记符字装入(从字串中取数)。 它将DS段SI指出的字数据送入AX寄存器中,并根据方向标志DF修改SI中的地址。即当DF0 时,地址加2 ;DF 1 时,地址减2 。 LOOP指令助记符循环控制。每执行一次,CX的内容减1 ,若减1 后不为0 ,则转移到目标地址;否则,执行LOOP之后的指令。 LOOPE 指令助记符循环控制(等于LOOPZ)。每执行一次,CX的内容减1, 若减1 后不为0 ,且ZF1, 则转移到目标地址;否则,执行LOOPE 之后的内容。 LOOPZ指令助记符循环控制(等于LOOPE)。每执行一次,CX的内容减1 ,若减1 后不为0 ,且ZF1, 则转移到目标地址;否则,执行LOOPZ 之后的内容。 LOOPNE指令助记符循环控制(等于LOOPNZ)。每执行一次,CX的内容减1 ,若减1 后不为0 ,且ZF0, 则转移到目标地址;否则,执行LOOPNE之后的内容。 LOOPNZ指令助记符循环控制(等于LOOPNE)。每执行一次,CX的内容减1 ,若减1 后不为0 ,且ZF0, 则转移到目标地址;否则,执行LOOPNZ之后的内容。 LOW 字节分解运算符(操作符)。用来从运算对象(一个数或地址表达式)中分离出(取)低字节。 LT 关系运算符小于。若满足条件,输出结果为全1 (所有的位),否则为全0 。 MACRO 宏指令宏定义。 MASK运算符。使得记录中指定字段各位均为1 ,其他各位均为0 。 MEMORY伪指令段定义(组合类型)。该段在存储器中应该定位在所有其他段的最高地址。如果不止一个段选用MEMORY方式,则把第一个遇到的段作MEMORY处理,而其他段均作COMMON方式处理。 MOD 算术运算符模除(取整除后的余数)。 MOV 指令助记符通用数据传送。注意,两个段寄存器之间不能直接传送数据;两个储存单元之间不能直接传送数据(可以用MOVS);两个操作数中必须有一个是寄存器或立即数;立即数和段寄存器CS不能作为目的操作数。 MOVS指令助记符串传送。与MOVSB和MOVSW相似,但必须说明数据串类型(字或字节)。 MOVSB 指令助记符串(字节)传送。把由SI指向的数据段中的一个字节数据传送到由DI指向的附加段内一个字节存储单元中去,并同时根据方向标志对SI和DI中的地址进行修改。当DF0时, 地址都加1 ;当DF1时 ,地址都减1 。 MOVSW 指令助记符串(字)传送。把由SI指向的数据段中的一个字数据传送到由DI指向的附加段内一个字存储单元中去,并同时根据方向标志对SI和DI中的地址进行修改。当DF0时, 地址都加2 ;当DF1时,地址都减2 。 MUL 指令助记符无符号数乘法。字节乘法:(AL)*(源操作数)-AX字乘法: (AX)*(源操作数)-DX和AX若结果的高半部分(AH或DX,对应字节和字)为非0 值,则CF和OF置1;否则CF和OF清0。 NAME伪指令模块定义。程序将对给定的程序模块取模块名。格式是,NAME 模块名。 汇编处理时,一个模块就是一个独立的汇编单位。汇编处理只进行到模块结束语句END 为止。如果该模块是主模块,END 语句可以指出一个标号,它表示该程序的启动地址。 NE关系运算符不等。若满足条件,输出结果为全1 (所有的位),否则为全0 。 NEG 指令助记符求补。将目的操作数的每一位求反(包括符号位)后加1.若在字节操作时对128,或在字操作时对32768取补,则操作数不变,但溢出标志OF置位。操作数可以是寄存器或存储器单元,但不能是段寄存器或立即数。结果送回目的操作数。执行结果不但影响标志位AF、CF、OF、PF、SF和ZF,而且一般总是置CF1 (除非操作数为0)。 NONE伪指令段定义(组合类型)。本段与其它段逻辑上不发生关系,每段都有自己的基地址。这是隐含的组合类型。 NOP 指令助记符空操作。用于程序调试。 NOT 逻辑运算符(在语句的操作数部分)或逻辑操作指令助记符(在语句的操作码部分)按位非(求反)。将目的地址中的内容逐位取反后再送入目的地址中。 OFOverflow Flag, 溢出标志,在标志寄存器的第11字节。在运算过程中,如操作数超出了机器能表示的范围,此时OF 置1。作加法时,OF位是根据操作数的符号及其结果情况来设置的,若两个操作数的符号相同,而结果的符号与之相反时,OF置1,否则置0。 OFFSET数值返回运算符。其加在一个变量名或标号前面,返回的数值是该变量名或标号所在的段的偏移地址。 OPD 教材符号-目的操作数。 OPR 教材符号-源操作数。 OR 逻辑运算符(在语句的操作数部分)或逻辑操作指令助记符(在语句的操作码部分)按位或。进行“或”运算的两位中任一位是 1,则结果为1 。 ORG 伪指令定位(置汇编地址计数器)。在每段源程序或数据块的开始,指明此语句后面的程序或数据块的起始地址,其余指令或数据就连续存放在以后的地址单元中。例一 ORG $10 表示跳过10个字节。例二 ORG 数值表达式(值为0-65535) 表示$改为数值表达式的值。 OUT 指令助记符输出。把AX或AL中的内容传送到一个输出端口。寻址方式与IN相同。 PA教材符号-某一存储单元的物理地址。对于指令,PA=(CS)左移4位+(IP);对于堆栈段数据,PA=(SS)左移4位+(SP);或PA=(SS)左移4位+(BP);对于数据段和附加数据段数据,PA=(DS或ES)+该变量的偏移地址。 PARA伪指令段定义(定位类型方式)。规定在定位时每个段的起始地址总是16的整倍数,最后四位二进制数一定是0 。这种定位方式最简单,但段间往往有空隙(最多为15个字节)。缺省定位方式是按PARA定位。 PAGE伪指令段定义(定位类型方式)。要求段起始地址是 256的整倍数,即段的边界必须是页的边界。段地址的最低两位(16进制数)必须是0 。伪指令格式控制。指定汇编程序所产生的列表文件每页多少行(10255), 每行多少字符(60-132)。或指定输出新的一页(用号)。 PFParity Flag,奇偶标志,在标志寄存器的第2字节,当运算结果(指低8位)中1的个数为偶数时置1,否则置0。该标志主要用来检测数据在传输过程中的错误。 POP指令助记符出栈。将栈顶元素弹出送至某一寄存器,段寄存器(CS除外)或存储器中。首先将SP指的内容送至低8位,SP加1;再将SP指的内容送入高8位,SP再加1。 POPF指令助记符将堆栈顶端的字数据送入标志寄存器。对于TF和OF置位可先将数值置于AX中,压入堆栈,再用POPF送入标志寄存器。此方式对TF和OF标志位是唯一可行的置位方法。 PROC伪指令过程(子程序)定义(起始)。定义一个子程序,并说明它是NEAR或FAR 过程。定义的过程如果由 DOS直接装入并启动执行,则该过程必须定义为 FAR过程。 PSWProgram Status Word,程序状态字寄存器,由条件码标志(OF、SF、ZF、AF、PF、CF)和控制标志(DF、IF、TF)构成。 1110987 6 4 20 OFDFIFTFSFZFAFPFCF PTR 修改属性运算符。用来明确指出变量、标号或地址表达式的类型属性( 只在所在的指令内有效)。类型放在PTR 之前,可以是BYTE、WORD、 DWORD、NEAR、FAR。 PUBLIC伪指令段定义(组合类型)。该段与其它模块中说明为PUBLIC类型的同名同类别段组合起来,形成一个物理段(小于等于64K),公用一个段基址,伪指令定义全局符号。表示该模块中定义的哪些符号常量、变量、标号以及过程名(几个模块公用的过程一般都是FAR 过程)等可以被其他模块所引用。 PURGE 宏指令取消宏定义。 PUSH指令助记符进栈。把寄存器,段寄存器中的一个字数据压入堆栈。高8位先进,SP减1;低8位后进,SP再减1。 PUSHF 指令助记符把标志寄存器的内容压入堆栈。在子程序调用和中断服务中可用来保护标志位(恢复用POPF)。 RCL 指令助记符带进位循环左移。格式为:RCL 目的操作数,1或RCL 目的操作数,CL(其中CL中存放的是移动次数)CF RCR 指令助记符带进位循环右移。 CF RECORD伪指令设计一个单字节或双字节的记录格式。指令格式为,记录名 RECORD 字段名1:=表达式,字段名2:=表达式 记录定义后,必须利用初始化记录的方法来定义存储器变量,格式为,变量名 记录名 表达式,表达式,或变量名 记录名 数量DUP(表达式,) REP 指令助记符重复前缀。它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。 REPE指令助记符重复前缀。当两串相等,即ZF1时 ,它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。(与REPZ完全一样) REPNE 指令助记符重复前缀。当两串不相等,即ZF0时, 它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。(与REPNZ完全一样) REPNZ 指令助记符重复前缀。当两串不相等,即ZF0时, 它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。(与REPNE完全一样) REPT宏指令重复块(以ENDM结束)。格式为:REPT 重复次数重复块ENDM这种宏指令用于确定重复次数。 REPZ指令助记符重复前缀。当两串相等,即ZF1时, 它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。(与REPE完全一样) RET 指令助记符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三模拟数学试题及答案
- 2025至2030全球及中国汽车锤式粉碎机行业产业运行态势及投资规划深度研究报告
- 2025-2030中国消费品产业发展趋势分析与未来投资战略咨询研究报告
- 2025-2030中国母婴用品跨境电商供应链优化研究报告
- 2025-2030中国智能家居设备渗透率与市场增长预测报告
- 竞争对手情报制度
- 2025-2030中国心血管疾病用药市场格局与竞争策略研究报告
- 2025-2030中国微生物发酵原料药工艺改进空间报告
- 2025-2030中国工商业燃气用户需求特征与定制化服务模式报告
- 2025-2030中国工业燃气应用技术发展及市场机遇研究报告
- 2025贵州金控集团特需人才引进4人(第二批次)笔试历年参考题库附带答案详解
- 2026中国电建集团成都勘测设计研究院有限公司招聘笔试备考试题及答案解析
- 2025-2026学年高二物理上学期第一次月考卷(原卷及解析)【测试范围:第1~3章】(考试版A4)(广东专用)
- 2025年电工考试题库(内附答案)
- 朝鲜族朝鲜语考试题及答案
- 2025年成考专升本政治时政练习题及答案
- 励志主题课件
- 2025年【电工证】模拟考试题及答案
- 体育课急救知识
- 脑梗死恢复期护理查房范文讲课件
- 2024-2025学年浙江省S9联盟高一下学期4月期中考试英语试题(解析版)
评论
0/150
提交评论