问题标签 [addressing-mode]

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 投票
4 回答
11436 浏览

assembly - x86指令“call dword ptr ds:[00923030h]”是什么意思?

下面的 x86 汇编指令有什么作用?

我怀疑这是一个间接调用,但它究竟是如何计算调用地址的呢?

0 投票
4 回答
858 浏览

assembly - 为什么 mov 指令直接使用 ax 而不是两个段寄存器?

我看到如下代码:

为什么我不能将其压缩为:

自从使用累加器寄存器以来,第一种方法是否更快?但这似乎并不直观,因为 cs 和 ds 是段寄存器。还是有一些我不知道的限制?

顺便说一句,我正在使用nasm。

0 投票
1 回答
21723 浏览

assembly - AT&T 语法中 (%eax) 的含义?

对不起,我对 x86 组装和一般组装都是全新的。

所以我的问题是,我有类似的东西:

%eax 是一个寄存器,它保存一个指向某个整数的指针。我们称它为 xp

这是否意味着它在说:*xp = *xp + %edx?(%edx是一个整数)

我只是对 addl 将结果存储在哪里感到困惑。如果%eax是指向 int 的指针,则(%eax)应该是该 int 的实际值。那么会addl存储%edx+(%eax)in的结果*xp吗?我真的很想有人向我解释这个!

我真的很感激任何帮助!

0 投票
3 回答
531 浏览

arm - ARM DA(Decrement After)寻址方式的首地址是哪个?

我有两个关于 DA 寻址模式的问题。例如:

根据ARM 体系结构参考手册,起始地址为R0 - (7 * 4) + 4,结束地址为。R0-24R0

所以:

  1. 的值R1将存储到R0-24orR0吗?
  2. 如果R1存储到R0-24,那么后续存储将向内存顶部增长(从R0-24R0)?
0 投票
2 回答
2406 浏览

masm - MOV 命令的 Masm 间接寻址模式

我尝试了以下形式,但 masm 不喜欢其中的任何一种:

我错过了什么?为什么我似乎不能使用间接寻址。

我从 masm 得到的错误是某些行上的“表达式中缺少运算符”,其中一些说“预期结构字段”

0 投票
2 回答
2245 浏览

assembly - MOV(%r11,%r12,1),%edx是什么意思?

这个指令有什么作用?

0 投票
3 回答
584 浏览

assembly - PDP-11 汇编器中的寻址模式

我有一个关于 pdp-11(模拟器)的小问题,我有这个命令(它从地址 1000 开始) add 2500, #2500

和这个初始列表:

我想知道这个小片段是如何运行的,在我的小册子中我发现:首先它从地址 1000 读取信息,在这个地址内我们有值 066727,在我们从地址 1002 读取数字之后,值必须是 2500 (因为 add 2500, #2500),但是在我的小册子中我有 1474 没有任何解释为什么,我知道我这里有相对寻址模式,但是为什么地址 1002 中的 1474 而不是 2500,在此先感谢您的帮助

0 投票
1 回答
1910 浏览

cpu-architecture - 短寻址模式和长寻址模式有什么区别

在浏览处理器架构的一些数据表时,我看到了术语,短寻址模式和长寻址模式

谁能给我这些术语的一般概念(不需要特定于处理器!)

/renjith_g

0 投票
2 回答
502 浏览

c++ - 编译器在这里生成的汇编代码中的寻址模式是什么?

假设我们有两个整数和字符变量:

假设我们正在讨论一个平台,其中整数变量的长度大于或等于三个字节,我想访问这个整数的第三个字节并将其放入字符变量中,也就是说我会这样写这:

考虑到那行代码以及我不是编译器或汇编专家的事实,我对汇编中的寻址模式了解一点,我想知道第三个字节的地址(或者我想最好说偏移量第三个字节)这里将在该行代码本身生成的指令中,还是在一个单独的变量中,其地址(或偏移量)在这些指令中?

0 投票
1 回答
3173 浏览

assembly - x86 操作码编码:sib 字节

我目前正在尝试编写反汇编程序。我找到了以下操作码列表及其含义,所以我决定在运行时解析它:http://web.archive.org/web/20150810224114/http: //mprolab.teipir.gr/vivlio80X86/pentium.txt

但我被困在操作码 0x00:后面是 reg/modbyte。解析它对我来说不是什么大问题。

但是我在使用 Scale-Index-Base 字节时遇到了问题:
如果您实际上将 esp 指定为索引寄存器,这实际上意味着没有索引寄存器。

这同样适用于带有 ebp 的基址寄存器。但我已经用 C++ 内联汇编器尝试过: 可以编译: add [ebp*2+ebp],cl

那么当使用ebp作为基址寄存器时,如何将ebp用作基址寄存器实际上意味着根本不使用基址寄存器!?