cs:ip:決定cpu讀取命令實體地址。
ss:sp:始終指向棧頂,決定棧的機制。
ds:決定cpu讀取資料的基礎位址。
ax:通常用來將資料傳遞給段暫存器。
cx:loop命令迴圈次數取決於cx。
dx:可作為累加結果的暫存器。
bx si di bp:可以通過表示資料。
dw命令:dw命令是寫入資料的命令,dw命令從cs:0開始儲存後面的資料。(16bit)
dw 0123h, 0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdb命令:db命令是將資料轉化為ascii碼,從cs:0開始寫入。(8bit)
db 『abcd』dd命令:定義雙位元組資料。(32bit)
dd 1邏輯或算術運算
add:做加法
sub:做減法
div:做除法
mul:做乘法
or:或運算
and:和運算
迴圈指令
loop:迴圈次數取決於cx。
s: …rep指令:迴圈次數取決與cx。loop s
rep…傳送指令
mov:改變暫存器
push:入棧
pop:出棧
jmp:改變cs ip
jcxz:有條件的轉移指令,屬於段內短轉移
ret:(棧中獲取)修改ip的內容,實現段內近轉移
retf:(棧中獲取)修改cs 和 ip 的內容,實現段轉移
call:傳送指令
有條件的轉移指令
段內短轉移
指令 條件
jcxz:cx=0
je : zf=1
jne:zf=0
jb : cf=1
jnb:cf=0
ja : cf=0 且 zf=0
jna:cf=1 或 zf=1
與標誌暫存器相關的指令
adc指令:帶進製加法指令,利用cf位
sbb指令:帶借位減法指令,利用cf位
cmp指令:比較指令
cld指令:df=0
std指令:df=1
pushf:將標誌儲存器資料壓棧。
popf:將棧中資料存入標誌儲存器。
串傳送指令
movsb:傳送位元組
movsw:傳送字
dup:重複資料。
db/dw/dd 重複次數 dup (重複的資料)
offset 編譯器處理符號(標號)zf標誌:零標誌位,記錄相關指令執行後結果是否為零,結果是零zf=1,不是零zf=0
pf標誌:奇偶標誌位,記錄相關指令執行後結果中1的個數是否為偶數,1的個數為偶數pf=1,為奇數pf=0
sf標誌:符號標誌位,記錄相關指令執行後結果是否為負,結果為負sf=1,非負sf=0
cf標誌:進製標誌位,(無符號數運算)記錄運算結果的最高有效位向更高位的進製值,或借位值。
of標誌:溢位標誌位,記錄(有符號數)運算的結果是否發生溢位,如果發生溢位of=1,沒有溢位of=0
df標誌:方向標誌位,在串處理指令中,控制si,di增減。df=0 每次操作後si di遞增,df=1 每次操作後si di遞減
專題四總結
圖的定義 很簡單,g v,e v e分別表示點和邊的集合。圖的表示 主要有兩種,鄰接矩陣和鄰接表,前者空間複雜度,o v2 後者為o v e 因此,除非非常稠密的圖 邊非常多 一般後者優越於前者。圖的遍歷 寬度遍歷bfs start 1 佇列q empty,陣列bool visited v q.pu...
專題四總結
專題四總結 專題四圖演算法,到目前為止學習了並查集,最小生成樹,最短路。並查集找父節點 int find int x 練習四1003 另一種 int find int a 練習四1022 最小生成樹只會用kruscul 演算法,用這乙個能做不少題了也就懶得學 primer.double kru re...
dp專題總結
1 做題感覺 大部分時候看到題感覺一頭霧水,在明確告訴這是動態規劃的題時會刻意往這方面想,縮小問題規模。如果沒說的話,可能根本不會朝這方面去想。感覺好難做起來理解起來都很費勁,專題中有很多題是稍微變了一下,就暈了,會在各方面細節出問題。就像登山問題和合唱團問題,感覺他們一模一樣,樣例也通過了,就是過...