-1
我试图将以下代码转换为使用leal的单行代码。简化组装指令
movl 4(%esp), %eax
sall $2, %eax
addl 8(%esp), %eax
addl $4, %eax
我的问题是3个部分组成:
- 是否在寄存器前面的“%”简单地定义如下字符串作为注册?
- 整数前面的'$'是否将下列值类型定义为int?
- 是
leal 4(%rsi, 4, %rdi), %eax
上述程序集的正确转换? (忽略从32位到64位的变化)
编辑:另一个问题。
unsigned int fun3(unsigned int x, unsigned int y)
{
unsigned int *z = &x;
unsigned int w = 4+y;
return (4*(*z)+w);
}
生成上面的代码?我不熟悉指针。
您的帖子中没有任何&符号。不确定你的意思是什么字符。 –
我认为他写“和号”时他的意思是'%'。 –
[起点](http://wiki.osdev.org/Opcode_syntax)AT&T汇编语法。检查底部的“来源”链接。 – DevSolar