本博文是对原书8.3.10的内容的总结。

一、相对短转移

指令格式是:

jmp short 标号

标号也可以替换成具体的数值(标号和数值是等价的),例如

jmp short 0x2000

说明:

(1)该指令属于段内转移指令,而且只允许转移到距离当前指令-128~127字节的地方。

(2)指令的功能是:(IP) = (IP)+8位位移量(范围是-127~128,用补码表示)

(3)short指明此处的位移为8位

(4)8位位移=标号处的地址-jmp指令后的第一个字节的地址;8位位移由编译器在编译时算出;

二、16位相对近转移

指令格式是:

jmp near 标号

同理,标号也可以是具体的数值,如

jmp near 0x3200

说明:

(1)该指令属于段内转移,转移范围是-32768~32767

(2)指令的功能是:(IP)= (IP)+16位位移量(范围是-32768~32767,用补码表示)

(3)near指明此处的位移为16位

(4)16位位移=标号处的地址-jmp指令后的第一个字节的地址;16位位移由编译器在编译时算出;

注意:如果没有指定关键字是near或者short,那么NASM编译器会根据目标位置距离当前指令的位移量自动选择near(范围在-127~128内)或者short(范围在-127~128外,但是在-32768~32767内)。

三、16位间接绝对近转移

指令格式为:

jmp (near)  r16/m16

说明:

(1)这种转移也是段内转移,但是转移的目标不是在指令中直接给出,而是由一个16位的通用寄存器或者内存地址间接给出

(2)near关键字可以省略

(3)执行时,处理器将用16位通用寄存器的值或内存中的那个字取代IP寄存器的内容。

四、16位直接绝对远转移

指令格式为:

jmp 段地址:偏移地址

说明:

(1)属于段间转移

(2)执行时,处理器用段地址的内容取代CS的值,用偏移地址(也可以是标号)取代IP的值

五、16位直接绝对远转移

指令格式为:

jmp far m32

说明:

(1)关键字far是必须的

(2)操作数是一个内存地址,内存地址处存放着2个字,低字是偏移地址,高字是段地址

(3)执行时,处理器根据内存地址找到偏移地址和段地址,分别用来代替IP和CS的内容

(完)

8086处理器的无条件转移指令——《x86汇编语言:从实模式到保护模式》读书笔记13相关推荐

  1. 程序的加载和执行(一)——《x86汇编语言:从实模式到保护模式》读书笔记21

    程序的加载和执行(一) 本文及之后的几篇博文是原书第13章的学习笔记. 本章主要是学习一个例子,对应的代码分为3个文件: ;代码清单13-1;文件名:c13_mbr.asm;文件说明:硬盘主引导扇区代 ...

  2. 进入保护模式(二)——《x86汇编语言:从实模式到保护模式》读书笔记14

    首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便.所以从现在起,我要给代码加上行号.我写博客用的这个插入代码的插件,确实不支持自动插入行号.我真的没有找到什么好方法,无奈之下,只能按照 ...

  3. 李忠 X86汇编语言 从实模式到保护模式-初学

    学习资料: 教学视频 网易云课堂 哔哩哔哩 原书网站 原书相关源码附件下载 网友帖子 除了后面没有图片之外很不错的笔记总结,写者很用心 留存待看,一片文章写了特点 很有特色总结的笔记 学习目标: 15 ...

  4. x86汇编语言从实模式百度云_x86汇编语言:从实模式到保护模式

    x86汇编语言:从实模式到保护模式2013年1月由电子工业出版社出版发行,总共6000行的源代码,全方位地向读者展现汇编语言程序设计之美.尽管汇编语言也是一种计算机语言,但却是与众不同的,与它的同类们 ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构

    ★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...

  6. 处理器在实施任务切换时的操作——《x86汇编语言:从实模式到保护模式》读书笔记39

    处理器在实施任务切换时的操作--<x86汇编语言:从实模式到保护模式>读书笔记39 处理器可以通过以下四种方法实施任务切换: 1. call指令或者jmp指令的操作数是GDT内的某个TSS ...

  7. 32位x86处理器编程导入——《x86汇编语言:从实模式到保护模式》读书笔记08

    在说正题之前,我们先看2个概念. 1.指令集架构(ISA) ISA 的全称是 instruction set architecture,中文就是指令集架构,是指对程序员实际"可见" ...

  8. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  9. 任务切换的方法——《x86汇编语言:从实模式到保护模式》读书笔记37

    任务切换的方法--<x86汇编语言:从实模式到保护模式>读书笔记37 1. 中断门和陷阱门 在实模式下,内存最低端的1M是中断向量表,保存着256个中断处理过程的段地址和偏移.当中断发生时 ...

最新文章

  1. 一个java处理JSON格式数据的通用类(四)
  2. HDOJ-1181 字符串首尾相连问题[DFS()+strcmp()]
  3. 小便利——免密钥简单写法
  4. 小白开学Asp.Net Core 《五》
  5. 大数据场景下Volcano高效调度能力实践
  6. Scrapy爬虫笔记
  7. JavaScript中注册时间处理程序的方式
  8. 听说面试很少有人答出:距离最近点对问题
  9. 1.3万亿条数据查询毫秒级响应,如何做到的?
  10. 计算机新安装系统后桌面上有什么图标,手把手教你全新安装完win10系统后如何设置显示桌面图标-系统操作与应用 -亦是美网络...
  11. PDCN循环 与 GTD时间管理
  12. 占用内存最小linux,Linux系统排查1—内存篇
  13. Ubuntu 查看硬盘容量
  14. android 动态磁贴,善用动态磁贴和Xbox游戏
  15. html5 手机uc浏览器 复制链接,清除UC手机浏览器强制在页面中加入的关键词链接...
  16. Sqlite日期查询
  17. STM32MP157系统移植(TF-A,U-Boot,Linux)
  18. 问:全局变量是否可以定义在被多个.c文件包含的头文件.h中?
  19. 小米5S TWRP刷面具、EdXposed
  20. C2_W1_Lab01_Neurons_and_Layers

热门文章

  1. 思想实验(逻辑思维)解题
  2. Surviving the Release Version
  3. 用C/C++扩展你的PHP
  4. [导入]MsAjax Lib- Array.remove 函数
  5. tf.nn.in_top_k的用法
  6. Markdown:数学公式(4)
  7. ubuntu安裝opencv3.4.1
  8. 10.4.4 使用ctypes调用kernel32.dll中的函数
  9. [云炬创业基础笔记]第二章创业者测试8
  10. USTC English Club Note20171012(4)