一直在进行装配任务,而且大部分时间我都很了解装配.或者至少对这项任务来说已经足够了.但这个mov声明让我感到沮丧.如果有人能解释这个mov语句如何操作寄存器值,我真的很感激.
mov(%ebx,%eax,4),%eax
PS我无法通过基本搜索找到这种特定类型的mov语句,所以如果我错过了它并且正在提问,我会道歉.
这条线对我来说不是很清楚(我对大会很新):
movsbl 0xffffffff(%edx,%ebx,1),%eax
Run Code Online (Sandbox Code Playgroud)
我理解mov,但movsbl对我来说是一个新的.在一个更简单的例子中,使用foo而不是0xffffffff(%edx,%ebx,1)我理解它是这样(完全不确定这是正确的,只是搜索了一个相关的主题):
eax = foo&0x800000ff;
Run Code Online (Sandbox Code Playgroud)
我从未有过一行汇编引用-1(0xffffffff),那里的信息%eax究竟来自哪里?是存储在以下的任何内容:
[%edx + %ebx -1]
Run Code Online (Sandbox Code Playgroud)