- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
伙计们,这是一个难以解决的问题,因为它涉及很多硬件细节,所以我想把它放到 EE.SE,但它的主要重点是编程,所以我决定坚持在这里。
我最近怀旧(以及渴望回到 CPU 内在函数),所以我决定自制一个 8086 微型计算机板。假设我熟悉 x86 汇编(在某种程度上,正如您将看到的)并且我已经知道如何将我的代码放到计算机板上,让我们来解决实际问题。出于了解的目的,我正在使用 NASM,尽管我还没有完全了解其语法。
显然,工作在 The Mode(实模式还没有被称为实模式)的 8086 在开始时将前 1,024 个字节分开用于 255 个 2+2 字节中断向量,因此实际指令列表从 0x3FF
开始。 .
这里的问题是因为系统内存分段的怪癖,以及我可能正在编写一个 BIOS,从系统的角度来看。是否必须设置段寄存器,如果是,我如何确定在那里放置什么?假设我使用 EEPROM 或某种形式的闪存来存储我的代码,所以我有这样的东西:
section .text
org 0x0000
; Interrupt vectors reserved
ivt: times 1024 db 0
main:
cli ; Clear out interrupts because no addresses are defined yet
; Problems HERE.
; Set up interrupt addresses
mov CS, blahblahblah
,如果是这样,我如何确定代码体中不同段/节出现的地址?
最佳答案
8086 使用一种非常简单的形式分段,其中每个内存引用都基于四个分段寄存器之一,CS
, DS
, SS
, 或 ES
.这意味着无论在指令中是否明确,每次内存访问都会使用分段。为了解析内存引用,CPU 将适当段寄存器中的值乘以 16,并将其添加到 16 位偏移量,给出 20 位物理地址。这就是现代英特尔处理器中所谓的实模式分段。CS
register 确定代码段的基址。所有指令提取都在该段中完成,位于 IP
提供的偏移量处。登记。正如内森·费尔曼 (Nathan Fellman) 的回答所指出的那样 CS:IP
已加载 FFFF:0000
在处理器初始化期间,给出一个声明的物理地址 FFFF0h
,所以你需要在这个地址有一个 EEPROM 或其他东西。正如您的问题所指出的,您可能还需要在中断向量表的物理地址空间的开头使用一些表单内存。
您在哪里找到其他任何东西取决于您。您需要加载 DS
注册以便它指向要存储大部分数据的位置,因为大多数内存操作数默认使用此段。您可能还需要一个堆栈,因此您还需要加载 SS
(和 SP
)具有合适的值。您可以将相同的值加载到 SS
如 DS
如果你想。 ES
register 不需要加载任何特定值,因为只有少数指令隐式使用它( MOVS
、 SCAS
、 CMPS
)。您可能希望它可以自由地用作“额外的”暂存段寄存器来访问除 CS
引用的内存区域之外的内存区域。 , DS
, 或 SS
.
请注意,假设您有一个真正的 Intel 8086 或 80186 处理器。如果您实际上有一个 80286 或更高版本的处理器,您只想在实模式下使用,那么起始地址将有所不同。如果您有某种克隆 8086 处理器,您应该查阅它的数据表,看看它是否也有任何不同之处。
关于assembly - 8086 无操作系统编程;分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27647014/
实际上我只需要用JAVA编写一个简单的程序来将MySQL INSERTS行转换为CSV文件(每个mysql表等于一个CSV文件) 在JAVA中使用正则表达式是最好的解决方案吗? 我的主要问题是如何正确
我有一个 txt 文件,其格式为: Key:value Key:value Key:value ... 我想将所有键及其值放入我创建的 hashMap 中。如何让 FileReader(file) 或
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我每周都会从我的主机下载数据库的备份。它生成一个 .sql 文件,当前大小约为 800mb。此 .sql 文件包含 44 个表。 有什么方法可以通过某些软件将 .sql 文件与所有表分开,以便单独导出
在 iOS 4.0 及更高版本中,有没有一种方法可以在不将整个图像加载到内存的情况下对 CGImage 进行分割?我试图做的是*以编程方式*分割图像,以便在使用大图像的 CATiledLayer 应用
我的 .split() 函数有问题,我有以下字符串: var imageUrl = "Images\Products\randomImage.jpg"; 我想用字符“\”分割,但是,这种情况发生了:
是否可以使用正则表达式将字符串拆分两次?例如,假设我有字符串: example=email@address.com|fname|lname 如何拆分结果为: email@address.com,fna
我正在寻找一种在线程系统(主从)中使用数组的解决方案,它允许我通过用户输入在多个线程上划分矩阵的计算,并将其通过 1 个主线程引导到多个从属线程,这些从属线程计算矩阵的 1 个字段。 我尝试运用我的知
我建立了一个系统来分割包含手写符号的二值图像并对它们进行分类(专门用于音乐)。我知道有商业应用程序可以执行此操作,但这是我尝试将其作为一个项目从头开始。 为了简单起见,假设我的整个图像中有两个元素:
我正在尝试找到一种可接受的复杂性的有效方法 检测图像中的对象,以便将其与周围环境隔离 将该对象分割成它的子部分并标记它们,这样我就可以随意获取它们 我进入图像处理世界已经 3 周了,我已经阅读了很多算
我有一组3D 空间中的点。下图是一个示例: 我想把这些点变成一个面。我只知道点的 X、Y 和 Z 值。例如,查看下图,它显示了从 3D 空间中的点生成的人脸网格。 我在谷歌上搜索了很多,但我找到的是一
我有一个字符串 String placeStr="place1*place2*place3"我想获取包含 place1、place2、place3 的数组,如下所示: String[] places=
我在 Python 中有一个类似于 google.com 的字符串,我想将其分成两部分:google 和 .com。问题是我有一个 URL,例如 subdomain.google.com,我想将其拆分
朋友需要对一个pdf文件进行分割,在网上查了查发现这个pypdf2可以完成这些操作,所以就研究了下这个库,并做一些记录。首先pypdf2是python3版本的,在之前的2版本有一个对应pypdf库。
伙计们,这是一个难以解决的问题,因为它涉及很多硬件细节,所以我想把它放到 EE.SE,但它的主要重点是编程,所以我决定坚持在这里。 我最近怀旧(以及渴望回到 CPU 内在函数),所以我决定自制一个 8
给定 haskell 中的排序列表,我如何获得分段列表,其中连续数字位于同一列表中。例如,如果我有一个排序列表 [1,2,3,4,7,8,10,12,13,15] 结果将是 [[1,2,3 ,4],[
如果我添加三个分割 View ,如下图所示,第三个分割 View (称为 splitView-3)将自动为该分割 View 中的自定义 View 生成约束,例如 customview1 的 Heigh
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
如何为馈送给映射器的文件的每一行提供相同文件的拆分? 基本上我想做的是 for each line in file-split { for each line in file{
带有Snappy压缩功能的ORC文件是否可拆分成条形? 据我所知,Snappy Compressed File是不可拆分的。 但我在博客中读到,快速压缩的文件可以在 strip 上拆分。 真的吗? 最
我是一名优秀的程序员,十分优秀!