3

根据书,寄存器是CPU中存储空间小的地方(例如16位CPU上的16位)。那么CPU寄存器是如何有地址的呢?如果它不是在内存中而是在 CPU 上,我们如何能够向它添加位移?

示例:

mov ax, [bx+1000h]
4

2 回答 2

6

x86 寄存器只能按名称寻址。该表达式bx+1000h仅表示“寄存器 bx 中的值加上 1000h”,结果被解释为内存中的地址(通过[...]符号),而不是某些寄存器空间中的地址。

该表达式的总体解释是,“将位于地址 bx 指向的 1000h 字节之后的 16 位加载到 ax 中”。

于 2011-09-05T10:19:33.527 回答
0

这是通过将内容解释为bx地址然后用偏移量替换它来完成的。

所以如果bx1000h那么内容ax将存储在内存位置2000h

于 2011-09-05T10:21:32.770 回答