理解汇编语言操作数形式

问题描述

Address    Value            Register     Value
0x100      0xFF             %rax         0x100
0x104      0xAB             %rcx         0x1
0x108      0x13             %rdx         0x3
0x10C      0x11


Fill in the following table showing the values for the indicated operands:

Operand           Value    //Solutions at the end of the chapter
%rax              _____    //0x100
0x104             _____    //0xAB
$0x108            _____    //0x108
(%rax)            _____    //0xFF
4(%rax)           _____    //0xAB
9(%rax,%rdx)     _____    //0x11
260(%rcx,%rdx)   _____    //0x13
0xFC(,%rcx,4)     _____    //0xFF
(%rax,%rdx,4)    _____    //0x11

在这个网站上发现了一个类似的问题,但我仍然不明白 9(%rax,%rdx) 是如何工作的。我以为应该是 9+100+3 = 112 并找到地址 0x112 处的值,但是没有地址 0x112 给我们?在我在这里发现的类似问题中:Hard time understanding assembly language 似乎使用 260(%rcx,%rdx) 我们需要将值转换为十六进制?但这对 9(%rax,%rdx) 不起作用。 与 (%rax,4) 相同。我仍然得到 112。这如何导致地址 0x10C 获得 0x11 的值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)