做腳本網(wǎng)站建站公司最新報(bào)價(jià)
Test指令將兩個(gè)操作數(shù)進(jìn)行邏輯與運(yùn)算,并根據(jù)運(yùn)算結(jié)果設(shè)置相關(guān)的標(biāo)志位。Test的兩個(gè)操作數(shù)不會(huì)被改變。運(yùn)算結(jié)果在設(shè)置過相關(guān)標(biāo)記位后會(huì)被丟棄。
TEST AX,BX 與 AND AX,BX 命令有相同效果,只是Test指令不改變AX和BX的內(nèi)容,而AND指令會(huì)把結(jié)果保存到AX中。
將兩個(gè)操作數(shù)進(jìn)行按位AND,設(shè)結(jié)果是TEMP,
? ? SF = 將結(jié)果的最高位賦給SF標(biāo)志位,例如結(jié)果最高位是1,SF就是1
? ? 看TEMP是不是0
? ? ? ? 如果TEMP是0,ZF位置1
? ? ? ? 如果TEMP不是0,ZF位置0
? ? CF位置0
? ? OF位置0
? ? AF位是未定的,
SF位是符號位;
ZF位記錄操作的結(jié)果是否是0;
PF位是奇偶校驗(yàn)位,如果結(jié)果低8位中1的個(gè)數(shù)是偶數(shù),PF=1;否則PF=0;
emu8086,如下指令看一下情況,
十進(jìn)制109的十六進(jìn)制是6D,
?
二進(jìn)制是如下,
?
標(biāo)志位初始值,
?
執(zhí)行完mov之后,
?
? ? 如上執(zhí)行test之后標(biāo)志位都不會(huì)發(fā)生變化;SF也沒變,SF是符號位;
如下的數(shù)字PF變了;
?
如下的SF變了;
?
如果是-109,SF也會(huì)變;
?
?有時(shí)間繼續(xù);