8086处理器的无条件转移指令——《x86汇编语言:从实模式到保护模式》读书笔记13
本博文是对原书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的更多相关文章
- 进入保护模式(二)——《x86汇编语言:从实模式到保护模式》读书笔记14
首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便.所以从现在起,我要给代码加上行号.我写博客用的这个插入代码的插件,确实不支持自动插入行号.我真的没有找到什么好方法,无奈之下,只能按照 ...
- ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构
★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...
- 32位x86处理器编程导入——《x86汇编语言:从实模式到保护模式》读书笔记08
在说正题之前,我们先看2个概念. 1.指令集架构(ISA) ISA 的全称是 instruction set architecture,中文就是指令集架构,是指对程序员实际"可见" ...
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- ASM:《X86汇编语言-从实模式到保护模式》第11章:进入保护模式
★PART1:进入保护模式 1. 全局描述符表(Global Descriptor Table,GDT) 32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的 ...
- 存储器的保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记18
本文是原书第12章的学习笔记. 说句题外话,这篇博文是补写的,因为让我误删了,可恶的是CSDN的回收站里找不到! 好吧,那就再写一遍,我有坚强的意志.司马迁曰:“文王拘而演<周易>:仲尼厄 ...
- 存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20
存储器的保护(三) 修改本章代码清单,使之可以检测1MB以上的内存空间(从地址0x0010_0000开始,不考虑高速缓存的影响).要求:对内存的读写按双字的长度进行,并在检测的同时显示已检测的内存数量 ...
- 进入保护模式(三)——《x86汇编语言:从实模式到保护模式》读书笔记17
(十)保护模式下的栈 ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 mov cx,00000000000_11_000B ;加载堆栈段选择子 mov ss,cx mov esp,0x7c00 ...
- 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15
一.80286的工作模式 80286首次提出了实模式和保护模式的概念. 实模式:和8086的工作方式相同: 保护模式:提供了存储器管理机制和保护机制,支持多任务. 二.80286的寄存器 (一)通用寄 ...
随机推荐
- PMBOK项目管理思维导图梳理
采用思维导图的形式来展示项目管理的五大过程组.九大知识领域,能更好的展示框架结构,便于理解.分析. 下图为思维导图化制的项目管理要素:灰色为启动过程组.白色为规划过程组.紫色为执行过程组.蓝色为监控过 ...
- 在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数)
//在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数) function formatNum(num ...
- 使用SQL Delta.v5.1.1.98.破解版同步数据结构
概述 本篇文章主要介绍SQL DELTA的简单使用.为了能够更加明了的说明其功能,本文将通过实际项目中的案例加以介绍. 1. SQLDELTA简介 SQLDELTA是一款便捷实用的数据库管理工具.使用 ...
- oracle数据库中将clob字段内容利用java提取出至文本文档中
代码段: 1.执行clob转String public static String ClobToString(Clob sc) throws SQLException, IOException { S ...
- 贪心——Prim算法(避圈法)
1.简介 Prim算法是图论中的一种算法,可在带权连通图里搜索产生最小生成树. 该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(Vojtěch Jarník)发现:并在1957年由美国计算机科学家罗 ...
- “全栈2019”Java第六十章:如何定义接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Ionic2实战——按模块划分app 创建多module
http://www.jianshu.com/p/d94324b722af 背景 用ionic2开发过一两个小功能的朋友都会发现,每新建一个页面都需要在\src\app\app.module.ts中添 ...
- UITabBarController的属性
viewControllers UIViewController的数组,即要显示的VC,数组中VC的顺序即是实际展示的VC的顺序.UITabBarController最多展示5个tab,如果数组中的元 ...
- [译文]casperjs的API-colorizer模块
colorizer模块包含了一个Colorizer类,它能够生成一个标准化的颜色字符串: var colorizer = require('colorizer').create('Colorizer' ...
- flink学习笔记:DataSream API
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...