问题标签 [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.
gcc - 我可以在 x86-64 中使用 gcc 为不同的变量选择 RIP 相对或绝对寻址吗
我编写了自己的链接脚本,将不同的变量放在两个不同的数据部分(A 和 B)中。
A 链接到零地址;B 链接到代码附近,并且在高地址空间中(高于 4G,这不适用于 x86-64 中的正常绝对寻址)。
A 可以通过绝对寻址访问,但不能通过 RIP-relative 访问;B可以通过RIP-relative寻址访问,但不是绝对的;
我的问题:有没有办法为 gcc 中的不同变量选择相对 RIP 或绝对寻址?也许有一些注释,比如#pragma
?
assembly - 不能在寻址模式下减去寄存器?
我读完了 PC 汇编语言,我正在研究在汇编中实现 RC4 加密。我无法理解的是为什么
有效,但
没有。内联汇编器给了我这个错误信息,
“第二个操作数”中的非常量表达式
这意味着什么?提前致谢。
cpu-architecture - 用于寻址模式的术语。[英特尔 8085]
在我正在研究的处理器的文档中说:
可用的操作数寻址模式有隐含、寄存器、立即、直接和寄存器间接(使用 BC、DE 和 HL 寄存器对作为指向内存的 16 位指针)。
有人可以用外行术语解释这些寻址模式之间的区别,或者发布一个我可以学习的链接吗?
非常感谢。
assembly - `movl (%eax), %eax` 中的括号是什么意思?
我已经用谷歌搜索了足够多的东西,但无法弄清楚括号是什么()
意思。另外,我看到一些语法为movl 8(%ebp), %eax
有人可以建议我一些好的参考吗?我无法在 Google 的前 20 个结果中找到任何结果。
assembly - x86 寄存器名称、寻址模式、位移和存储
我有一些关于我正在学习的组装的问题,我对此感到困惑。
bx
和bp
和ss
和有什么不一样sp
?书上说那bx
是基址寄存器,bp
是基址指针。这是否意味着它们是同一件事?mov ax, bx
,mov ax, [bx]
,mov ax, bp
和有什么区别mov ax, [bp]
?disp
索引寻址模式是什么意思?例如mov al, disp[bx]
?还是mov al, disp[si]
?书上没有解释的意思disp
。寄存器在 CPU 中而不是 RAM 中吗?
请原谅我的英语,这不是我的第一语言。
assembly - 汇编寻址模式
有人可以解释以下两者之间的区别吗?我发现理解寻址模式背后的概念有点困难
非常感谢!
assembly - 我不确定这个 x86 Add 指令在做什么
我不确定这add
条指令在做什么:
如果是:
我知道它将添加内容rbx
和内容eax
并将它们存储回eax
. 然而,这0x0(%rbp,%rbx,4)
让我失望。
assembly - 汇编 括号中的 *ALL* 可能的算术可能性是什么?
我正在为 C 代码模拟器制作 x86 asm .. 对于我的解析器,我可以进行括号解析
QWORD PTR [
到]
DWORD PTR [
到]
WORD PTR [
到]
BYTE PTR [
到]
MOV X, [
到]
LEA X, [
到]
现在我会忽略..
MMWORD PTR[]
XMMWORD PTR[]
FWORD PTR []
TBYTE PTR []
我想知道可以放在括号中的所有可能的数学算术是什么
我遇到的最复杂的是..
[EBP+ECX*4-E0]
我必须解析的原因是转换E0
为0x000000E0
then 4
to0x00000004
据我所知+
, -
, *
are possible is \
and or /
possible too, 或者点怎么样?.
?
我认为最好的方法是拆分包含括号的每条指令[]
以获得内部数学。然后将内部数学拆分为 1 char delimiters +-*
。
我想确保我得到他们所有?有没有可能在这些中进行划分?或者不是 XOR/OR/AND/NOT 怎么样?
assembly - ds:si 和 es:di 在汇编中是什么意思?
movsb(移动字符串,字节)指令获取地址 ds:si 处的字节,将其存储在地址 es:di,然后将 si 和 di 寄存器递增或递减 1。
我知道 esi,si 和 edi,di 寄存器,
但不是ds:si
和es:di
,
他们的意思是什么?
assembly - IA32 indexed addressing mode without base address
What does this syntax mean? I'm specifically unsure about the missing base address