一、状态寄存器
PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
条件码:
①OF(Overflow Flag)溢出标志。溢出时为1,否则置0。
②SF(Sign Flag)符号标志。结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志。结果操作数中1的个数为偶数时置1,否则置0.
控制标志位:
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。
二、 直接标志转移(8位寻址) 指令格式 机器码 测试条件 如...则转移
指令格式 机器码 测试条件 如...则转移
JC 72 C=1 有进位 JNS 79 S=0 正号
JNC 73 C=0 无进位 JO 70 O=1 有溢出
JZ/JE 74 Z=1 零/等于 JNO 71 O=0 无溢出
JNZ/JNE 75 Z=0 不为零/不等于 JP/JPE 7A P=1 奇偶位为偶
JS 78 S=1 负号 JNP/IPO 7B P=0 奇偶位为奇
三、间接标志转移(8位寻址) 指令格式 机器码 测试格式 如...则转移
JA/JNBE(比较无符号数) 77 C或Z=0 > 高于/不低于或等于
JAE/JNB(比较无符号数) 73 C=0 >= 高于或等于/不低于
JB/JNAE(比较无符号数) 72 C=1 < 低于/不高于或等于
JBE/JNA(比较无符号数) 76 C或Z=1 <= 低于或等于/不高于
JG/JNLE(比较带符号数) 7F (S异或O)或Z=0 > 大于/不小于或等于
JGE/JNL(比较带符号数) 7D S异或O=0 >= 大于或等于/不小于
JL/JNGE(比较带符号数) 7C S异或O=1 < 小于/不大于或等于
JLE/JNG(比较带符号数) 7E (S异或O)或Z=1 <= 小于或等于/不大于
四、无条件转移指令(fisheep译 fisheep@sohu.com) 操作码 伪码指令 含义
EB cb JMP rel8 相对短跳转(8位),使rel8处的代码位下一条指令
E9 cw JMP rel16 相对跳转(16位),使rel16处的代码位下一条指令
FF /4 JMP r/m16 绝对跳转(16位),下一指令地址在r/m16中给出
FF /4 JMP r/m32 绝对跳转(32位),下一指令地址在r/m32中给出
EA cb JMP ptr16:16 远距离绝对跳转, 下一指令地址在操作数中
EA cb JMP ptr16:32 远距离绝对跳转, 下一指令地址在操作数中
FF /5 JMP m16:16 远距离绝对跳转, 下一指令地址在内存m16:16中
FF /5 JMP m16:32 远距离绝对跳转, 下一指令地址在内存m16:32中
五、16位/32位寻址方式(fisheep译 fisheep@sohu.com)
操作码 伪码指令 跳转含义 跳转类型 跳转的条件(标志位)
0F 87 cw/cd JA rel16/32 大于 near (CF=0 and ZF=0)
0F 83 cw/cd JAE rel16/32 大于等于 near (CF=0)
0F 82 cw/cd JB rel16/32 小于 near (CF=1)
0F 86 cw/cd JBE rel16/32 小于等于 near (CF=1 or ZF=1)
0F 82 cw/cd JC rel16/32 进位 near (CF=1)
0F 84 cw/cd JE rel16/32 等于 near (ZF=1)
0F 84 cw/cd JZ rel16/32 为0 near (ZF=1)
0F 8F cw/cd JG rel16/32 大于 near (ZF=0 and SF=OF)
0F 8D cw/cd JGE rel16/32 大于等于 near (SF=OF)
0F 8C cw/cd JL rel16/32 小于 near (SF<>OF)
0F 8E cw/cd JLE rel16/32 小于等于 near (ZF=1 or SF<>OF)
0F 86 cw/cd JNA rel16/32 不大于 near (CF=1 or ZF=1)
0F 82 cw/cd JNAE rel16/32 不大于等于 near (CF=1)
0F 83 cw/cd JNB rel16/32 不小于 near (CF=0)
0F 87 cw/cd JNBE rel16/32 不小于等于 near (CF=0 and ZF=0)
0F 83 cw/cd JNC rel16/32 不进位 near (CF=0)
0F 85 cw/cd JNE rel16/32 不等于 near (ZF=0)
0F 8E cw/cd JNG rel16/32 不大于 near (ZF=1 or SF<>OF)
0F 8C cw/cd JNGE rel16/32 不大于等于 near (SF<>OF)
0F 8D cw/cd JNL rel16/32 不小于 near (SF=OF)
0F 8F cw/cd JNLE rel16/32 不小于等于 near (ZF=0 and SF=OF)
0F 81 cw/cd JNO rel16/32 未溢出 near (OF=0)
0F 8B cw/cd JNP rel16/32 不是偶数 near (PF=0)
0F 89 cw/cd JNS rel16/32 非负数 near (SF=0)
0F 85 cw/cd JNZ rel16/32 非零(不等于) near (ZF=0)
0F 80 cw/cd JO rel16/32 溢出 near (OF=1)
0F 8A cw/cd JP rel16/32 偶数 near (PF=1)
0F 8A cw/cd JPE rel16/32 偶数 near (PF=1)
0F 8B cw/cd JPO rel16/32 奇数 near (PF=0)
0F 88 cw/cd JS rel16/32 负数 near (SF=1)
0F 84 cw/cd JZ rel16/32 为零(等于) near (ZF=1)
注:一些指令操作数的含义说明:
rel8 表示 8 位相对地址
rel16 表示 16 位相对地址
rel16/32 表示 16或32 位相对地址
r/m16 表示16位寄存器
r/m32 表示32位寄存器
分享到:
相关推荐
在8088汇编中,跳转指令是程序流程控制的关键部分,允许根据特定条件或者无条件地改变指令执行的顺序。本文将详细解释8088汇编中的跳转指令及其相关的程序状态字(PSW)标志。 1. 程序状态字(PSW): 程序状态字...
在“易语言源码易语言汇编跳转自身源码.rar”这个压缩包中,我们主要关注的是易语言的源码以及涉及到的汇编语言和程序的自我跳转技术。 易语言的源码是程序的基础,它是由程序员用易语言书写的指令集合,这些指令...
8088汇编语言包含了一系列基本的指令,如MOV(移动数据)、ADD(加法)、SUB(减法)、JMP(跳转)等。这些指令用于控制处理器执行特定的操作,比如读取和存储数据、执行算术运算、改变程序流程等。 程序设计中,...
在学习易语言汇编跳转到标记的源码时,你需要理解以下几个关键点: 1. **理解汇编指令**:熟悉汇编语言的基本指令,如JMP、JE、JNE等,以及它们在程序控制中的作用。 2. **掌握标记的使用**:了解如何在源码中定义...
关于汇编跳转指令 汇编语言中,跳转指令是控制程序流程的重要组成部分。跳转指令可以根据条件码标志位的状态来决定程序的执行方向。本文将详细讲解汇编语言中的跳转指令,包括状态寄存器PSW、直接标志转移、间接...
### 8088汇编语言指令集概览 8088微处理器是Intel公司推出的早期16位微处理器之一,它在个人计算机(PC)的发展史上扮演了重要角色。由于其架构上的特点,8088处理器的汇编语言编程在当时显得尤为关键。以下是对...
打开跳转图,再看汇编代码,诸多跳转容易多了
### 8088汇编语言基础与指令详解 8088处理器是Intel公司推出的一款8位外部数据总线的16位微处理器,它标志着个人计算机时代的开端。汇编语言作为直接与硬件交互的低级编程语言,对理解和控制8088处理器至关重要。...
8088汇编语言是早期个人计算机编程中不可或缺的一部分,尤其在IBM PC兼容机的早期发展中,8088处理器的汇编语言是程序员直接与硬件交互的主要工具。8088汇编速查手册提供了全面的指令集参考、语法规范以及实用技巧,...
### 8088汇编语言手册核心知识点详解 #### 一、数据移动指令 **1.1 MOV 指令** - **功能**: 将一个寄存器或内存位置的值复制到另一个寄存器或内存位置。 - **示例**: `MOV AX, BX` 将BX寄存器中的值复制到AX寄存器...
在易语言中,汇编跳转CALL源码是实现程序控制流程转移的一种重要技术,通常用于执行特定的函数或子程序。在本资源中,"易语言汇编跳转CALL源码"可能包含了一系列的易语言代码,用于演示或教学如何在易语言环境中使用...
在易语言中,我们可以使用汇编语言进行低级操作,比如实现“汇编跳转自身”的功能。这种技术通常用于优化代码执行效率或者实现一些特定的程序结构。 “汇编跳转自身”是指在程序执行过程中,通过汇编指令使得程序...
汇编跳转指令大全,jc,jg,jz,jp,jl
易语言源码易语言汇编跳转CALL源码.rar 易语言源码易语言汇编跳转CALL源码.rar 易语言源码易语言汇编跳转CALL源码.rar 易语言源码易语言汇编跳转CALL源码.rar 易语言源码易语言汇编跳转CALL源码.rar 易语言源码...
8086/8088汇编语言是微处理器技术中的基础知识,广泛应用于早期的计算机系统和嵌入式设计。这份"8086/8088汇编使用手册"涵盖了汇编语言编程的核心内容,特别是非伪指令的详细讲解。非伪指令是直接被CPU理解和执行的...
总结了各类条件跳转指令所需要的各个不同的标志寄存器
易语言源码易语言汇编跳转到标记源码.rar 易语言源码易语言汇编跳转到标记源码.rar 易语言源码易语言汇编跳转到标记源码.rar 易语言源码易语言汇编跳转到标记源码.rar 易语言源码易语言汇编跳转到标记源码.rar ...