问题标签 [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.
assembly - x86指令“call dword ptr ds:[00923030h]”是什么意思?
下面的 x86 汇编指令有什么作用?
我怀疑这是一个间接调用,但它究竟是如何计算调用地址的呢?
assembly - 为什么 mov 指令直接使用 ax 而不是两个段寄存器?
我看到如下代码:
为什么我不能将其压缩为:
自从使用累加器寄存器以来,第一种方法是否更快?但这似乎并不直观,因为 cs 和 ds 是段寄存器。还是有一些我不知道的限制?
顺便说一句,我正在使用nasm。
assembly - AT&T 语法中 (%eax) 的含义?
对不起,我对 x86 组装和一般组装都是全新的。
所以我的问题是,我有类似的东西:
%eax 是一个寄存器,它保存一个指向某个整数的指针。我们称它为 xp
这是否意味着它在说:*xp = *xp + %edx
?(%edx
是一个整数)
我只是对 addl 将结果存储在哪里感到困惑。如果%eax
是指向 int 的指针,则(%eax)
应该是该 int 的实际值。那么会addl
存储%edx+(%eax)
in的结果*xp
吗?我真的很想有人向我解释这个!
我真的很感激任何帮助!
arm - ARM DA(Decrement After)寻址方式的首地址是哪个?
我有两个关于 DA 寻址模式的问题。例如:
根据ARM 体系结构参考手册,起始地址为R0 - (7 * 4) + 4
,结束地址为。R0-24
R0
所以:
- 的值
R1
将存储到R0-24
orR0
吗? - 如果
R1
存储到R0-24
,那么后续存储将向内存顶部增长(从R0-24
到R0
)?
masm - MOV 命令的 Masm 间接寻址模式
我尝试了以下形式,但 masm 不喜欢其中的任何一种:
我错过了什么?为什么我似乎不能使用间接寻址。
我从 masm 得到的错误是某些行上的“表达式中缺少运算符”,其中一些说“预期结构字段”
assembly - MOV(%r11,%r12,1),%edx是什么意思?
这个指令有什么作用?
assembly - PDP-11 汇编器中的寻址模式
我有一个关于 pdp-11(模拟器)的小问题,我有这个命令(它从地址 1000 开始) add 2500, #2500
和这个初始列表:
我想知道这个小片段是如何运行的,在我的小册子中我发现:首先它从地址 1000 读取信息,在这个地址内我们有值 066727,在我们从地址 1002 读取数字之后,值必须是 2500 (因为 add 2500
, #2500),但是在我的小册子中我有 1474 没有任何解释为什么,我知道我这里有相对寻址模式,但是为什么地址 1002 中的 1474 而不是 2500,在此先感谢您的帮助
cpu-architecture - 短寻址模式和长寻址模式有什么区别
在浏览处理器架构的一些数据表时,我看到了术语,短寻址模式和长寻址模式
谁能给我这些术语的一般概念(不需要特定于处理器!)
/renjith_g
c++ - 编译器在这里生成的汇编代码中的寻址模式是什么?
假设我们有两个整数和字符变量:
假设我们正在讨论一个平台,其中整数变量的长度大于或等于三个字节,我想访问这个整数的第三个字节并将其放入字符变量中,也就是说我会这样写这:
考虑到那行代码以及我不是编译器或汇编专家的事实,我对汇编中的寻址模式了解一点,我想知道第三个字节的地址(或者我想最好说偏移量第三个字节)这里将在该行代码本身生成的指令中,还是在一个单独的变量中,其地址(或偏移量)在这些指令中?
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用作基址寄存器实际上意味着根本不使用基址寄存器!?