一些彙編中的 trick

1. PC 老是指向下一條將要被執行的指令,而不是指向正在被執行的指令,這是有道理的,由於執行指令不是一個 atom 過程,而是分紅了好多步驟,在執行指令的過程當中 cpu 徹底有可能將下一條將要執行的指令的地址加載到 PC 中。atom

2. jg 指令後面跟 rep;ret 兩條指令,而不是直接跟 ret 指令,是由於若是直接跟 ret 指令,因爲 cpu 存在分支預測機制,可是對於 jump 指令後面跟隨的 ret 指令,cpu 沒法 predict ret 的地址,因此插入一條 rep 指令,至關於 nop 指令, 並不影響 code 的行爲code

相關文章
相關標籤/搜索