汇编语言(六)--分支结构程序

第六章、分支结构程序

6.1无条件转移指令

6.11.无条件转移指令(JMP)

(1) 指令汇编格式

JMP targ
eg: JMP NEXT(转向的程序段)

(2) 操作

(1)段内转移:IP <-目标的偏移地址
(2)段间转移:IP <-目标的偏移地址
           CS <-目标所处的代码段的段基址

(3)对标志位的影响

(4)说明

(1)JMP可转到内存中存放的任何程序段
(2)trag 可为 直接标号、寄存器间接寻址、存储器间接寻址

6.12.目标地址寻址方式

(1)段内直接转移方式

(1)直接即指令助记符后面是标号
(2)目标IP = 当前IP + 相对位移量(8bit/16bit)
eg:
JMP NEAR PTR 目标地址
目标地址范围(-32768~32767)
JMP SHORT 目标地址
目标地址范围(-128~127)

(2)段内间接转移方式

(3)段间直接转移方式

(4)段间间接转移方式

6.2条件转移指令

6.2.1 条件转移指令含义

(1)转移条件

状态标志位决定

(2)说明

(1)所有的条件转移指令都是相对转移形式的短转移指令(short)
(2)范围:在下条指令算起的-128~127字节的地址范围内转移

6.2.2 常见的单条件转移指令

标志位 指令格式 条件
CF JC/JB CF = 1
JNC CF = 0
ZF JZ/JE ZF = 1
JNZ ZF = 0
OF JO OF= 1
JNO OF = 0
SF JS SF = 1
JNS SF = 0
PF JP PF = 1
JNP PF = 0

6.2.3 基于两数之间大小关系转移的指令

种类 操作 指令 条件
无符号 大于 JA(Above) CFVZF = 0
大于等于 JAE CF = 0
小于 JB(Below) CF = 1
小于等于 JBE CFVZF = 1
带符号数 大于 JG(Great) (SFxorOF) V ZF = 0
大于等于 JGE SF xor OF = 0
小于 JL(Less) SF xor OF = 1
小于等于 JLE (SFxorOF) V ZF = 0
相等 等于 JE ZF = 1
不等于 JNE ZF = 0

带符号数判断条件的推导
(https://img2022.cnblogs.com/blog/2512134/202205/2512134-20220518203402302-463879567.png)

posted @   薛定谔的猫qaq  阅读(314)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示