l條件轉移指令jg(> 時轉移)
l條件轉移指令jnle(<=時不轉移)
l標誌暫存器
psw
標誌暫存器psw(程式狀態字暫存器
psw)
標誌暫存器psw是乙個16為的暫存器。它反映了cpu運算的狀態特徵並且存放某些控制標誌。8086使用了16位中的9位,包括6個狀態標誌位和3個控制標誌位。
1514
1312
111098
7654
3210
ofdf
iftf
sfzf
afpfcf零
標誌 cf(進製標誌位):當執行乙個加法(減法)運算時,最高位產生進製(或借位)時,cf為1,否則為0。
zf零標誌位:若當前的運算結果為零,則zf為
1,否則為0。
sf符號標誌位:該標誌位與運算結果的最高位相同。即運算結果為負,則sf為
1,否則為
0。of溢位標誌位:若運算結果超出機器能夠表示的範圍稱為溢位,此時of為
1,否則為
0。判斷是否溢位的方法是:進行二進位制運算時,最高位的進製值與次高位的進製值進行異或運算,若運算結果為
1則表示溢位
of=1
,否則of=0
pf奇偶標誌:當運算結果的最低16位中含1的個數為偶數則pf=1否則pf=0
af輔助進製標誌:乙個加法(減法)運算結果的低4位向高4位有進製(或借位)時則af=1否則af=0
另外還有三個控制標誌位用來控制cpu的操作,可以由程式進行置位和復位。
tf跟蹤標誌:該標誌位為方面程式除錯而設定。若tf=1,8086/8088cpu處於單步工作方式,即在每條指令執行結束後,產生中斷。
if中斷標誌位:該標誌位用來控制cpu是否響應可遮蔽中斷。若if=1則允許中斷,否則禁止中斷。
df方向標誌:該標誌位用來控制串處理指令的處理方向。若df=1則串處理過程中位址自動遞減,否則自動遞增。
od
裡能檢視到除if
標誌外的
8個標誌位
jmp //014
je/jz //= //012
jump if
equl
jne/jnz //
不= //013 //
帶符號數條件轉移指令
jl /jnge //
不》= //
小於< //015
jle/jng //不》 //小於等於<= //016
jg/jnle //不<= //大於 >//017
jge/jnl //不< //大於等於》= //017
jump 跳轉/轉移
not 不
equal 相等
zero 零
less 小於
greater大於
一、指令格式
jg/jnle 標號位址 //不<= //大於 > // zf=0 && sf=0 && of=0
jge/jnl 標號位址 //不< //大於等於 >=
jg : jump if greater // > 跳
jnle:jump ifnot less or equal //不<= 跳
jge :jump ifgreater or equal// >= 跳
jnl: jump ifnot less //不< 跳
二、**測試
printf("begin\n");
inta=4;
//if(a<=3)
//if(!(a>3))
//////大於時跳轉//不小於等於跳轉
__asm
printf("dothis\n");
printf("小於等於");
end:
printf("end");
return0;
017 陣列求和函式
測試arraysum過程 386 model flat,stdcall stack 4096 exitprocess proto,dwexitcode dword data array dword 10000h,20000h,30000h,40000h,50000h thesum dword cod...
017 非同步處理 Queueable
queueable apex batch 和 future 的結合 queueable apex允許你提交類似於future方法的非同步處理作業,還具有以下附加優點 non primitive types 你的queueable類可以包含非原始資料型別的成員變數,例如sobjects或自定義apex...
017C OSPF 網路型別
ospf定義了四種網路型別,分別是點到點網路,廣播型網路,nbma網路和點到多點網路。另虛連線 virtual link 也是一種 網路型別 常見鏈路層協議 point to point ppp鏈路 lapb鏈路 hdlc鏈路 broadcast 乙太網鏈路 nbma 幀中繼鏈路 atm鏈路 點到點...