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