8086汇编 jmp 指令

8086 汇编 jmp 指令

功能:修改CS、IP的指令、可以通过改变CS、IP中的内容,来控制CPU要执行的目标指令。

背景:一般情况下指令是顺序地逐条执行的,而在实际中,常需要改变程序的执行流程。
转移指令,

  • 可以控制CPU执行内存中某处代码的指令
  • 可以修改IP,或同时修改CS和IP的指令

转移方式

jmp指令要给出两种信息:

  • 转移的目的地址
  • 转移的距离
    • 段间转移(远转移): jmp 2000:1000
    • 段内短转移: jmp short 标号 ; IP的修改范围为 -128~127,8位的位移
    • 段内近转移: jmp near ptr 标号 ; IP的修改范围为 -32768~32767,16位的位移

8086汇编 jmp 指令

远转移 far ptr

8086汇编 jmp 指令

短转移 short

短转移:”jmp short 标号”
功能:(IP)=(IP)+8位位移
原理
(1)8位位移=”标号”处的地址-jmp指令后的第一个字节的地址;
(2)short指明此处的位移为8位位移;
(3)8位位移的范围为-128~127,用补码表示;
(4)8位位移由编译程序在编译时算出

近转移 near ptr

近转移:指令”jmp near ptr 标号”
功能: (IP)=(IP)+16位位移
原理
(1)16位位移=”标号”处的地址-jmp指令后的第一个字节的地址;
(2)near ptr指明此处的位移为16位位移,进行的是段内近转移;
(3)16位位移的范围为 -32769~32767,用补码表示;
(4)16位位移由编译程序在编译时算出。

8086汇编 jmp 指令

转移内存单元地址

一、jmp word ptr

8086汇编 jmp 指令

二、jmp dword ptr

8086汇编 jmp 指令

案例

1、同时修改CS、IP的内容

; 功能:用指令中给出的段地址修改CS,偏移地址修改IP。
; 格式:jmp 段地址:偏移地址
jmp 2AE3:3

2、仅修改IP的内容

; 功能:用寄存器中的值修改IP
; jmp 某一合法寄存器
jmp ax (类似于 mov IP, ax)

3、代码中跳转行

; jmp 直接跳过 add ax,1 行到 inc ax
   mov ax,0
   jmp short s
   add ax, 1
s: inc ax

Original: https://www.cnblogs.com/xiangsikai/p/12467932.html
Author: kevin.Xiang
Title: 8086汇编 jmp 指令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554030/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • easyExcel入门使用

    1 easyExcel介绍 1) easyExcel官网介绍 传统操作Excel大多都是利用Apach POI进行操作的,但是POI框架并不完善,使用过程非常繁琐且有较多的缺陷: …

    技术杂谈 2023年7月10日
    068
  • Locust压测结果准确性验证

    最近闲着没事做,就重新研究了一下基于python语言的Locust性能测试框架 发现在压测的过程中,虽然设置了100并发,但是通过实际监控,完全看不到100并发压测的效果 通过代码…

    技术杂谈 2023年5月31日
    071
  • 系统集成

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    090
  • 我的极客时间专栏结课了!!!

    我的极客时间专栏结课了!!! 我的极客时间专栏结课了!!!太TMD不容易了。 今天下班到家的时候,收到了一份包裹,里面是极客时间送的结课礼物。是的,我的《手把手带你写一个web框架…

    技术杂谈 2023年6月1日
    067
  • 理解Compressed Sparse Column Format (CSC)

    最近在看《Spark for Data Science》这本书,阅读到《Machine Learning》这一节的时候被稀疏矩阵的存储格式CSC给弄的晕头转向的。所以专门写一篇文章…

    技术杂谈 2023年6月1日
    081
  • webssocket简介-服务器可以主动传送数据给浏览器

    WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以…

    技术杂谈 2023年5月31日
    093
  • JSP快速上手与MVC模式和三层架构的知识点总结+综合案例

    阅读提示: 说明 由于JSP实在是太 难读 难写 复杂 占资源 难调试 不分离 了,拉跨!(节目效果哈,勿喷),作为一种有(ji)更(hu)好(jiu)的(yao)上(bei)位(…

    技术杂谈 2023年7月24日
    0159
  • Python3中datetime不同时区转换介绍与踩坑

    最近的项目需要根据用户所属时区制定一些特定策略,学习、应用了若干python3的时区转换相关知识,这里整理一部分记录下来。 下面涉及的几个概念及知识点: GMT时间:Greenwi…

    技术杂谈 2023年6月21日
    063
  • 各种锁

    只作一个浅显的解释作为区分,具体深入还请搜索相关博客。 可重入锁(又叫递归锁) synchronized(隐式&a…

    技术杂谈 2023年7月25日
    082
  • Python爬取站长之家网页信息(附详细源码)

    一、实验目的 在信息时代高速发展的现在,”互联网+”的使用日趋zhanzhang过互联网学习知识,传递思想,沟通交流,在众多数据和用户的碰 撞中,互联网经济…

    技术杂谈 2023年6月21日
    093
  • JAVA第一课(Hello World)—-下载配置Java环境

    一、前期准备工作 1、下载Java(推荐下载JDK8) (1)百度搜索JDK8,找到下载地址(注册一下Oracle的账号就能直接下载) (2)配置环境 此电脑→属性 →高级系统设置…

    技术杂谈 2023年6月21日
    079
  • 深入理解独占锁ReentrantLock类锁

    ReentrantLock介绍 【1】ReentrantLock是一种基于AQS框架的应用实现,是JDK中的一种线程并发访问的同步手段,它的功能类似于synchronized是一种…

    技术杂谈 2023年7月23日
    060
  • 数据处理不等式:Data Processing Inequality

    我是在差分隐私下看到的,新解决方案的可用性肯定小于原有解决方案的可用性,也就是说信息的后续处理只会降低所拥有的信息量。 那么如果这么说的话为什么还要做特征工程呢,这是因为该不等式有…

    技术杂谈 2023年5月31日
    063
  • Spark学习(3)SparkSQL

    什么事sparkSQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用, 它是将Spark…

    技术杂谈 2023年7月24日
    072
  • css height属性中的calc方法

    例如父盒子是100%的高度 盒子里面的head部分固定位140px 内容部分始终为剩余的全部高度 height: calc(100% – 140px); “…

    技术杂谈 2023年7月24日
    063
  • 被迫开始学习Typescript —— class

    TS 的 class 看起来和 ES6 的 Class 有点像,基本上差别不大,除了 可以继承(实现)接口、私有成员、只读等之外。 参考:https://typescript.bo…

    技术杂谈 2023年5月31日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球