??xml version="1.0" encoding="utf-8" standalone="yes"?>
格式? MOV DST,SRC
执行的操?(DST)<-(SRC)
.PUSHq栈指o
格式?PUSH SRC
执行的操?(SP)<-(SP)-2
((SP)+1,(SP))<-(SRC)
.POP出栈指o
格式?POP DST
执行的操?(DST)<-((SP+1),(SP))
(SP)<-(SP)+2
.XCHG 交换指o
格式?XCHG OPR1,OPR2
执行的操?(OPR1)<-->(OPR2)
2.累加器专用传送指?br>IN(Input) 输入
OUT(Output) 输出
XLAT(Translate) 换码
q组指o只限于用篏加器AX或AL传送信?
.IN 输入指o
长格式ؓ: IN AL,PORT(字节)
IN AX,PORT(?
执行的操? (AL)<-(PORT)(字节)
(AX)<-(PORT+1,PORT)(?
短格式ؓ: IN AL,DX(字节)
IN AX,DX(?
执行的操? AL<-((DX))(字节)
AX<-((DX)+1,DX)(?
.OUT 输出指o
长格式ؓ: OUT PORT,AL(字节)
OUT PORT,AX(?
执行的操? (PORT)<-(AL)(字节)
(PORT+1,PORT)<-(AX)(?
短格式ؓ: OUT DX,AL(字节)
OUT DX,AX(?
执行的操? ((DX))<-(AL)(字节)
((DX)+1,(DX))<-AX(?
在IBM-PC机里,外部讑֤最多可?5536个I/O端口,端口(卛_讄端口地址)?000~FFFFH.其中?56个端?0~FFH)可以直接在指令中指定,q就是长格式中的PORT,此时机器指o用二个字节表C?W二个字节就是端口号.所以用长格式时可以在指定中直接指定端口?但只限于?56个端?当端口号>=256?只能使用短格?此时,必须先把端口h到DX寄存器中(端口号可以从0000?FFFFH),然后再用IN或OUT指o?传送信?
.XLAT 换码指o
格式? XLAT OPR
? XLAT
执行的操?(AL)<-((BX)+(AL))
3.有效地址送寄存器指o
LEA(Load effective address)有效地址送寄存器
LDS(Load DS with Pointer)指针送寄存器和DS
LES(Load ES with Pointer)指针送寄存器和ES
.LEA 有效地址送寄存器
格式? LEA REG,SRC
执行的操?(REG)<-SRC
指o把源操作数的有效地址送到指定的寄存器?
.LDS 指针送寄存器和DS指o
格式? LDS REG,SRC
执行的操?(REG)<-(SRC)
(DS)<-(SRC+2)
把源操作数指定的4个相l字节送到由指令指定的寄存器及DS寄存器中.该指令常指定SI寄存?
.LES 指针送寄存器和ES指o
格式? LES REG,SRC
执行的操? (REG)<-(SRC)
(ES)<-(SRC+2)
把源操作数指定的4个相l字节送到由指令指定的寄存器及ES寄存器中.该指令常指定DI寄存?
4.标志寄存器传送指?br>LAHF(Load AH with flags)标志送AH
SAHF(store AH into flags)AH送标志寄存器
PUSHF(push the flags) 标志q栈
POPF(pop the flags) 标志出栈
.LAHF 标志送AH
格式? LAHF
执行的操?(AH)<-(PWS的低字节)
.SAHF AH送标志寄存器
格式? SAHF
执行的操?(PWS的低字节)<-(AH)
.PUSHF 标志q栈
格式? PUSHF
执行的操?(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
.POPF 标志出栈
格式? POPF
执行的操?(PWS)<-((SP)+1,(SP))
(SP)<-(SP+2)
二、算术指?br>1.加法指o
ADD(add)加法
ADC(add with carry)带进位加?br>INC(increment)?
.ADD 加法指o
格式: ADD DST,SRC
执行的操?(DST)<-(SRC)+(DST)
.ADC 带进位加法指?br>格式: ADC DST,SRC
执行的操?(DST)<-(SRC)+(DST)+CF
.ADD ?指o
格式: INC OPR
执行的操?(OPR)<-(OPR)+1
2.减法指o
SUB(subtract)减法
SBB(subtract with borrow)带借位减法
DEC(Decrement)?
NEG(Negate)求补
CMP(Compare)比较
.SUB 减法指o
格式: SUB DST,SRC
执行的操?(DST)<-(DST)-(SRC)
.SBB 带借位减法指o
格式: SBB DST,SRC
执行的操?(DST)<-(DST)-(SRC)-CF
.DEC ?指o
格式: DEC OPR
执行的操?(OPR)<-(OPR)-1
.NEG 求补指o
格式: NEG OPR
执行的操?(OPR)<- -(OPR)
.CMP 比较指o
格式: CMP OPR1,OPR2
执行的操?(OPR1)-(OPR2)
该指令与SUB指o一h行减法操?但不保存l果,只是Ҏl果讄条g标志西半?
3.乘法指o
MUL(Unsigned Multiple)无符h乘法
IMUL(Signed Multiple)带符h乘法
.MUL 无符h乘法指o
格式: MUL SRC
执行的操?
字节操作?(AX)<-(AL)*(SRC)
字操作数:(DX,AX)<-(AX)*(SRC)
.IMUL 带符h乘法指o
格式: IMUL SRC
执行的操?与MUL相同,但必L带符h,而MUL是无W号?
4.除法指o
DIV(Unsigned divide)无符h除法
IDIV(Signed divide)带符h除法
CBW(Convert byte to word)字节转换为字
CWD(Contert word to double word)字{换ؓ双字
.DIV 无符h除法指o
格式: DIV SRC
执行的操?
字节操作:(AL)<-(AX)/(SRC)的商
(AH)<-(AX)/(SRC)的余?br> 字操? (AX)<-(DX,AX)/(SRC)的商
(AX)<-(DX,AX)/(SRC)的余?br>.IDIV 带符h除法指o
格式: DIV SRC
执行的操?与DIV相同,但操作数必须是带W号?商和余数也均为带W号?且余数的W号与被除数的符L?
.CBW 字节转换为字指o
格式: CBW
执行的操?AL的内容符h展到AH.卛_?AL)的最高有效位?,?AH)=00;?AL)的最高有效位?,?AH)=0FFH
.CWD 字{换ؓ双字指o
格式: CWD
执行的操?AX的内容符h展到DX.卛_(AX)的最高有效位?,?DX)=0;否则(DX)=0FFFFH.
q两条指令都不媄响条件码.
三、逻辑指o
1.逻辑q算指o
AND(and) 逻辑?br>OR(or) 逻辑?br>NOT(not) 逻辑?br>XOR(exclusive or)异或
TEST(test) 试
.AND 逻辑与指?br>格式: AND DST,SRC
执行的操?(DST)<-(DST)^(SRC)
.OR 逻辑或指?br>格式: OR DST,SRC
执行的操?(DST)<-(DST)V(SRC)
.NOT 逻辑非指?br>格式: NOT OPR
执行的操?(OPR)<-(OPR)
.XOR 异或指o
格式: XOR DST,SRC
执行的操?(DST)<-(DST)V(SRC)
.TEST 试指o
格式: TEST OPR1,OPR2
执行的操?(DST)^(SRC)
两个操作数相与的l果不保?只根据其特征|条件码
2.UM指o
SHL(shift logical left) 逻辑左移
SAL(shift arithmetic left) 术左移
SHR(shift logical right) 逻辑右移
SAR(shift arithmetic right) 术右移
ROL(Rotate left) 循环左移
ROR(Rotate right) 循环右移
RCL(Rotate left through carry) 带进位@环左U?br>RCR(Rotate right through carry) 带进位@环右U?br>格式: SHL OPR,CNT(其余的类?
其中OPR可以是除立即C外的Md方式.UMơ数由CNT军_,CNT可以?或CL.
循环UM指o可以改变操作C所有位的位|?UM指o则常常用来做乘以2除以2操作.其中术UM指o适用于带W号数运?SAL用来?,SAR用来除以2;而逻辑UM指o则用来无W号数运?SHL用来?,SHR用来除以2.
四、串处理指o
1.与REP盔R合工作的MOVS,STOS和LODS指o
.REP重复串操作直?CX)=0Z
格式: REP string primitive
其中String Primitive可ؓMOVS,LODS或STOS指o
执行的操?
1)?CX)=0则退出REP,否则往下执?
2)(CX)<-(CX)-1
3)执行其中的串操作
4)重复1)~3)
.MOVS 串传送指?br>格式:可有三种
MOVS DST,SRC
MOVSB(字节)
MOVSW(?
其中W二、三U格式明地注明是传送字节或字,W一U格式则应在操作C表明是字q是字节操作Q例如:
MOVS ES:BYTE PTR[DI],DS:[SI]
执行的操?
1)((DI))<-((SI))
2)字节操作:
(SI)<-(SI)+(?)1,(DI)<-(DI)+(?)1
当方向标志DF=0时用+,当方向标志DF=1时用-
3)字操?
(SI)<-(SI)+(?)2,(DI)<-(DI)+(?)2
当方向标志DF=0时用+,当方向标志DF=1时用-
该指令不影响条g?
.CLD(Clear direction flag)该指令DF=0,在执行串操作指o时可使地址自动增量;
.STD(Set direction flag)该指令DF=1,在执行串操作指o时可使地址自动减量.
.STOS 存入串指?br>格式: STOS DST
STOSB(字节)
STOSW(?
执行的操?
字节操作:((DI))<-(AL),(DI)<-(DI)+-1
字操? ((DI))<-(AX),(DI)<-(DI)+-2
该指令把AL或AX的内容存入由(DI)指定的附加段的某单元?q根据DF的值及数据cd修改DI的内?当它与REP联用?可把AL或AX的内容存入一个长度ؓ(CX)的缓冲区?
.LODS 从串取指?br>格式: LODS SRC
LODSB
LODSW
执行的操?
字节操作:(AL)<-((SI)),(SI)<-(SI)+-1
字操? (AX)<-((SI)),(SI)<-(SI)+-2
该指令把?SI)指定的数据段中某单元的内定w到AL或AX?q根据方向标志及数据cd修改SI的内?指o允许使用D跨前~来指定非数据D늚存储?该指令也不媄响条件码.
一般说?该指令不和REP联用.有时~冲Z的一串字W需要逐次取出来测试时,可用本指o.
2.与REPE/REPZ和REPNZ/REPNE联合工作的CMPS和SCAS指o
.REPE/REPZ 当相{?为零旉复串操作
格式: REPE(或REPZ) String Primitive
其中String Primitive可ؓCMPS或SCAS指o.
执行的操?
1)?CX)=0或ZF=0(xơ比较的l果两个操作C{?旉?否则往下执?br>2)(CX)<-(CX)-1
3)执行其后的串指o
4)重复1)~3)
.REPNE/REPNZ 当不相等/不ؓ零时重复串操?br>格式: REPNE(或REPNZ) String Primitive
其中String Primitive可ؓCMPS或SCAS指o
执行的操?
除退出条?CX=0)或ZF=1?其他操作与REPE完全相同.
.CMPS 串比较指?br>格式: CMP SRC,DST
CMPSB
CMPSW
执行的操?
1)((SI))-((DI))
2)字节操作:(SI)<-(SI)+-1,(DI)<-(DI)+-1
字操? (SI)<-(SI)+-2,(DI)<-(DI)+-2
指o把由(SI)指向的数据段中的一个字(或字?与由(DI)指向的附加段中的一个字(或字?相减,但不保存l果,只根据结果设|条件码,指o的其它特性和MOVS指o的规定相?
.SCAS 串扫描指?br>格式: SCAS DST
SCASB
SCASW
执行的操?
字节操作:(AL)-((DI)),(DI)<-(DI)+-1
字操? (AL)-((DI)),(DI)<-(DI)+-2
该指令把AL(或AX)的内容与?DI)指定的在附加D中的一个字?或字)q行比较,q不保存l果,只根据结果置条g?指o的其他特性和MOVS的规定相?
五、控制{UL?br> 1.无条件{UL?br>.JMP(jmp) 跌{指o
1)D内直接短{U?br>格式:JMP SHORT OPR
执行的操?(IP)<-(IP)+8位位U量
2)D内直接q{U?br>格式:JMP NEAR PTR OPR
执行的操?(IP)<-(IP)+16位位U量
3)D内间接转移
格式:JMP WORD PTR OPR
执行的操?(IP)<-(EA)
4)D间直接(q?转移
格式:JMP FAR PTR OPR
执行的操?(IP)<-OPR的段内偏Ud址
(CS)<-OPR所在段的段地址
5)D间间接转移
格式:JMP DWORD PTR OPR
执行的操?(IP)<-(EA)
(CS)<-(EA+2)
2.条g转移指o
1)Ҏ单个条g标志的设|情况{U?br>.JZ(或JE)(Jump if zero,or equal) l果为零(或相{?则{U?br>格式:JE(或JZ) OPR
试条g:ZF=1
.JNZ(或JNE)(Jump if not zero,or not equal) l果不ؓ?或不相等)则{U?br>格式:JNZ(或JNE) OPR
试条g:ZF=0
.JS(Jump if sign) l果则{U?br>格式: JS OPR
试条g:SF=1
.JNS(Jump if not sign) l果为正则{U?br>格式:JNS OPR
试条g:SF=0
.JO(Jump if overflow) 溢出则{U?br>格式: JO OPR
试条g:OF=1
.JNO(Jump if not overflow) 不溢出则转移
格式: JNO OPR
试条g:OF=0
.JP(或JPE)(Jump if parity,or parity even) 奇偶位ؓ1则{U?br>格式: JP OPR
试条g:PF=1
.JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位ؓ0则{U?br>格式: JNP(或JPO) OPR
试条g:PF=0
.JB(或JNAE,JC)(Jump if below,or not above or equal,or carry) 低于,或者不高于或等?或进位位?则{U?br>格式:JB(或JNAE,JC) OPR
试条g:CF=1
.JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry) 不低?或者高于或者等?或进位位?则{U?br>格式:JNB(或JAE,JNC) OPR
试条g:CF=0
2)比较两个无符h,q根据比较的l果转移
.JB(或JNAE,JC)
格式:同上
.JNB(或JAE,JNC)
格式:同上
.JBE(或JNA)(Jump if below or equal,or not above) 低于或等?或不高于则{U?br>格式:JBE(或JNA) OPR
试条g:CFVZF=1
.JNBE(或JA)(Jump if not below or equal,or above) 不低于或{于,或者高于则转移
格式:JNBE(或JA) OPR
试条g:CFVZF=0
3)比较两个带符h,q根据比较的l果转移
.JL(或LNGE)(Jump if less,or not greater or equal) 于,或者不大于或者等于则转移
格式:JL(或JNGE) OPR
试条g:SFVOF=1
.JNL(或JGE)(Jump if not less,or greater or equal)不小?或者大于或者等于则转移
格式:JNL(或JGE) OPR
试条g:SFVOF=0
.JLE(或JNG)(Jump if less or equal,or not greater) 于或等?或者不大于则{U?br>格式:JLE(或JNG) OPR
试条g:(SFVOF)VZF=1
.JNLE(或JG)(Jump if not less or equal,or greater) 不小于或{于,或者大于则转移
格式:JNLE(或JG) OPR
试条g:(SFVOF)VZF=0
4)试CX的gؓ0则{UL?br>.JCXZ(Jump if CX register is zero) CX寄存器的内容为零则{U?br>格式:JCXZ OPR
试条g:(CX)=0
?条g转移全ؓ8位短?
3.循环指o
.LOOP 循环指o
格式: LOOP OPR
试条g:(CX)<>0
.LOOPZ/LOOPE 当ؓ零或相等时@环指?br>格式: LOOPZ(或LOOPE) OPR
试条g:(CX)<>0且ZF=1
.LOOPNZ/LOOPNE 当不为零或不相等时@环指?br>格式: LOOPNZ(或LOOPNE) OPR
试条g:(CX)<>0且ZF=0
q三条指令的步骤?
1)(CX)<-(CX)-1
2)查是否满x试条?如满_(IP)<-(IP)+D8的符h?
4.子程?br>.CALL调用指o
.RETq回指o
5.中断
.INT指o
格式: INT TYPE
?nbsp; INT
执行的操?(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
(SP)<-(SP)-2
((SP)+1,(SP))<-(CS)
(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(TYPE*4)
(CS)<-(TYPE*4+2)
.INTO 若溢出则中断
执行的操?若OF=1?
(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
(SP)<-(SP)-2
((SP)+1,(SP))<-(CS)
(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(10H)
(CS)<-(12H)
.IRET 从中断返回指?br>格式: IRET
执行的操?(IP)<-((SP)+1,(SP))
(SP)<-(SP)+2
(CS)<-((SP)+1,(SP))
(SP)<-(SP)+2
(PSW)<-((SP)+1,(SP))
(SP)<-(SP)+2
六、处理机控制指o
1.标志处理指o
.CLCq位位置0指o(Clear carry)CF<-0
.CMCq位位求反指?Complement carry)CF<-CF
.STCq位位置1指o(Set carry)CF<-1
.CLD方向标志|?指o(Clear direction)DF<-0
.STD方向标志|?指o(Set direction)DF<-1
.CLI中断标志|?指o(Clear interrupt)IF<-0
.STI中断标志|?指o(Set interrupt)IF<-0
2.其他处理机控制指?br>NOP(No Opreation) 无操?br>HLT(Halt) 停机
WAIT(Wait) {待
ESC(Escape) 换码
LOCK(Lock) 锁
q些指o可以控制处理机状?q们都不影响条g?
.NOP 无操作指?br> 该指令不执行M操作,其机器码占有一个字?在调试程序时往往用这条指令占有一定的存储单元,以便在正式运行时用其他指令取?
.HLT停机指o
该指令可使机器暂停工?使处理机处于停机状态以便等待一ơ外部中断到?中断l束后可l箋执行下面的程?
.WAIT{待指o
该指令处理机处于空转状?它也可以用来{待外部中断的发?但中断结束后仍返回WAIT指ol箋徯.
.ESC换码指o
格式ESC mem
其中mem指出一个存储单?ESC指o把该存储单元的内定w到数据ȝ?当然ESC指o不允怋用立x和寄存器d方式.q条指o在用协处理?Coprocessor)执行某些操作?可从存储器指得指令或操作?协处理机(?087)则是Z提高速度而可以选配的硬?
.LOCK锁指o
该指令是一U前~,它可与其他指令联?用来l持ȝ的锁存信LC其联合的指o执行完ؓ?当CPU与其他处理机协同工作?该指令可避免破坏有用信息.
汇编指o大全
一、数据传输指?
───────────────────────────────────────
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数? 汇编指o大全
1. 通用数据传送指?
MOV 传送字或字?
MOVSX 先符h?再传?
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 交换字或字节.( 臛_有一个操作数为寄存器,D寄存器不可作ؓ操作?
CMPXCHG 比较q交换操作数.( W二个操作数必须为篏加器AL/AX/EAX )
XADD 先交换再累加.( l果在第一个操作数?)
XLAT 字节查表转换.
── BX 指向一?256 字节的表的v? AL 的烦引?(0-255,?-FFH); q回 AL 为查表结? ( [BX+AL]->AL )
2. 输入输出端口传送指?
IN I/O端口输入. ( 语法: IN 累加? {端口号│DX} )
OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加?)
输入输出端口qx式指定时, 其范围是 0-255; 由寄存器 DX 指定?
其范围是 0-65535.
3. 目的地址传送指?
LEA 装入有效地址.
? LEA DX,string ;把偏Ud址存到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 加法的十q制调整.
SUB 减法.
SBB 带借位减法.
DEC ?1.
NEC 求反(?0 减之).
CMP 比较.(两操作数作减?仅修Ҏ志位,不回送结?.
AAS 减法的ASCII码调?
DAS 减法的十q制调整.
MUL 无符号乘?
IMUL 整数乘法.
以上两条,l果回送AH和AL(字节q算),或DX和AX(字运?,
AAM 乘法的ASCII码调?
DIV 无符号除?
IDIV 整数除法.
以上两条,l果回?
商回送AL,余数回送AH, (字节q算);
?商回送AX,余数回送DX, (字运?.
AAD 除法的ASCII码调?
CBW 字节转换为字. (把AL中字节的W号扩展到AH中去)
CWD 字{换ؓ双字. (把AX中的字的W号扩展到DX中去)
CWDE 字{换ؓ双字. (把AX中的字符h展到EAX中去)
CDQ 双字扩展. (把EAX中的字的W号扩展到EDX中去)
三、逻辑q算指o
───────────────────────────────────────
AND 与运?
OR 或运?
XOR 异或q算.
NOT 取反.
TEST 试.(两操作数作与q算,仅修Ҏ志位,不回送结?.
SHL 逻辑左移.
SAL 术左移.(=SHL)
SHR 逻辑右移.
SAR 术右移.(=SHR)
ROL 循环左移.
ROR 循环右移.
RCL 通过q位的@环左U?
RCR 通过q位的@环右U?
以上八种UM指o,其移位次数可?55?
UM一ơ时, 可直接用操作? ?SHL AX,1.
UM>1ơ时, 则由寄存器CLl出UMơ数.
?MOV CL,04
SHL AX,CL
四、串指o
───────────────────────────────────────
DS:SI 源串D寄存器 :源串变址.
ES:DI 目标串段寄存?目标串变址.
CX 重复ơ数计数?
AL/AX 扫描?
D标志 0表示重复操作中SI和DI应自动增? 1表示应自动减?
Z标志 用来控制扫描或比较操作的l束.
MOVS 串传?
( MOVSB 传送字W? MOVSW 传送字. MOVSD 传送双? )
CMPS 串比?
( CMPSB 比较字符. CMPSW 比较? )
SCAS 串扫?
把AL或AX的内容与目标串作比较,比较l果反映在标志位.
LODS 装入?
把源串中的元?字或字节)逐一装入AL或AX?
( LODSB 传送字W? LODSW 传送字. LODSD 传送双? )
STOS 保存?
是LODS的逆过E?
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旉?
五、程序{UL?br>───────────────────────────────────────
1>无条件{UL?(长{U?
JMP 无条件{UL?
CALL q程调用
RET/RETFq程q回.
2>条g转移指o (短{U?-128?127的距d)
( 当且仅当(SF XOR OF)=1?OP1
JA/JNBE 不小于或不等于时转移.
JAE/JNB 大于或等于{U?
JB/JNAE 于转移.
JBE/JNA 于或等于{U?
以上四条,试无符h数运的l果(标志C和Z).
JG/JNLE 大于转移.
JGE/JNL 大于或等于{U?
JL/JNGE 于转移.
JLE/JNG 于或等于{U?
以上四条,试带符h数运的l果(标志S,O和Z).
JE/JZ {于转移.
JNE/JNZ 不等于时转移.
JC 有进位时转移.
JNC 无进位时转移.
JNO 不溢出时转移.
JNP/JPO 奇偶性ؓ奇数时{U?
JNS W号位ؓ "0" 时{U?
JO 溢出转移.
JP/JPE 奇偶性ؓ偶数时{U?
JS W号位ؓ "1" 时{U?
3>循环控制指o(短{U?
LOOP CX不ؓ零时循环.
LOOPE/LOOPZ CX不ؓ零且标志Z=1时@?
LOOPNE/LOOPNZ CX不ؓ零且标志Z=0时@?
JCXZ CX为零时{U?
JECXZ ECX为零时{U?
4>中断指o
INT 中断指o
INTO 溢出中断
IRET 中断q回
5>处理器控制指?
HLT 处理器暂? 直到出现中断或复位信hl箋.
WAIT 当芯片引UTEST为高电^时CPUq入{待状?
ESC 转换到外处理?
LOCK 锁ȝ.
NOP I操?
STC |进位标志位.
CLC 清进位标志位.
CMC q位标志取反.
STD |方向标志位.
CLD 清方向标志位.
STI |中断允怽.
CLI 清中断允怽.
六、伪指o
───────────────────────────────────────
DW 定义?2字节).
PROC 定义q程.
ENDP q程l束.
SEGMENT 定义D?
ASSUME 建立D寄存器d.
ENDS D늻?
END E序l束
本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/lqk1985/archive/2008/09/11/2911250.aspx