guest@blog.cmj.tw: ~/posts $

ASM 103


Special case ~

重新繼續寫 編譯器 又重新學習到一些神奇的例外:

syscall

一開始以為 syscall 執行完之後只會影響 rax,但實際上還會影響很多東西。在 stackoverflow 這邊文章有提到, 因為從 kernel-space 跳回 user-space,為了能夠讓 tracer 追蹤所以會將上一個 stack address 放在 rcx

這樣的問題在於:如果需要在 for-loop 中使用 LOOP-rcx 的組合,就需要確保裡面不會使用到 syscall 指令。