问题标签 [addressing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

assembly - 基于转换的索引模式到间接寻址模式(x86 汇编)

我在 Ubuntu 上使用 x86 AT&T 程序集。

我需要将任何复杂的间接寻址模式(例如基于索引的模式)重写为简单的间接寻址模式。

例如,拿这个片段:

我认为该行movb %dl, dict(%eax)是基于索引寻址的。它的作用是获取dict+%eax并取消引用它,然后%dl放入其中,对吗?

现在我这样写它是为了使它成为简单的间接寻址:

如您所见,我首先添加dict并将%eax结果放入其中%eax。然后在下一行我只是取消引用结果。

这应该与上述相同,对吧?

它也可以编译,但是在运行它时,我的新movb行出现分段错误。

为什么这不起作用?

0 投票
2 回答
6452 浏览

64-bit - 寄存器大小如何影响处理器性能?

我今天一直在互联网上飞来飞去,试图围绕这个话题。所以这就是我到目前为止所理解的。那么寄存器大小越大,处理器可以处理的指令就越大?

引用:

寄存器的大小(有时称为字长)表示计算机在任何给定时间可以处理的数据量。

问题 1:
在处理 RAM 方面如何解释?在这种情况下,为什么 32 位处理器在处理信息方面不那么熟练或更慢?

此外,术语寻址。因此,虽然 64 位处理器可以“寻址” RAM 中的 2^64 个不同位置,但 32 位处理器只能处理 2^32。

问题2:
寻址是什么意思?为什么地址更多位置的能力会更有帮助?

问题 3:
这 2 点如何,1)可寻址位置的数量和 2)指令大小,相关?

我希望我的问题不会令人困惑。如果在解释中给出对 RAM 的引用和示例以及 32 位和 64 位之间的比较,那就太好了。

0 投票
1 回答
1184 浏览

architecture - 间接寻址方式

我目前正在尝试解决给定以下标准的问题:

我相信我的一些答案是正确的,但我很困惑,因为这个问题没有提到存储在地址 10 的地址,那么间接寻址怎么会发生呢?

问题:给定以下寻址模式,对应的操作数在哪里?

假设一条指令的地址字段包含十进制 10。给定以下寻址模式,对应的操作数在哪里?

  1. 立即寻址:操作数 - 10
  2. 直接寻址:操作数 - 10 -> 地址
  3. 间接寻址:10 -> 地址 -> 地址
  4. 寄存器寻址:
  5. 寄存器间接寻址:

有人可以帮帮我吗?

这是我正在使用的图表: 在此处输入图像描述

更新地点:

  • 立即寻址:对应的操作数位于给定内存的地址字段中。在所有情况下,操作数只是给定内存位置的地址字段中的值。所以在这种情况下,操作数的值为 10。

  • 直接寻址:在直接寻址中,地址字段包含操作数的地址。因此,相应的操作数将是存储在内存地址 10 的操作数的任何内容。

  • 间接寻址:在间接寻址中,内存地址 10 的内容是操作数的地址。因此,位置 10 的地址字段包含指向在其地址字段中保存操作数的位置的地址。

  • 寄存器寻址:在寄存器寻址中,存储器位置 10 的地址字段保存一个寄存器地址,而不是另一个存储器地址。相应的操作数在寄存器的内容中找到。

  • 寄存器间接寻址:寄存器间接寻址与寄存器寻址非常相似,因为内存位置 10 也保存了指向包含其操作数的位置的地址;不同之处在于地址可以是寄存器或内存位置。

0 投票
0 回答
476 浏览

assembly - NASM 堆栈寻址示例

我目前正在尝试了解 NASM 使用的寻址模式的类型,但我了解其中的大部分,例如直接、立即、间接;我不确定堆栈寻址的示例是什么。

我认为堆栈是指某种二维数组,因此 NASM 代码示例可能类似于:

我相信上面的代码将获取数组的基地址(堆栈的顶部)并将值 1 插入到前 32 位中。

这是真的吗,还有其他堆栈寻址的例子吗?

谢谢!

0 投票
2 回答
557 浏览

assembly - Transformation of based indexed mode into indirect addressing mode (x86 assembly)

I'm corrently working on changing examples from complex indirect addresssing mode into simple indirect addressing mode pieces. However, I've come across an example from the Based Mode, I'm unable to "transform".

Code:

I've tried

This creates a segmentation fault; and I've no idea how else I should write it.

Another example, I've failed to "transform is

-> into

However this is working, but it changes my output slightly, so it might not be correct as well.

0 投票
1 回答
132 浏览

assembly - “CMPL” -> 基于模式进入间接寻址模式

所以我正在处理这个文件。我必须将复杂寻址模式转换为简单寻址模式。

我已经做到了

进入

工作得很好,适用于所有情况。

但是我不能做同样的事情

我知道比较与移动不同。但是有谁知道最后一行的简单版本会是什么样子?提前谢谢

0 投票
1 回答
1753 浏览

caching - 缓存计算块偏移和索引

我已经阅读了几个关于这个主题的主题,但我无法得到答案。所以我的问题是:

1)如何计算块偏移量?

我想知道的不是公式,而是它的概念。据我所知,一个块可以存储地址的案例数量。例如,如果有一个具有 8 字节存储空间的块,并且必须存储 2 字节地址。它的块偏移量是 2 位吗?(所以有 4 种情况来存储地址(下图可能更容易看出我在说什么)。

在此处输入图像描述

0 投票
1 回答
426 浏览

assembly - Yasm 和 MSVC 2013 链接器:Win64 上的 RIP

我正在阅读“Linux 的 64 位英特尔汇编语言编程简介”并出于学习原因使用 Yasm 和 MS Visual Studio 2013 将代码移植到 Windows。在第 7 章,有一个 switch 的例子:

我从链接器得到:

但是,我试图弄清楚发生了什么,并且我知道这是 x64 架构上的一些解决问题。所以我将代码更改为:

并且代码有效。但是,我有一个问题:这段代码应该可以在使用 gcc 或 ld 作为链接器的 Linux 上运行。为什么我需要修改代码?

0 投票
3 回答
3777 浏览

python - 带有单词列表的 Python 拆分字符串

试图用

有什么比这更好的方法吗?

试图使

"fulladdress = "213 house rd apt 1011"我想得到"213 house rd 1011"

没有成功。我觉得错过了什么

0 投票
0 回答
113 浏览

c++ - 有没有类似于 XPATH for XML 的东西——对于编程语言?

处理内部文件是我主要关心的问题。我们可以使用 XPATH 寻址 XML 文档。至少对于 C 或 C++,编程语言是否有类似的寻址机制?有什么方法可以使用交叉引用工具生成可用于寻址内部文件的数据,例如 ctags 做什么?