我使用的代碼:: Blocks的代碼,但我引用的代碼的一個是從Visual C++的,所以我對差的困難... :(MOV EAX,DWORD PTR SS的含義是什麼:[EBP + 8h]以及如何將它轉換爲AT&T格式?
完整的代碼在這裏
NAKED void ijlWrite()
{
__asm {
PUSH EBP
MOV EBP, ESP
MOV EAX, DWORD PTR SS:[EBP+8h]
MOV ECX, ssQuality
MOV DWORD PTR DS:[EAX+50h], ECX
MOV EDX, DWORD PTR SS:[EBP+0Ch]
PUSH EDX
MOV EAX, DWORD PTR SS:[EBP+08h]
PUSH EAX
CALL lpfnIJLWrite //a global variable
POP EBP
RETN
}
}
如果你翻譯他們我會很感激。
PS我也不知道怎麼翻譯RETN。怎麼辦呢?該cheatsheet文件沒有這樣的事情:(
你有一個合成速查表[有](http://www.imada.sdu.dk/Courses/DM516/Litteratur/IntelnATT.htm) – 2011-05-28 10:29:04
另請參見[有](HTTP:// WWW .ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html),因爲GCC內聯asm要求你聲明很多MSVC的內聯asm沒有的東西。 – 2011-05-28 10:30:01
你確定調用約定可以直接翻譯? – 2011-05-28 10:53:35