日常踩坑---ljmp在BIOS中的使用

news/2024/11/15 7:03:21/

在 x86 架构,ljmp 指令用于执行远跳转,该指令的操作数是一个远指针,由一个16位的段选择器和一个16位的偏移量组成,因此实模式下ljmp 指令的字节码长度是5个字节

  • 1个字节:操作码(opcode),对于 ljmp 指令,操作码是 EA
  • 第2个和第3个字节:16位的偏移量(offset),在内存中以小端序存储
  • 第4个和第5个字节:16位的段选择器(segment selector),在内存中也以小端序存储。
    然而,与16位实模式不同的是,在32位模式下,偏移量是32位的,而段选择器仍然是16位的。因此,在32位模式下,ljmp 指令的字节码长度是7个字节。

对于指令 ljmp $0x3630,$0xf000e05b,其字节码表示如下:

EA 5B E0 00 F0 30 36

在32位保护模式下,跳转后 IP=0xF000E05B, CS=0x3630 ;
但是BIOS是运行在实模式下的,只读取了五个字节IP= E05B,CS=0xF000,最终地址为CS:IP=0xFE05B


http://www.ppmy.cn/news/1501942.html

相关文章

ARM系列运行异常排查

一、断点指令BKPT BKPT指令产生软件断点中断,可用于程序的调试。它使处理器停止执行正常指令(使处理器中止预取指)而进入相应的调试程序。 BKPT指令的格式为:BKPT 16位的立即数 二、使用BKPT进行软件异常定位 假设异常发生后…

CentOS磁盘分区和挂载

记一次Linux上磁盘分区和挂载的日记。 #查看磁盘 [rootlocalhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 600M 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /b…

MySQL --- 表的操作

在对表进行操作时,需要先选定操作的表所在的数据库,即先执行 use 数据库名; 一、创建表 create table 表名( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎 ; 说明&#xff1a…

Spark实时(一):StructuredStreaming 介绍

文章目录 Structured Streaming 介绍 一、SparkStreaming实时数据处理痛点 1、复杂的编程模式 2、SparkStreaming处理实时数据只支持Processing Time 3、微批处理,延迟高 4、精准消费一次问题 二、StructuredStreaming架构与场景应用 三、​​​​​​​​​​​​​​…

SSCI 二区正刊 绿色金融、财政、经济、债务、成本、创新题目:

1金融科技能提升企业的双元创新能力吗?组织韧性xxxxx 2从财政分权到经济高质量发展:税收征管强度xxxxxxx 3企业智能化转型、债务融资成本与绿色xxxx 绿色金融改革能否促进地方经济高质量发展:基于绿色金融改革创新试验区的准xxxx 4绿色金融改…

笑谈“八股文”,人生不成文

一、“八股文”在实际工作中是助力、阻力还是空谈? 作为现在各类大中小企业面试程序员时的必问内容,“八股文”似乎是很重要的存在。但“八股文”是否能在实际工作中发挥它“敲门砖”应有的作用呢?有IT人士不禁发出疑问:程序员面试…

大语言模型-对比学习-Contrastive Learning

一、对比学习概念 对比学习是一种特殊的无监督学习方法。 旨在通过拉近相关样本的距离并且推远不相关样本的距离,来学习数据表示。 通常使用一种高自由度、自定义的规则来生成正负样本。在模型预训练中有着广泛的应用。 二、对比学习小案例 对比学习主要分为三个…

实现物理数据库迁移到云上

实现物理数据库迁移到云上 以下是一个PHP脚本&#xff0c;用于实现物理数据库迁移到云上的步骤&#xff1a; <?php// 评估和规划 $databaseSize "100GB"; $performanceRequirements "high"; $dataComplexity "medium";$cloudProvider &…