nop是什麽意思
計算機科學中,NOP或NOOP(No Operation或No Operation Performed的縮寫,意為無操作)是匯編語言的壹個指令,壹系列編程語句,或網絡傳輸協議中的表示不做任何有效操作的命令。
壹些計算機指令集包括壹條指令,其明確目的是不改變任何程序員可訪問的寄存器、狀態標誌或內存的狀態。 通常需要明確定義的時鐘周期數來執行。 在其他指令集中,沒有明確的 NOP 指令,但匯編語言助記符 NOP 表示作為 NOP 的指令; 例如,在 SPARC 上,[sethi 0,%g0]。
NOP 不得訪問內存,因為這可能會導致內存錯誤或頁面錯誤。
NOP 最常用於計時目的,強制內存對齊,防止危險,占用分支延遲槽,使現有指令(例如跳轉)無效,作為執行指令的目標,或作為位置 - 持有者在程序開發後期被活動指令替換(或在重組有問題或耗時時替換已刪除的指令)。 在某些情況下,NOP 可能會產生輕微的副作用; 例如,在 Motorola 68000 系列處理器上,NOP 操作碼會導致流水線同步。
就是通過nop指令的填充(nop指令壹個字節),使指令按字對齊,從而減少取指令時的內存訪問次數。(壹般用來內存地址偶數對齊,比如有壹條指令,占3字節,這時候使用nop指令,cpu 就可以從第四個字節處讀取指令了。)
通過nop指令產生壹定的延遲,但是對於快速的CPU來說效果不明顯,可以使用rep前綴,多延遲幾個時鐘;-->具體應該說是占用了3個時鐘脈沖!3)i/o傳輸時,也會用壹下 nop,等待緩沖區清空,總線恢復;?4)清除由上壹個算術邏輯指令設置的flag位;?5)破解:)對於原程序中驗證部分使用nop來填充,使驗證失效