除了介紹X64組合語言外,也介紹了Win64 ABI。
看了Win64 ABI終於了解為何Win32的程式在Win64下是無法使用的。
因為改了基本的C函式呼叫的動作。
為了增加C函式呼叫的速度,將原先參數堆放在Stack的動作,部分改到暫存器中。
這確實會增加執行效率,而Bee在ARM處理器也看到是用這樣的動作。
Win64 ABI是使用四個暫存器 RCX, RDX, R8, R9。
一時好奇去查了一下Linux ABI用了六個RDI, RSI, RDX, RCX, R8, R9。
看來大家都是用同一招做C函式呼叫加速。
其他的,就和一般處理器差不多。
再下來就是我自己的作業了:寫一個程式。
沒有留言:
張貼留言