Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
根据书,寄存器是CPU中存储空间小的地方(例如16位CPU上的16位)。那么CPU寄存器是如何有地址的呢?如果它不是在内存中而是在 CPU 上,我们如何能够向它添加位移?
示例:
mov ax, [bx+1000h]
x86 寄存器只能按名称寻址。该表达式bx+1000h仅表示“寄存器 bx 中的值加上 1000h”,结果被解释为内存中的地址(通过[...]符号),而不是某些寄存器空间中的地址。
bx+1000h
[...]
该表达式的总体解释是,“将位于地址 bx 指向的 1000h 字节之后的 16 位加载到 ax 中”。
这是通过将内容解释为bx地址然后用偏移量替换它来完成的。
bx
所以如果bx是1000h那么内容ax将存储在内存位置2000h
1000h
ax
2000h