汇编语言指令以及伪指令速查手册

合集下载

汇编语言伪指令

汇编语言伪指令

汇编语言伪指令汇编语言作为一种低级编程语言,广泛应用于嵌入式系统、驱动程序开发和操作系统内核等领域。

在进行汇编语言编程时,我们常常会使用到一些伪指令。

本文将介绍一些常见的汇编语言伪指令及其用法。

1. 数据定义伪指令数据定义伪指令用于声明并初始化数据。

在汇编语言中,我们可以使用以下伪指令来定义不同类型的数据:1.1 DB(Define Byte):用于定义一个字节的数据。

例如:DB 10 ;定义一个字节的数据,值为101.2 DW(Define Word):用于定义一个字的数据。

例如:DW 100 ;定义一个字的数据,值为1001.3 DD(Define Doubleword):用于定义一个双字的数据。

例如:DD 1000 ;定义一个双字的数据,值为10001.4 DQ(Define Quadword):用于定义一个四字的数据。

例如:DQ 10000 ;定义一个四字的数据,值为100001.5 DT(Define Ten Bytes):用于定义一个十个字节的数据。

例如:DT 1234567890 ;定义一个十个字节的数据,值为12345678902. 代码段和数据段伪指令在汇编语言中,我们通常需要将代码和数据分开存放,以便于管理和执行。

以下是一些常用的代码段和数据段伪指令:2.1 CODE SEGMENT:用于定义代码段。

例如:CODE SEGMENT;代码段内容CODE ENDS2.2 DATA SEGMENT:用于定义数据段。

例如:DATA SEGMENT;数据段内容DATA ENDS2.3 STACK SEGMENT:用于定义堆栈段。

例如:STACK SEGMENT;堆栈段内容STACK ENDS3. 控制指令伪指令控制指令伪指令用于控制程序的执行流程。

以下是一些常见的控制指令伪指令:3.1 IF-ELSE-ENDIF:用于条件判断。

例如:IF 条件;条件为真时执行的代码ELSE;条件为假时执行的代码ENDIF3.2 REPEAT-UNTIL:用于循环执行一段代码直至满足条件。

第17章汇编语言伪指令参考资料

第17章汇编语言伪指令参考资料

因为TABLEA定义为DW,故TYPE返回0002, LENGTH根据DUP的定义返回Hex 0014(20),而SIZE返 回TYPE与LENGTH的乘积,即Hex 28(40)。
第17章 汇编语言伪指令参考资料
17.2 汇编语言伪指令
1. ASSUME伪指令 ASSUME的功能是使汇编程序能将内存段与CS、 DS、ES、SS等段寄存器联系起来。其一般格式为: ASSUME 段寄存器名 :name[, ...]

SEG2 ENDS
第17章 汇编语言伪指令参考资料
4. INCLUDE伪指令 你可能会在不同的程序中用到一些内容相同的一 组指令即宏指令。它们可以文件的形式保存,使任何 程序都能使用它。假设有一个将ASCII数转换为二进制 的程序存于C盘,名称是CONVERT.LIB。要获得此文 件,可在源程序中加入INCLUDE句。例如: INCLUDE C :CONVERT.LIB
第17章 汇编语言伪指令参考资料
放置在原来应该编写这段ASCII数转换程序处。汇 编程序会从磁盘找到此文件,并把它的指令语句载入 (展开)使用者的程序。若汇编程序找不到此文件,会发 出错误信息而不进行INCLUDE操作。
汇编程序会在LST文本,把载入的指令语句每一行 的第30个字,印上一个1(第33个字开始是源程序)。
TABLEA DW 10 DUP(?) ...
MOV DX, LENGTH TABLEA
第17章 汇编语言伪指令参考资料
若操作数中不含DUP项,则运算符返回值01。 LENGTH的其他用法,另参考本节中的SIZE及TYPE。
2. OFFSET 运算符 OFFSET运算符返回变量或标号的偏移地址(亦即 数据段或指令段内的偏移地址)。其一般格式为: OFFSET 变量名(标号名)

汇编指令速查

汇编指令速查

汇编指令速查汇编指令速查GAS中每个操作都是有⼀个字符的后缀,表明操作数的⼤⼩。

C声明GAS后缀⼤⼩(字节)char b1short w2(unsigned) int / long / char*l4float s4double l8long double t10/12注意:GAL使⽤后缀“l”同时表⽰4字节整数和8字节双精度浮点数,这不会产⽣歧义因为浮点数使⽤的是完全不同的指令和寄存器。

操作数格式:格式操作数值名称样例(GAS = C语⾔)$Imm Imm⽴即数寻址$1 = 1Ea R[Ea]寄存器寻址%eax = eaxImm M[Imm]绝对寻址0x104 = *0x104(Ea)M[R[Ea]]间接寻址(%eax)= *eaxImm(Ea)M[Imm+R[Ea]](基址+偏移量)寻址4(%eax) = *(4+eax)(Ea,Eb)M[R[Ea]+R[Eb]]变址(%eax,%ebx) = *(eax+ebx)Imm(Ea,Eb)M[Imm+R[Ea]+R[Eb]]寻址9(%eax,%ebx)= *(9+eax+ebx)(,Ea,s)M[R[Ea]*s]伸缩化变址寻址(,%eax,4)= *(eax*4)Imm(,Ea,s)M[Imm+R[Ea]*s]伸缩化变址寻址0xfc(,%eax,4)= *(0xfc+eax*4)(Ea,Eb,s)M(R[Ea]+R[Eb]*s)伸缩化变址寻址(%eax,%ebx,4) = *(eax+ebx*4)Imm(Ea,Eb,s)M(Imm+R[Ea]+R[Eb]*s)伸缩化变址寻址8(%eax,%ebx,4) = *(8+eax+ebx*4)注:M[xx]表⽰在存储器中xx地址的值,R[xx]表⽰寄存器xx的值,这种表⽰⽅法将寄存器、内存都看出⼀个⼤数组的形式。

数据传送指令:指令效果描述movl S,D D <-- S传双字movw S,D D <-- S传字movb S,D D <-- S传字节movsbl S,D D <-- 符号扩展S符号位填充(字节->双字)movzbl S,D D <-- 零扩展S零填充(字节->双字)pushl S R[%esp] <-- R[%esp] – 4;压栈M[R[%esp]] <-- Spopl D D <-- M[R[%esp]];出栈R[%esp] <-- R[%esp] + 4;注:均假设栈往低地址扩展。

伪指令和汇编语言

伪指令和汇编语言

从指定单元开始,定义若干个字(双字节数)。
例如:
ORG 8000H
HETAB:
DW 7234H,8AH,10
汇编后则:
(8000H)=72H (8001H)=34H (8002H)=00H (8003H)=8AH (8004H)=00H (8005H)=0AH
03 常用旳伪指令
DS:定义空间命令
“DS <体现式>定义空间命令 格式: 标号: DS 数据或字符体现式 从指定单元开始,由数据或体现式 拟定保存若干个字节内存空间备用。 例如: ORG 8000H DS 08H DB 30H,8AH 即8000H~8007H单元保存备用 (8008H)=30H (8009H)=8AH
DATA和EQU旳区别在于DATA定义旳字符名称
作为标号登记在符号表中,故可先使用后定义;
而用EQU定义旳字符名称必须先定义后使用,其
原因是EQU不定义在符号表中。
03 常用旳伪指令
BIT:位地址符号命令

BIT<体现式>位地址符号命令
格式:
字符名称:
BIT 位地址
该命令把地址赋予标号段要求旳字符名称。
地址,位地址或立即数。
例如:
ORG 8000H
AA: EQU R6
;AA与R6等值
MOV A,AA
;A(R6)

03 常用旳伪指令
DATA:数据地址赋值命令
“ DATA<体现式>数据地址赋值命令 格式:
字符名称:
DATA 数据或体现式
此命令把数据地址或代码地址赋予标号段要求旳字符名称。
例如:INDEXJ DATA 8389H
定义了INDEXJ这个字符名称旳地址为8389H,主要用于

汇编语言常用命令、伪指令

汇编语言常用命令、伪指令

DEBUG的主要命令:1.R命令:显示和修改寄存器的值和标志位的状态。

2.D命令:显示指定区域内的内容。

3.G命令:从起点开始执行汇编指令,到终点结束。

4.H命令:计算两个十六进制数的和与差。

5.A命令:输入汇编指令。

6.U命令:反汇编,显示机器码所对应的汇编指令。

7.T命令:跟踪执行从起点执行若干条指令。

常用伪指令的用法:1.符号定义语句:1)等值语句:符号名EQU 表达式2)等号语句:NUM=34……NUM=34+12.变量定义语句:符号名DB/DW/DD 表达式3.段定义语句:1)段定义语句格式:段名SEGMENT 【定位类型】【组合类型】【“类别”】……段名ENDS2)段假设语句:ASSUME 段寄存器名:段名【,…】3)ORG伪指令与地址计数器ORG <表达式>4)PUBLIC和EXTRN伪指令A)PUBLIC伪指令PUBLIU 名字【,…】B)EXTRN伪指令EXTRN 名字:类型【,…】4.过程定义语句过程名PROC NEAR/FAR……RET过程名ENDP5.结束语句汇编语言程序的编辑.汇编.链接.调试步骤1.编辑:打开汇编语言程序入口进入汇编语言子目录c:MASM2.进入DEBUG ,进入调试界面,出入程序3.编译源程序MASM 文件名.ASM4.观察实验结果,如果没有达到设计要求,返回第一步修改命令,继续试验5.连接程序LINK 文件名.OBJ;6.调试程序DEBUG 文件名.EXE。

汇编指令手册(英文缩写原码)

汇编指令手册(英文缩写原码)

汇编指令手册(英文缩写原码)1.通用数据传送指令.MOV----> moveMOVSX---->extended move with sign dataMOVZX---->extended move with zero dataPUSH---->pushPOP---->popPUSHA---->push allPOPA---->pop allPUSHAD---->push all dataPOPAD---->pop all dataBSWAP---->byte swapXCHG---->exchangeCMPXCHG---->compare and changeXADD---->exchange and addXLAT---->translate2.输入输出端口传送指令.IN---->inputOUT---->output3.目的地址传送指令.LEA---->load effective addressLDS---->load DSLES---->load ESLFS---->load FSLGS---->load GSLSS---->load SS4.标志传送指令.LAHF---->load AH from flagSAHF---->save AH to flagPUSHF---->push flagPOPF---->pop flagPUSHD---->push dflagPOPD---->pop dflag二、算术运算指令ADD---->addADC---->add with carryINC---->increase 1AAA---->ascii add with adjustDAA---->decimal add with adjustSUB---->substractSBB---->substract with borrowDEC---->decrease 1NEC---->negativeCMP---->compareAAS---->ascii adjust on substractDAS---->decimal adjust on substractMUL---->multiplicationIMUL---->integer multiplicationAAM---->ascii adjust on multiplicationDIV---->divideIDIV---->integer divideAAD---->ascii adjust on divideCBW---->change byte to wordCWD---->change word to double wordCWDE---->change word to double word with sign to EAXCDQ---->change double word to quadrate word三、逻辑运算指令———————————————————————————————————————AND---->andOR---->orXOR---->xorNOT---->notTEST---->testSHL---->shift leftSAL---->arithmatic shift leftSHR---->shift rightSAR---->arithmatic shift rightROL---->rotate leftROR---->rotate rightRCL---->rotate left with carryRCR---->rotate right with carry四、串指令———————————————————————————————————————MOVS---->move stringCMPS---->compare stringSCAS---->scan stringLODS---->load stringSTOS---->store stringREP---->repeatREPE---->repeat when equalREPZ---->repeat when zero flagREPNE---->repeat when not equalREPNZ---->repeat when zero flagREPC---->repeat when carry flagREPNC---->repeat when not carry flag五、程序转移指令———————————————————————————————————————1>无条件转移指令(长转移)JMP---->jumpCALL---->callRET---->returnRETF---->return far2>条件转移指令(短转移,-128到+127的距离内)JAE---->jump when above or equalJNB---->jump when not belowJB---->jump when belowJNAE---->jump when not above or equalJBE---->jump when below or equalJNA---->jump when not aboveJG---->jump when greaterJNLE---->jump when not less or equalJGE---->jump when greater or equalJNL---->jump when not lessJL---->jump when lessJNGE---->jump when not greater or equalJLE---->jump when less or equalJNG---->jump when not greaterJE---->jump when equalJZ---->jump when has zero flagJNE---->jump when not equalJNZ---->jump when not has zero flagJC---->jump when has carry flagJNC---->jump when not has carry flagJNO---->jump when not has overflow flagJNP---->jump when not has parity flagJPO---->jump when parity flag is oddJNS---->jump when not has sign flagJO---->jump when has overflow flagJP---->jump when has parity flagJPE---->jump when parity flag is evenJS---->jump when has sign flag3>循环控制指令(短转移)LOOP---->loopLOOPE---->loop equalLOOPZ---->loop zeroLOOPNE---->loop not equalLOOPNZ---->loop not zeroJCXZ---->jump when CX is zeroJECXZ---->jump when ECX is zero4>中断指令INT---->interruptINTO---->overflow interruptIRET---->interrupt return5>处理器控制指令HLT---->haltWAIT---->waitESC---->escapeLOCK---->lockNOP---->no operationSTC---->set carryCLC---->clear carryCMC---->carry make changeSTD---->set directionCLD---->clear directionSTI---->set interruptCLI---->clear interrupt六、伪指令—————————————————————————————————————DW---->definw wordPROC---->procedureENDP---->end of procedureSEGMENT---->segmentASSUME---->assumeENDS---->end segmentEND---->end。

第2章 汇编语言程序中的指令与伪指令

第2章  汇编语言程序中的指令与伪指令

(2) 类型指定运算符 • 格式:THIS 属性或类型 • 功能:该运算符主要用来为相应的变量名或标 号指定类型属性,用来指定下一个能分配的存 储单元的类型。被指定变量或标号的地址属性 (段基址和偏移量)和下一条邻接语句的变量或标 号相同。 (3) 段属性前缀 • 格式:段寄存器(或“段名”,或“段组名”): 地址表达式 • 如 MOV AX,ES:[BX+SI] • (4) 短转移运算符SHORT • 见 转移指令
2.DS和ES的装入
• 在程序中,必须使用MOV指令才能将对应段的段地址 装入寄存器DS和ES中。 • 例如:MOV AX , DATA1 • MOV DS , AX • ……………… • MOV ES , AX • ……………… 3.SS的装入 • 堆栈段是一个特殊的段,一个完整的源程序一般最好定 义堆栈段。除了要生成COM型执行文件的源程序外, 如果在程序中不定义堆栈段,那么,操作系统在装入该 执行程序时将自动为其指定一个64K字节的堆栈段。 • 在程序没有定义堆栈段的情况下,在由连接程序生 成执行文件时,将会产生警告信息,但可以不理会,所 生成的执行文件是可以正常运行的。 • warning xxxx: no stack segment (其中:xxxx是错 误号)
2.1.2
操作数及其表达式
• 1.常量
• (1) 数值常数 • (2) 字符串常量 • (3) 符号常量
2.表达式
• • • • • • • • • • • • • • (1)数值表达式 X +1 ;表达式为变量名“X”的值加1 19 MOD 7 ;19除7的余数是5 AND AX ,075FH ;将(AX)和075FH按位作“与”运 算 (2) “?“表示预留的存储空间。 (3) 地址表达式的运算结果是内存的偏移地址。 第一章讲过的“寻址方式”,都是简单的地址表达式。如 地址表达式 offset data ;表示取变量“data”的偏移量 1)两个地址相加、相乘、相除是无意义 2) 地址加(减)数字量的表达式是有意义的, 3)两个地址相减也是有意义的 而指令MOV AX,(ARRAY_END –ARRAY)/2 则表示把数组长度(即字数)存入寄存器AX中。 (4) 操作数字段可以使用复制定义符DUP。

汇编指令、伪指令大全

汇编指令、伪指令大全

MOV指令为双操作数指令,两个操作数中必须有一个是寄存器.MOV DST , SRC // Byte / Word执行操作: dst = src1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器).2.立即数不能直接送段寄存器3.不允许在两个存储单元直接传送数据4.不允许在两个段寄存器间直接传送信息PUSH入栈指令及POP出栈指令: 堆栈操作是以"后进先出"的方式进行数据操作.PUSH SRC //Word入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器.入栈时高位字节先入栈,低位字节后入栈.POP DST //Word出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储器.执行POP SS指令后,堆栈区在存储区的位置要改变.执行POP SP 指令后,栈顶的位置要改变.XCHG(eXCHanG)交换指令: 将两操作数值交换.XCHG OPR1, OPR2 //Byte/Word执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp1.必须有一个操作数是在寄存器中2.不能与段寄存器交换数据3.存储器与存储器之间不能交换数据.XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码.XLAT (OPR 可选) //Byte执行操作: AL=(BX+AL)指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码.LEA(Load Effective Address) 有效地址传送寄存器指令LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中.执行操作: REG = EAsrc注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器MOV BX , OFFSET OPER_ONE 等价于 LEA BX , OPER_ONEMOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中LDS(Load DS with pointer)指针送寄存器和DS指令LDS REG , SRC //常指定SI寄存器。

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

汇编语言指令以及伪指令速查手册
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV传送字或字节.
MOVSX先符号扩展,再传送.
MOVZX先零扩展,再传送.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
BSWAP 交换32位寄存器里字节的顺序
XCHG交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)
CMPXCHG比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD先交换再累加.( 结果在第一个操作数里)
XLAT字节查表转换.
── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即
0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL )
2. 输入输出端口传送指令.
IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器)
输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时, 其范围是0-65535.
3. 目的地址传送指令.
LEA 装入有效地址.
例: LEA DX,string ;把偏移地址存到DX.
LDS 传送目标指针,把指针内容装入DS.
例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
LES 传送目标指针,把指针内容装入ES.
例: LES DI,string ;把段地址:偏移地址存到ES:DI.
LFS 传送目标指针,把指针内容装入FS.
例: LFS DI,string ;把段地址:偏移地址存到FS:DI.
LGS 传送目标指针,把指针内容装入GS.
例: LGS DI,string ;把段地址:偏移地址存到GS:DI.
LSS传送目标指针,把指针内容装入SS.
例: LSS DI,string ;把段地址:偏移地址存到SS:DI.
4. 标志传送指令.
LAHF标志寄存器传送,把标志装入AH.
SAHF 标志寄存器传送,把AH内容装入标志寄存器.
PUSHF标志入栈.
POPF标志出栈.
PUSHD 32位标志入栈.
POPD 32位标志出栈.
二、算术运算指令
─────────────────────────────────────── ADD加法.
ADC 带进位加法.
INC 加1.
AAA 加法的ASCII码调整.
DAA 加法的十进制调整.
SUB 减法.
SBB带借位减法.
DEC 减1.
NEC求反(以0 减之).
CMP比较.(两操作数作减法,仅修改标志位,不回送结果).
AAS减法的ASCII码调整.
DAS 减法的十进制调整.
MUL无符号乘法.
IMUL整数乘法.
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法的ASCII码调整.
DIV 无符号除法.
IDIV 整数除法.
以上两条,结果回送:
商回送AL,余数回送AH, (字节运算);
或商回送AX,余数回送DX, (字运算).
AAD除法的ASCII码调整.
CBW字节转换为字. (把AL中字节的符号扩展到AH中去) CWD字转换为双字. (把AX中的字的符号扩展到DX中去) CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去) CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)
三、逻辑运算指令
─────────────────────────────────────── AND与运算.
OR 或运算.
XOR异或运算.
NOT 取反.
TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).
SHL 逻辑左移.
SAL算术左移.(=SHL)
SHR逻辑右移.
SAR算术右移.(=SHR)
ROL 循环左移.
ROR 循环右移.
RCL 通过进位的循环左移.
RCR 通过进位的循环右移.
以上八种移位指令,其移位次数可达255次.
移位一次时, 可直接用操作码. 如SHL AX,1.
移位>1次时, 则由寄存器CL给出移位次数.
如MOV CL,04
SHL AX,CL
四、串指令
─────────────────────────────────────── DS:SI源串段寄存器:源串变址.
ES:DI目标串段寄存器:目标串变址.
CX 重复次数计数器.
AL/AX扫描值.
D标志0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
Z标志用来控制扫描或比较操作的结束.
MOVS串传送.
( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. ) CMPS串比较.
( CMPSB 比较字符. CMPSW 比较字. )
SCAS 串扫描.
把AL或AX的内容与目标串作比较,比较结果反映在标志位.
LODS装入串.
把源串中的元素(字或字节)逐一装入AL或AX中.
( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. ) STOS 保存串.
是LODS的逆过程.
REP 当CX/ECX<>0时重复.
REPE/REPZ当ZF=1或比较结果相等,且CX/ECX<>0时重复.
REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX<>0时重复.
REPC 当CF=1且CX/ECX<>0时重复.
REPNC 当CF=0且CX/ECX<>0时重复.
五、程序转移指令
───────────────────────────────────────
1>无条件转移指令(长转移)
JMP 无条件转移指令
CALL 过程调用
RET/RETF过程返回.
2>条件转移指令(短转移,-128到+127的距离内)
( 当且仅当(SF XOR OF)=1时,OP1 JA/JNBE 不小于或不等于时转移.
JAE/JNB 大于或等于转移.
JB/JNAE 小于转移.
JBE/JNA 小于或等于转移.
以上四条,测试无符号整数运算的结果(标志C和Z). JG/JNLE大于转移.
JGE/JNL 大于或等于转移.
JL/JNGE小于转移.
JLE/JNG小于或等于转移.
以上四条,测试带符号整数运算的结果(标志S,O和Z). JE/JZ等于转移.
JNE/JNZ不等于时转移.
JC 有进位时转移.
JNC 无进位时转移.
JNO 不溢出时转移.
JNP/JPO 奇偶性为奇数时转移.
JNS符号位为"0" 时转移.
JO 溢出转移.
JP/JPE奇偶性为偶数时转移.
JS 符号位为"1" 时转移.
3>循环控制指令(短转移)
LOOP CX不为零时循环.
LOOPE/LOOPZ CX不为零且标志Z=1时循环. LOOPNE/LOOPNZ CX不为零且标志Z=0时循环. JCXZ CX为零时转移.
JECXZ ECX为零时转移.
4>中断指令
INT 中断指令
INTO 溢出中断
IRET 中断返回
5>处理器控制指令
HLT 处理器暂停, 直到出现中断或复位信号才继续.
WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.
ESC 转换到外处理器.
LOCK 封锁总线.
NOP 空操作.
STC 置进位标志位.
CLC 清进位标志位.
CMC进位标志取反.
STD 置方向标志位.
CLD 清方向标志位.
STI置中断允许位.
CLI 清中断允许位.
六、伪指令
─────────────────────────────────────── DW定义字(2字节).
PROC定义过程.
ENDP过程结束. SEGMENT 定义段. ASSUME建立段寄存器寻址. ENDS段结束.
END 程序结束.。

相关文档
最新文档