控制转移类型
| 类型 | 汇编指令格式 | 功 能 | 操作数说明 | 时钟周期数 | 字节数 |
|---|---|---|---|---|---|
| 控制转移类 | JMP SHORT op1 JMP NEAR PTR op1 JMP FAR PTR op1 JMP WORD PTR op1 JMP DWORD PTR op1 | 无条件转移 | reg mem | 15 15 15 11 18+EA 24+EA | 2 3 5 2 2 ~ 4 2 ~ 4 |
| JZ/JE op1 | ZF=1则转移 | 16/4 | 2 | ||
| JNZ/JNE op1 | ZF=0则转移 | 16/4 | 2 | ||
| JS op1 | SF=1则转移 | 16/4 | 2 | ||
| JNS op1 | SF=0则转移 | 16/4 | 2 | ||
| JP/JPE op1 | PF=1则转移 | 16/4 | 2 | ||
| JNP/JPO op1 | PF=0则转移 | 16/4 | 2 | ||
| JC op1 | CF=1则转移 | 16/4 | 2 | ||
| JNC op1 | CF=0则转移 | 16/4 | 2 | ||
| JO op1 | OF=1则转移 | 16/4 | 2 | ||
| JNO op1 | OF=0则转移 | 16/4 | 2 | ||
| JB/JNAE op1 | CF =1且 ZF=0则转移 | 16/4 | 2 | ||
| JNB/JAE op1 | CF =0或 ZF=1则转移 | 16/4 | 2 | ||
| JBE/JNA op1 | CF =1或 ZF=1则转移 | 16/4 | 2 | ||
| JNBE/JA op1 | CF =0且 ZF=0则转移 | 16/4 | 2 | ||
| JL/JNGE op1 | SF⊕OF=1则转移 | 16/4 | 2 | ||
| JNL/JGE op1 | SF⊕OF=0则转移 | 16/4 | 2 | ||
| JLE/JNG op1 | SF⊕OF=1或 ZF=1则转移 | 16/4 | 2 | ||
| JNLE/JG op1 | SF⊕OF=0且 ZF=0则转移 | 16/4 | 2 | ||
| JCXZ op1 | (CX) = 0 则转移 | 18/6 | 2 | ||
| LOOP op1 | (CX) ≠ 0 则循环 | 17/5 | 2 | ||
| LOOPZ/LOOPE op1 | (CX) ≠ 0且 ZF=1则循环 | 18/6 | 2 | ||
| LOOPNZ/LOOPNE op1 | (CX) ≠ 0且 ZF=0则循环 | 19/5 | 2 | ||
| CALL dst | 段内直接:(SP) ← (SP)-2 ((SP)+1, (SP)) ← (IP) (IP) ← (IP) + D16 段内间接:(SP) ← (SP)-2 ((SP)+1, (SP)) ← (IP) (IP) ← EA 段间直接:(SP) ← (SP)-2 ((SP)+1, (SP)) ← (CS) (SP) ← (SP)-2 ((SP)+1, (SP)) ← (IP) (IP) ← 目的偏移地址 (CS) ← 目的段基址 段间间接:(SP) ← (SP)-2 ((SP)+1, (SP)) ← (CS) (SP) ← (SP)-2 ((SP)+1, (SP)) ← (IP) (IP) ← (EA) (CS) ← (EA+2) | reg mem | 19 16 21+EA 28 37+EA | 3 2 2 ~ 4 5 2 ~ 4 | |
| RET | 段内:(IP) ← ((SP)+1, (SP)) (SP) ← (SP)+2 段间:(IP) ← ((SP)+1, (SP)) (SP) ← (SP)+2 (CS) ← ((SP)+1, (SP)) (SP) ← (SP)+2 | 16 24 | 1 1 | ||
| RET exp | 段内:(IP) ← ((SP)+1, (SP)) (SP) ← (SP)+2 (SP) ← (SP)+D16 段间:(IP) ← ((SP)+1, (SP)) (SP) ← (SP)+2 (CS) ← ((SP)+1, (SP)) (SP) ← (SP)+2 (SP) ← (SP)+D16 | 20 23 | 3 3 | ||
| INT N INT | (SP) ← (SP)-2 ((SP)+1, (SP)) ← (FR) (SP) ← (SP)-2 ((SP)+1, (SP)) ← (CS) (SP) ← (SP)-2 ((SP)+1, (SP)) ← (IP) (IP) ← (type * 4) (CS) ← (type * 4+2) | N≠3 (N=3) | 51 52 | 2 1 | |
| INTO | 若OF=1,则 (SP) ← (SP)-2 ((SP)+1, (SP)) ← (FR) (SP) ← (SP)-2 ((SP)+1, (SP)) ← (CS) (SP) ← (SP)-2 ((SP)+1, (SP)) ← (IP) (IP) ← (10H) (CS) ← (12H) | 53(OF=1) 4(OF=0) | 1 | ||
| IRET | (IP) ← ((SP)+1, (SP)) (SP) ← (SP)+2 (CS) ← ((SP)+1, (SP)) (SP) ← (SP)+2 (FR) ← ((SP)+1, (SP)) (SP) ← (SP)+2 | 24 | 1 |
本文详细解析了汇编语言中的控制转移指令,包括无条件转移、条件转移、循环控制及过程调用等,深入探讨了每种指令的功能、操作数、执行周期及字节数,为理解和应用汇编语言提供了全面的指导。
687

被折叠的 条评论
为什么被折叠?



