汇编语言的所有指令

合集下载

汇编语言各种指令的解释与用法

汇编语言各种指令的解释与用法
)etalsnart( TALX 令指码换、5 。度宽的口端设外于决取这�LA 用息信位 8 送传�XA 用息信位 61 送传。息信 送传间之口端 O/I 与 XA 或 LA 在于限只�求要殊特的令指。位志标响影不�响影的位志标对令指 字送传)XA(-<))XD(,1+)XD(( 或 节字送传)LA(-<)XD( HFF0>trop ca,XD TUO 字送传)XA(-<)trop,1+trop( 或 节字送传)LA(-<)trop( HFF0=<trop ca,trop TUO 字送传))XD(,1+)XD((-<)XA( 或节字送传))XD((-<)LA( HFF0>trop XD,ca NI 字送传)trop,1+trop(-<)XA( 或 节字送传)trop(-<)LA( HFF0=<trop trop,ca NI 。址地口端 O/I 出指要都令指 TUO 和 NI�此因�口端 O/I 到出输 UPC 从息信将令指 TUO �UPC 到入输 O/I 从息信将令指 NI 。成完来 TUO 和 NI 令指出输 入输由都信通的间之 UPC 与口端 O/I 有所�机理处微的型机继后其及 6808 对�能功本基的令指 HFF0>trop ca,XD TUO HFF0=<trop ca,trop TUO HFF0>trop XD,ca NI HFF0=<trop trop,ca NI�式格编汇的令指 )tuptuo( TUO 令指出输 )tupni( NI 令指入输、4 令指送传用专器加累、二 。器存寄段用使许允不�求要殊特的令指 。位志标响影不�戏影的位志标对令指 。中器储存或器存寄在以可数作操个一另�中器存寄在须必数作操个一�式方址寻的持支令指 )2RPO(>-<)1RPO(�能功本基的令指 2RPO,1RPO GHCX�式格编汇的令指 )egnahcxe( GHCX 令指换交、3 �器存寄 SC 是许允不 TSD 的令指 POP �2- 者 或 2+是须必改修的 PS �后据数字取存 �此因 �作操字是能只令指 POP 和 HSUP �求要殊特的令指 。位志标响影不都令指 POP 和 HSUP�响影的位志标对令指 。式方址寻数即立用使能不能不令指 pop 和 hsup�式方址寻的持支令指 )PS(-<)PS(�))PS((-<)TSD( TSD POP )CRS(-<)PS(� 2-)PS(-<)PS( CRS HSUP 。复恢据数些这将可又令指 POP 而�据数些某存暂来用常中序程在令指 HSUP�能功本基的令指 TSD POP� CRS HSUP�式格编汇的令指 )kcats eht morf pop( POP 令指栈出 )kcats eht otno hsup( HSUP 令指栈进、2 。式方数即立用能不也�SC 是能不 TSD 数作操的目 �器存寄段为时同许允不 CRS 数作操源和 TSD 数作操的目�求要殊特的令指 。位志标响影不�响影的位志标对行执的令指。令指 有所于用适制限个这 �式方址寻器储存用时同能不数作操源和数作操的目 �式方址寻的持支令指 。址地的目到送传)字或节字(数作操原将 )CRS(-<)TSD(�能功本基的令指 CRS,TSD VOM�式格编汇的令指 )evom( VOM 令指送传、1 令指送传据数用通、一

汇编的基本常用指令

汇编的基本常用指令

汇编的基本常用指令汇编语言是一种底层的程序设计语言,主要用于编写机器码指令。

以下是一些常用的汇编指令:1. MOV:将数据从一个位置复制到另一个位置。

2. ADD:将两个操作数相加,并将结果存储在目的操作数中。

3. SUB:将第二个操作数从第一个操作数中减去,并将结果存储在目的操作数中。

4. INC:将一个操作数的值增加1。

5. DEC:将一个操作数的值减少1。

6. CMP:比较两个操作数的值,并将结果影响到标志寄存器中。

7. JMP:无条件跳转到指定的代码位置。

8. JZ / JE:当指定的条件成立时,跳转到指定的代码位置(零标志或相等标志)。

9. JNZ / JNE:当指定的条件不成立时,跳转到指定的代码位置(非零标志或不相等标志)。

10. JL / JB:当源操作数小于目的操作数时,跳转到指定的代码位置(小于标志或借位标志)。

11. JG / JA:当源操作数大于目的操作数时,跳转到指定的代码位置(大于标志或进位标志)。

12. CALL:调用一个子程序或函数。

13. RET:返回子程序或函数的调用处。

14. NOP:空操作,用于占位或调整程序代码的位置。

15. HLT:停止运行程序,将CPU置于停机状态。

这里只列举了一些基本的汇编指令,实际上汇编语言有更多更复杂的指令,具体使用哪些指令取决于所使用的汇编语言和目标处理器的指令集架构。

继续列举一些常用的汇编指令:16. AND:将两个操作数进行按位与运算,并将结果存储在目的操作数中。

17. OR:将两个操作数进行按位或运算,并将结果存储在目的操作数中。

18. XOR:将两个操作数进行按位异或运算,并将结果存储在目的操作数中。

19. NOT:对一个操作数的每一位进行取反操作。

20. SHL / SAL:将一个操作数的每一位向左移动指定的位数。

对于无符号数,使用SHL指令;对于带符号数,使用SAL指令。

21. SHR:将一个操作数的每一位向右移动指定的位数,高位空出的位使用0填充。

30个常用汇编命令

30个常用汇编命令

11、BSWAP(字节交换)
写法:bswap reg32 作用:将 reg32 的第 0 与第 3 个字节,第 1 与第 2 个字节进行交换。 示例:设 EAX=12345678h 执行 bswap eax;后,eax=78563412H
12、XLAT(换码)
写法:XLAT; 作用:AL=DS:[bx+AL] 将 DS:BX 所指内存中的由 AL 指定位移处的一个字节赋值给 AL。原来它的主要用途是查表。注意可以给它提供操作
13、ADD(加法)
写法:ADD reg/mem reg/mem/imm 作用:将后面的操作数加到前面的操作数中 注意:两个操作数必须类型匹配,并且不能同时是内存操作数 ADC (带进位加法) 写法:ADC reg/mem, reg/mem/imm ; 作用:dest=dest+src+cf 当 CF=0 时 ADD 与 ADC 的作用是相同的。 示例:实现 64 位数 EDX:EAX 与 ECX:EBX 的加法: Add EAX,EBX; ADC EDX,ECX;
写法:NEG reg/mem 作用:求补就是求相反数,即:dest=0-dest;
20、CMPXCHG(比较交换)
写法:CMPXCHG reg/mem, reg;
作用:AL/AX/EAX-oprd1,如果等于 0,则 oprd1=oprd2,否则,AL/AX/EAX=oprd1; 即:比较 AL/AX/EAX 与第一个操作数,如果相等,则置 ZF=1,并复制第二个操作数给第一个操作数;否则,置 ZF=0, 并复制第一个操作数给 AL/AX/EAX。 说明:CMPXCHG 主要为实现原子操作提供支持 CMPXCHG8B(8 字节比较交换指令) 写法:CMPXCHG8B MEM64; 功能:将 EDX:EAX 中的 64 位数与内存的 64 位数进行比较,如果相等,则置 ZF=1,并存储 ECX:EBX 到 mem64 指定 的内存地址;否则,置 ZF=0,并设置 EDX:EAX 为 mem64 的 8 字节内容

汇编语言的基本语法

汇编语言的基本语法

汇编语言的基本语法在计算机科学领域中,汇编语言是一种低级语言,用于编写计算机程序。

它直接操作计算机硬件,比高级语言更接近计算机底层。

汇编语言的使用需要对其基本语法有一定的了解。

本文将介绍汇编语言的基本语法,以帮助读者更好地理解和使用这种语言。

一、数据传送指令在汇编语言中,数据传送是最基本的操作之一。

它用于将一个数据从一个位置传送到另一个位置。

数据传送指令由源操作数和目的操作数组成,示例如下:MOV 目的操作数,源操作数其中,目的操作数是要传送数据的目标位置,源操作数是数据的来源位置。

例如,将一个常量值传送给寄存器AX的指令可以写成:MOV AX,1000H这条指令将十六进制常量1000H传送给寄存器AX。

二、算术指令在汇编语言中,算术指令用于对数据进行算术运算。

常见的算术运算包括加法、减法、乘法和除法。

以下是一些常用的算术指令示例:ADD 目的操作数,源操作数 ; 相加SUB 目的操作数,源操作数 ; 相减MUL 目的操作数,源操作数 ; 乘法DIV 目的操作数,源操作数 ; 除法其中,目的操作数是要进行运算的操作数存储位置,源操作数是用于运算的数据来源。

三、跳转指令在程序执行过程中,跳转指令用于改变程序的执行顺序。

它根据条件选择不同的路径执行,或者直接跳转到指定的地址。

常见的跳转指令有以下几种形式:JMP 目标地址 ; 无条件跳转JE 目标地址 ; 相等时跳转JNE 目标地址 ; 不相等时跳转JG 目标地址 ; 大于时跳转JGE 目标地址 ; 大于等于时跳转JL 目标地址 ; 小于时跳转JLE 目标地址 ; 小于等于时跳转这些指令根据前面的条件判断进行跳转。

四、循环指令在汇编语言中,循环指令用于重复执行一段程序。

常见的循环指令有以下两种形式:LOOP 目标地址 ; 循环指令,计数器减1并跳转JCXZ 目标地址 ; 循环指令,计数器为0时跳转这些指令根据指定的条件进行重复执行,直到条件不满足为止。

汇编指令大全

汇编指令大全

汇编指令大全1. 引言汇编语言是一种基于计算机硬件体系结构的低级语言。

它用于编写与硬件交互的程序,并且具有直接访问计算机底层硬件的能力。

汇编指令是汇编语言中的基本操作指令,用于执行各种计算机操作,如数据传输、算术运算和逻辑运算等。

本文将为您介绍一些常见的汇编指令。

2. 数据传输指令数据传输指令用于在寄存器之间或内存和寄存器之间传输数据。

2.1 MOV - 数据传送指令mov是最常见的数据传送指令之一。

它用于将数据从一个源操作数传送到一个目的操作数。

mov destination, source其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器、内存地址或立即数。

2.2 LEA - 加载有效地址指令lea指令用于加载一个有效地址到一个目的操作数。

lea destination, source其中,destination是目的操作数,通常为一个寄存器,source是一个内存地址。

3. 算术运算指令算术运算指令用于执行加法、减法、乘法和除法等算术运算。

3.1 ADD - 加法指令add指令用于将两个操作数相加,并将结果存储在目的操作数中。

add destination, source其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器或内存地址。

3.2 SUB - 减法指令sub指令用于将第二个操作数从第一个操作数中减去,并将结果存储在目的操作数中。

sub destination, source其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器或内存地址。

3.3 MUL - 乘法指令mul指令用于将两个操作数相乘,并将结果存储在目的操作数中。

其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器或内存地址。

3.4 DIV - 除法指令div指令用于将目的操作数除以源操作数,并将商存储在目的操作数中,余数存储在另一个寄存器中。

PIC8位单片机汇编语言常用指令的识读(中)

PIC8位单片机汇编语言常用指令的识读(中)

PIC8位单片机汇编语言常用指令的识读(中)三、面向字节、常数与控制操作的指令1?传送立即数至工作寄存器W指令指令格式:MOVLW k;k表示常数、立即数和标号说明:MOVLW是Move Literal to w的缩写实例:MOVL 0x1E;常数30送W2?I/O口控制寄存器TRIS设置指令指令格式;TRIS f说明;TRIS f是Load TRIS Register的缩写。

其功能是把工作寄存器W的内容送入I/O口控制寄存器f。

当W=0时,置对应I/O口为输出;W=1,置I/O口为输入。

实例:MOVLW 0x00 ;把00H送入WTRIS RA ;置PIC RA口为输出MOVLW 0xFF ;把FFH送入WTRIS RB ;置PIC RB口为输入说明:这是PIC汇编语言中常用的几条指令,即设置某个I/O口(这里是RA口和RB口)为输入或输出的语句。

可见,识读指令时,一应充分理解语句格式的功能,二应前后联系阅读。

3?W寄存器内容送寄存器f(W内容保持不变)指令指令格式:MOVWF f说明:MOVWF是Move W to f的缩写实例:MOVLW 0x0B;送0BH送WMOVWF 6 ;送W内容到RB口说明:第一条指令0x0B(常数11)送工作寄存器W,第二条指令,把W内容常数11送到寄存器F6中,查表F6即为RB口,所以PORT_ B(B口)=0BH=D114?寄存器f传送指令指令格式:MOVF f,d说明:MOVF是Move f的缩写。

F代表PIC中的某个寄存器。

指令中的d规定:d=0时,f内容送W;d=1时,f内容送寄存器。

实例:MOVF 6,0 ;RB口内容送WMOVWF 8;RB口内容送f8说明:第一条指令中的6代表寄存器f=6,查寄存器表f=6为RB口;0代表d=0,代表选择的目标为寄存器W。

第二条指令中的8代表寄存器f=8。

所以两条指令结果是把RB口的内容送f8。

至于f8内容是多少?还应在汇编语言开始时附加指令,这里从略。

汇编语言指令详解

汇编语言指令详解

第一讲第三章 指令系统--寻址方式回顾: 8086/8088的内部结构和寄放器,地址分段的概念,8086/8088的工作进程。

重点和纲要:指令系统--寻址方式。

有关寻址的概念;6种大体的寻址方式及有效地址的计算。

教学方法、实施步骤时间分配 教学手段 回 顾 5”×2 板书 计算机 投影仪 多媒体课件等讲 授 40” ×2 提 问 3” ×2 小 结2” ×2教学内容:8086/8088寻址方式操作码 操作数 …… 操作数运算机中的指令由操作码字段和操作数字段组成。

操作码:指运算机所要执行的操作,或称为指出操作类型,是一种助记符。

操作数:指在指令执行操作的进程中所需要的操作数。

该字段除能够是操作数本身外,也能够是操作数地址或是地址的一部份,还能够是指向操作数地址的指针或其它有关操作数的信息。

寻址方式就是指令顶用于说明操作数所在地址的方式,或说是寻觅操作数有效地址的方式。

8086/8088的大体寻址方式有六种。

1.当即寻址所提供的操作数直接包括在指令中。

它紧跟在操作码的后面,与操作码一路放在代码段区域中。

如图所示。

例如:MOV AX,3000H当即数能够是8位的,也能够是16位的。

若是16位的,则存储时低位在前,高位在后。

当即寻址主要用来给寄放器或存储器赋初值。

2.直接寻址操作数地址的16位偏移量直接包括在指令中。

它与操作码—起寄存在代码段区域,操作数一般在数据段区域中,它的地址为数据段寄放器DS加上这16位地址偏移量。

如图2-2所示。

例如:MOV AX,DS:[2000H];图2-2(对DS来讲能够省略成MOV AX,[2000H],系统默以为数据段)这种寻址方式是以数据段的地址为基础,可在多达64KB的范围内寻觅操作数。

8086/8088中允许段超越,即还允许操作数在以代码段、堆栈段或附加段为基准的区域中。

现在只要在指令中指明是段超越的,则16位地址偏移量能够与CS或SS或ES相加,作为操作数的地址。

汇编跳转指令表

汇编跳转指令表

汇编跳转指令表汇编语言中的跳转指令主要用于控制程序的流程。

以下是一些常见的汇编语言跳转指令及其说明:1. JMP (Jump) - 无条件跳转。

无论目标地址是什么,都会跳转到该地址。

2. JE (Jump if Equal) - 如果两个操作数相等,则跳转。

常与比较指令(CMP)一起使用。

3. JNE (Jump if Not Equal) - 如果两个操作数不相等,则跳转。

常与比较指令(CMP)一起使用。

4. JG (Jump if Greater) - 如果第一个操作数大于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

5. JGE (Jump if Greater or Equal) - 如果第一个操作数大于或等于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

6. JL (Jump if Less) - 如果第一个操作数小于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

7. JLE (Jump if Less or Equal) - 如果第一个操作数小于或等于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

8. JA (Jump if Above) - 如果无符号运算的结果大于0,则跳转。

常与ADC指令一起使用。

9. JBE (Jump if Below or Equal) - 如果无符号运算的结果小于或等于0,则跳转。

常与SUBB指令一起使用。

10. JS (Jump if Signed) - 如果结果为负,则跳转。

常与ADC指令一起使用。

11. JO (Jump if Overflow) - 如果溢出发生,则跳转。

常与ADC、ADD或SUB指令一起使用。

12. JNP (Jump if Not Parity) - 如果结果没有奇偶校验位,则跳转。

常与ADC指令一起使用。

13. JPO (Jump if Parity) - 如果结果有奇偶校验位,则跳转。

常与ADC指令一起使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言的所有指令数据传送指令集MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataXCHG功能: 交换两个操作数的数据语法: XCHG格式: XCHG r1,r2 XCHG m,r XCHG r,mPUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPALEA,LDS,LES功能: 取地址至寄存器语法: LEA r,m LDS r,m LES r,mXLAT(XLATB)功能: 查表指令语法: XLAT XLAT m算数运算指令ADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,Z,S,OSUB,SBB功能:减法指令语法: SUB OP1,OP2 SBB OP1,OP2格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data影响标志: C,P,A,Z,S,OINC,DEC功能: 把OP的值加一或减一语法: INC OP DEC OP格式: INC r/m DEC r/m影响标志: P,A,Z,S,ONEG功能: 将OP的符号反相(取二进制补码)语法: NEG OP格式: NEG r/m影响标志: C,P,A,Z,S,OMUL,IMUL功能: 乘法指令语法: MUL OP IMUL OP格式: MUL r/m IMUL r/m影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)DIV,IDIV功能:除法指令语法: DIV OP IDIV OP格式: DIV r/m IDIV r/mCBW,CWD功能: 有符号数扩展指令语法: CBW CWDAAA,AAS,AAM,AAD功能: 非压BCD码运算调整指令语法: AAA AAS AAM AAD影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)DAA,DAS功能: 压缩BCD码调整指令语法: DAA DAS影响标志: C,P,A,Z,S位运算指令集AND,OR,XOR,NOT,TEST功能: 执行BIT与BIT之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位SHR,SHL,SAR,SAL功能: 移位指令语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL影响标志: C,P,Z,S,OROR,ROL,RCR,RCL功能: 循环移位指令语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL 影响标志: C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能: 设定进位标志语法: CLC STC CMC标志位: CCLD,STD功能: 设定方向标志语法: CLD STD标志位: DCLI,STI功能: 设定中断标志语法: CLI STI标志位: ICMP功能: 比较OP1与OP2的值语法: CMP r/m,r/m/data标志位: C,P,A,Z,OJMP功能: 跳往指定地址执行语法: JMP 地址JXX功能: 当特定条件成立则跳往指定地址执行语法: JXX 地址注:A: ABOVE,当C=0,Z=0时成立B: BELOW,当C=1时成立C: CARRY,当弁时成立CXZ: CX寄存器的值为0(ZERO)时成立E: EQUAL,当Z=1时成立G: GREATER(大于),当Z=0且S=0时成立L: LESS(小于),当S不为零时成立N: NOT(相反条件),需和其它符号配合使用O: OVERFLOW,O=1时成立P: PARITY,P=1时成立PE: PARITY EVEN,P=1时成立PO: PARITY ODD,P=0时成立S: SIGN,S=1时成立Z: ZERO,Z=1时成立LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址RET RET n标志位: 无INT,IRET功能: 中断调用及返回指令语法: INT n IRET标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器字符串操作指令集MOVSB,MOVSW,MOVSD功能: 字符串传送指令语法: MOVSB MOVSW MOVSD标志位: 无CMPSB,CMPSW,CMPSD功能: 字符串比较指令语法: CMPSB CMPSW CMPSD标志位: C,P,Z,S,OSCASB,SCASW功能: 字符串搜索指令语法: SCASB SCASW标志位: C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能: 字符串载入或存贮指令语法: LODSB LODSW STOSB STOSW标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令S REPE 指令S REPNE 指令S标志位: 依指令S而定对于IBM PC机它有它的指令系统,其中包括:数据传送指令、串处理指令、算术指令、控制移动指令、逻辑指令、处理机控制指令。

这里将简单介绍其指令类型及指令说明,如有要求给具体的指令格式及应用,请与amay联系,amay加以更新。

1)数据传送指令:负责把数据、地址或立即数传送到寄存器或存储单元中。

数据传送指令类型指令说明通用数据传送指令MOV(传送)、PUSH(进栈)、POP(出栈)、XCHG(交换)累加器专用传送指令IN(输入指令)、OUT(输入指令)地址传送指令LEA(有效地址送寄存器)、LDS(指针送寄存器和DS)、LES(指针送寄存器和ES)标志寄存器传送指令LAHF(标志送AH)、SAHF(AH送标志寄存器)、PUSHF(标志进栈)、POPF(标志出栈)2)算术指令:用来执行算术运算。

算术指令类型指令说明加法指令ADD(加法)、ADC(带进位加法)、INC(加1)减法指令SUB(减法)、SBB(带借位减法)、DEC(减1)、NEG(求补)、CMP(比较)乘法指令MUL(无符号数乘法)、IMUL(带符号数乘法)除法指令DIV(无符号数除法)、IDIV(带符号数除法)、CBW(字节转换为字)、CWD(字转换为双字)3)逻辑指令:对字或字节执行逻辑运算。

逻辑指令类型指令说明逻辑运算指令AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)、XOR(异或)、TEST(测试)移动指令SHL(逻辑左移)、SAL(算术左移)、SHR(逻辑右移)、SAR(算术右移)、ROL(循环左移)、ROR(循环右移)、RCL(带进位循环左移)、RCR(带进位右移)4)串处理指令:处理存放存储器里的数据串。

串处理指令类型指令说明指令MOVS(串传送)、CMPS(串比较)、SCAS(串扫描)、LODS(从串取)、STOS(存入串)5)控制转移指令:用来控制程序的执行流程。

控制转移指令类型指令说明无条件转移指令JMP(段间和段内转移)条件转移指令JZ(结果为0(或相等)则转移)、JS(结果为负则转移)、JNS(结果为正则转移)、JO(溢出则转移)、JNO(不溢出则转移)、JP(奇偶位为1则转移)、JNP(奇偶位为0则转移)循环指令LOOP(循环指令)、LOOPPZ/LOOPE(当为0或相等时循环指令)、LOOPNZ/LOOPNE(当不为0或不相等时循环指令)子程序指令CALL(调用指令)、RET(返回指令)中断指令INT(中断)、INTO(如溢出则中断)、RIET(从中断返回)6)处理机控制指令:处理机控制指令类型指令说明标志处理指令CLC(进位位置0指令)、CMC(进位位求反指令)、STC(进位位置为1指令)、CLD(方向标志置1指令)、STD(方向标志位置1指令)、CLI(中断标志置0指令)、STI(中断标志置1指令)其他处理机控制指令NOP(无操作)、HLT(停机)、WAIT(等待)、ESC(换码)、LOCK(封锁)汇编语言程序格式汇编语言源程序用语句书写,MASM中可使用的语句分成两类,他们是指令性语句和伪指令语句1.指令性语句:指令性语句与机器指令相对应,汇编程序将他翻译成目标代码(机器指令代码)。

语句格为:标号:指令助记符操作数,操作数;注释标号表示指令语句的符号地址,标号后面必须紧跟“:”。

标号可以省略,他经常作为转移指令或CALL指令的一个操作数,用以表示地址的转移。

指令助记符是该语句的指令名称的代表号码,他指出操作的类型,汇编程序将其翻译成机器指令。

不可省略。

操作数表示参加本指令的运算数据,根据指令的操作类型,操作数不同,中间必须用“,”隔开。

注释指明一条指令的功能,可以省略。

2.伪指令语句伪指令语句没有对应的机器指令。

汇编程序汇编源程序时对伪指令进行处理,他可以完成数据定义,存储区分配,段定义,段分配,指示程序结束功能。

伪指令语句的格式为:名字伪指令指示符操作数,操作数;注释名字时给伪指令取得名称,他用符号地址表示。

伪指令中的名字通常是变量名,段名,过程名、符号名等。

伪指令指示符是汇编程序MASM规定的符号。

操作数是根据伪指令的具体要求来得。

3.数据项汇编语言中使用的操作数,可以是常数、寄存器、存储器、变量、标号活表达式,其中藏书、变量和标号是三种基本数据项。

⑴常数必须是固定的值,没有属性,是确定的数据。

⑵变量在程序运行中是可以修改的。

所有的变量具有三种属性①段值(SEGMENT):指明变量所在段的基址。

②段内偏移地址(OFFSET):指变量所在地址与段首地址之间的偏移字节数。

③类型(TYPE):变量的类型属性指变量中每个单元所包含的字节数,类型有:字节变量(BYTE)、字变量(WORD)、双字变量(DOUBLE WORD)⑶标号:标号是指可执行指令语句的地址的符号表示,他可作为转移指令和调用指令的目标操作数,以确定程序转换的目标地址,他具有三个属性。

①段值(SEGMENT):指明标号所在段的基址。

相关文档
最新文档