多种转移指令详解

  • 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. 行内元素、块元素、行内块元素的区别

    行内元素.块元素.行内块元素的区别 一.前言 1.行内元素 2.块元素 3.行内块元素 一.前言 HTML将元素分类方式分为行内元素.块元素和行内块元素三种.这三者是可以互相转换的,使用display ...

  2. 贺利坚老师汇编课程47笔记:jmp指令无条件转移只修改IP

    指路老师的博客 JMP指令的功能 无条件转移,可以只修改IP,也可以同时修改CS和IP(段间转移) JMP指令要给出的信息 转移的目的地址 转移的距离 JMP 2000:1000;段间转移(远转移) ...

  3. 操作符offset 和 jmp指令

    转移指令的原理 转移指令:可以修改IP或者同时修改CS和IP的指令(jmp.loop.call) 总的来说,转移指令就是可以控制CPU执行内存中某处代码的指令. 8086的转移行为有一下几类: 只修改 ...

  4. c语言中offset用法,offset的使用 汇编中OFFSET的用法和所指内容

    offset在C语言中使用是什么意思啊?? 请教 Excel VBA Range.offset 的用法 Range.Offset 属性 返回 Range 对象,它代表位于指定单元格区域的一定的偏移量位 ...

  5. [BX] 和 loop 指令---汇编学习笔记

    [BX] 和 loop 指令 [bx]和内存单元的描述 loop 我们定义的描述性的符号:"()","()"中的元素可以有3中类型:寄存器名.段寄存器名.内存单 ...

  6. 8086汇编学习之[BX],CX寄存器与loop指令,ES寄存器等

    同类学习笔记总结: (一).8086汇编学习之基础知识.通用寄存器.CS/IP寄存器与Debug的使用 (二).8086汇编学习之DS寄存器.SS/SP寄存器 一.汇编程序的基本格式: 1.基本格式与 ...

  7. 汇编(六):[BX] 和 Loop 指令

    文章目录 [bx] Loop指令 Debug 和汇编编译器 Masm 对指令的不同处理 loop 和 [bx] 的联合应用 段前缀 一段安全的空间 段前缀的使用 [bx] 1.[bx]是什么呢? 和[ ...

  8. 汇编: loop指令

    assume cs:codecode segmentmov ax,2000Hmov ds,axmov bx,1000HaddNum: mov ds:[bx],dl # addNum是一个标识,存放的是 ...

  9. 【十五】 VVC/H.266 | 帧内帧间联合预测技术CIIP详解

    文章目录 一.基本原理 二.具体技术细节 一.基本原理 CIIP是帧内帧间联合技术,这属于Merge系列技术的一个分支.该技术需要计算当前预测块的帧内预测值,即用传统的帧内预测模式去预测当前块的像素值 ...

最新文章

  1. 首个深度强化学习AI,能控制核聚变,成功登上《Nature》
  2. virtual keyboard
  3. 「镁客·请讲」全盛科技吕盛:将侦测、跟踪、识别、管控融于一体,做低空安全守卫者...
  4. demo python_GitHub - liutao910612/DEMO_Python
  5. hdu_1007_Quoit Design(最近点对)
  6. 网络编程: 基于UDP协议的socket
  7. iOS使用UIBezierPath实现ProgressView
  8. 【渝粤教育】电大中专Office办公软件 (2)作业 题库
  9. 用于将类型从double转换为int的C#程序
  10. python协程第一课(实现爬取自己博客)
  11. Mysql -update - Error Code: 1175. You are using safe update mode and you tried to update a table wit
  12. JAVA语法基础→数据转换、表达式、选择结构
  13. spring boot 多数据源分布式事务处理
  14. 高性能Mysql(第三版)
  15. 编程向未来---启程
  16. 锋迷商城spring-vue项目流程和笔记
  17. python遇到Segmentation fault (core dumped)调试方法
  18. 【“计算机科学与技术”专业小白成长系列】计算机科学与技术主要学什么?
  19. 360T7路由器进行WiFi无线中继教程
  20. iOS开发基础知识--碎片37

热门文章

  1. 「勿忘初心」TDD,Dont DDT
  2. 理知道:一款图书馆图书查询安卓应用
  3. JavaScript3
  4. 【论文理解】DQN:Playing Atari with Deep Reinforcement Learning
  5. 学计算机可以买轻薄本吗,2021大学生买电脑,容易犯的七种错误!游戏本和轻薄本买哪个?...
  6. Int8,Int16,Int32,Int64 有啥不同呢?看了立马就懂!
  7. 文件预览(.doc / .xls / .ppt / .pdf)
  8. PyTorch Live:5分钟制作人工智能app
  9. 《我不是药神》评论词云分析
  10. 小米官方良心出品,永久免费无广告!!