-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