匯編nop指令
1、作用是空指令(什么都不做),一般用來(lái)控制CPU的時(shí)間周期,達(dá)到時(shí)鐘延時(shí)的效果
2、如果想要讓CPU等待一會(huì)處理指令,那么在此期間需要讓CPU在執(zhí)行我們程序代碼段時(shí)什么都不做,也就是給定一個(gè)空指令NOP,該指令是會(huì)自動(dòng)對(duì)齊CPU內(nèi)存尋址!
2、如果想要讓CPU等待一會(huì)處理指令,那么在此期間需要讓CPU在執(zhí)行我們程序代碼段時(shí)什么都不做,也就是給定一個(gè)空指令NOP,該指令是會(huì)自動(dòng)對(duì)齊CPU內(nèi)存尋址!
注意程序是不能主動(dòng)獲取CPU控制權(quán)的,是由操作系統(tǒng)分配的,所以當(dāng)操作系統(tǒng)將CPU的控制權(quán)分配給你一段時(shí)間,這段時(shí)間里你什么都不想做的情況下就可以使用該 語(yǔ)句,當(dāng)時(shí)間過(guò)了之后CPU控制權(quán)收回時(shí),操作系統(tǒng)會(huì)把程序的代碼執(zhí)行狀況保存到PCB進(jìn)程控制塊里,以便下次執(zhí)行
3、其實(shí)在C/C++編譯器里;即意味著NOP空指令什么都不做,但也被編譯器用來(lái)作為分割符!
當(dāng)我們?cè)谝恍в凶饔糜?{}"的語(yǔ)句里使用";"時(shí),編譯器會(huì)把";"視為NOP指令什么都不做,同時(shí)也作為這段語(yǔ)句的結(jié)束,也就是這個(gè)語(yǔ)句塊什么都不做,那么編譯器就 不會(huì)去編譯這段代碼,但是不會(huì)添加NOP指令,來(lái)占用CPU時(shí)鐘周期!因?yàn)檫@樣做會(huì)降低CPU運(yùn)行效率!例如:wile(1);
4、一般用于破解它人要求驗(yàn)證的程序(用一些反編譯工具將判斷語(yǔ)句填充為nop指令,讓其什么都不做,然后無(wú)條件的執(zhí)行),同時(shí)我們無(wú)需考慮內(nèi)存對(duì)齊CPU尋址的問(wèn) 題,因?yàn)槭褂肗OP指令的字節(jié)占用是與CPU對(duì)應(yīng)的!這個(gè)在填充時(shí)取決于你反編譯程序所使用的是哪個(gè)架構(gòu)的指令集!
4、下面是不同的CPU架構(gòu)所占用不同的字節(jié):
3、其實(shí)在C/C++編譯器里;即意味著NOP空指令什么都不做,但也被編譯器用來(lái)作為分割符!
當(dāng)我們?cè)谝恍в凶饔糜?{}"的語(yǔ)句里使用";"時(shí),編譯器會(huì)把";"視為NOP指令什么都不做,同時(shí)也作為這段語(yǔ)句的結(jié)束,也就是這個(gè)語(yǔ)句塊什么都不做,那么編譯器就 不會(huì)去編譯這段代碼,但是不會(huì)添加NOP指令,來(lái)占用CPU時(shí)鐘周期!因?yàn)檫@樣做會(huì)降低CPU運(yùn)行效率!例如:wile(1);
4、一般用于破解它人要求驗(yàn)證的程序(用一些反編譯工具將判斷語(yǔ)句填充為nop指令,讓其什么都不做,然后無(wú)條件的執(zhí)行),同時(shí)我們無(wú)需考慮內(nèi)存對(duì)齊CPU尋址的問(wèn) 題,因?yàn)槭褂肗OP指令的字節(jié)占用是與CPU對(duì)應(yīng)的!這個(gè)在填充時(shí)取決于你反編譯程序所使用的是哪個(gè)架構(gòu)的指令集!
4、下面是不同的CPU架構(gòu)所占用不同的字節(jié):
CPU架構(gòu) | 助憶碼 | 字長(zhǎng) | 操作碼 | 備注 |
Intelx86系列CPU | NOP | 1; i686中為1-9 | 0x90; 0x0f 0x1f [2] | x86 CPU上的NOP指令實(shí)質(zhì)上是XCHG EAX, EAX(操作碼同為0x90)--無(wú)任何作用的指令。 |
Intel 8051 /MCS-51系列 | NOP | 1 | 0x00 | |
MIPS | NOP | 4 | 0x00000000 | |
MOS科技 65xx | NOP | 1 | 0xea | 65C02處理器發(fā)布時(shí),之前多數(shù)的無(wú)效指令都被定義成了具有不同字長(zhǎng)和需時(shí)的NOP指令。 |
PowerPC | NOP | 4 | 0x60000000 (ori r0,r0,0的擴(kuò)展操作碼) |
posted on 2023-11-10 23:33 Benjamin 閱讀(160) 評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi): (反)匯編