【汇编】转移指令——offset 标号、jmp无条件转移,段内/段间转移区别、段内近转移/段内短转移、jcxz指令、loop指令
多种转移指令详解
- 9.1 转移 综述
- 9.2 offset 标号
- 9.3 jmp指令
- 段内/段间转移区别
- 段内短转移与近转移
- jmp小结
- 9.4 jcxz
- 9.5 loop
9.1 转移 综述
转移按转移行为分为段内转移和段间转移:
- 段内转移:只修改IP,jmp ax
- 段间转移:修改CS:IP,jmp,1000:0
转移按IP修改范围不同分为段内短转移和段内近转移: - 段内短转移:-128~127
- 段内近转移:-32768~32767
转移按转移指令不同分为: - 无条件转移指令:jmp
- 条件转移指令:jcxz
- 循环指令:loop
- 过程
- 中断
9.2 offset 标号
利用:如果不知道当前代码位置的偏移地址就可以在这段代码前加上标号,然后offset 标号,就会显示当前代码的偏移地址。
9.3 jmp指令
段内/段间转移区别
jmp命令对于段内
的转移并不是直接跳转到目标地址,而是包含着跳转到指令的相对位置。
例如:源IP=0003,jmp 0008的内存单元中存储的是EB05(内存单元数据)+0003(jmp下条指令的IP)=0008(目标转移地址)。
对于段间的转移
就是直接通过CS:IP的直接指定来进行跳转,直接跳转到目标地址。
段内短转移与近转移
jmp小结
9.4 jcxz
如果cx=0,则转移到标号执行,cx!=0,向下执行程序。
9.5 loop
loop也不是直接转移到目的地址而是用的包含着跳转到指令的相对位置。
用跳转到的地址减去loop指令的后一个地址,即0006-000A=-4,得0-4=FC。FC+0A=06
【汇编】转移指令——offset 标号、jmp无条件转移,段内/段间转移区别、段内近转移/段内短转移、jcxz指令、loop指令相关推荐
- 行内元素、块元素、行内块元素的区别
行内元素.块元素.行内块元素的区别 一.前言 1.行内元素 2.块元素 3.行内块元素 一.前言 HTML将元素分类方式分为行内元素.块元素和行内块元素三种.这三者是可以互相转换的,使用display ...
- 贺利坚老师汇编课程47笔记:jmp指令无条件转移只修改IP
指路老师的博客 JMP指令的功能 无条件转移,可以只修改IP,也可以同时修改CS和IP(段间转移) JMP指令要给出的信息 转移的目的地址 转移的距离 JMP 2000:1000;段间转移(远转移) ...
- 操作符offset 和 jmp指令
转移指令的原理 转移指令:可以修改IP或者同时修改CS和IP的指令(jmp.loop.call) 总的来说,转移指令就是可以控制CPU执行内存中某处代码的指令. 8086的转移行为有一下几类: 只修改 ...
- c语言中offset用法,offset的使用 汇编中OFFSET的用法和所指内容
offset在C语言中使用是什么意思啊?? 请教 Excel VBA Range.offset 的用法 Range.Offset 属性 返回 Range 对象,它代表位于指定单元格区域的一定的偏移量位 ...
- [BX] 和 loop 指令---汇编学习笔记
[BX] 和 loop 指令 [bx]和内存单元的描述 loop 我们定义的描述性的符号:"()","()"中的元素可以有3中类型:寄存器名.段寄存器名.内存单 ...
- 8086汇编学习之[BX],CX寄存器与loop指令,ES寄存器等
同类学习笔记总结: (一).8086汇编学习之基础知识.通用寄存器.CS/IP寄存器与Debug的使用 (二).8086汇编学习之DS寄存器.SS/SP寄存器 一.汇编程序的基本格式: 1.基本格式与 ...
- 汇编(六):[BX] 和 Loop 指令
文章目录 [bx] Loop指令 Debug 和汇编编译器 Masm 对指令的不同处理 loop 和 [bx] 的联合应用 段前缀 一段安全的空间 段前缀的使用 [bx] 1.[bx]是什么呢? 和[ ...
- 汇编: loop指令
assume cs:codecode segmentmov ax,2000Hmov ds,axmov bx,1000HaddNum: mov ds:[bx],dl # addNum是一个标识,存放的是 ...
- 【十五】 VVC/H.266 | 帧内帧间联合预测技术CIIP详解
文章目录 一.基本原理 二.具体技术细节 一.基本原理 CIIP是帧内帧间联合技术,这属于Merge系列技术的一个分支.该技术需要计算当前预测块的帧内预测值,即用传统的帧内预测模式去预测当前块的像素值 ...
最新文章
- 首个深度强化学习AI,能控制核聚变,成功登上《Nature》
- virtual keyboard
- 「镁客·请讲」全盛科技吕盛:将侦测、跟踪、识别、管控融于一体,做低空安全守卫者...
- demo python_GitHub - liutao910612/DEMO_Python
- hdu_1007_Quoit Design(最近点对)
- 网络编程: 基于UDP协议的socket
- iOS使用UIBezierPath实现ProgressView
- 【渝粤教育】电大中专Office办公软件 (2)作业 题库
- 用于将类型从double转换为int的C#程序
- python协程第一课(实现爬取自己博客)
- Mysql -update - Error Code: 1175. You are using safe update mode and you tried to update a table wit
- JAVA语法基础→数据转换、表达式、选择结构
- spring boot 多数据源分布式事务处理
- 高性能Mysql(第三版)
- 编程向未来---启程
- 锋迷商城spring-vue项目流程和笔记
- python遇到Segmentation fault (core dumped)调试方法
- 【“计算机科学与技术”专业小白成长系列】计算机科学与技术主要学什么?
- 360T7路由器进行WiFi无线中继教程
- iOS开发基础知识--碎片37
热门文章
- 「勿忘初心」TDD,Dont DDT
- 理知道:一款图书馆图书查询安卓应用
- JavaScript3
- 【论文理解】DQN:Playing Atari with Deep Reinforcement Learning
- 学计算机可以买轻薄本吗,2021大学生买电脑,容易犯的七种错误!游戏本和轻薄本买哪个?...
- Int8,Int16,Int32,Int64 有啥不同呢?看了立马就懂!
- 文件预览(.doc / .xls / .ppt / .pdf)
- PyTorch Live:5分钟制作人工智能app
- 《我不是药神》评论词云分析
- 小米官方良心出品,永久免费无广告!!