彙編專題 小總結

2021-10-21 04:31:45 字數 1890 閱讀 6722

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,0987h

db命令:db命令是將資料轉化為ascii碼,從cs:0開始寫入。(8bit)

db 『abcd』

dd命令:定義雙位元組資料。(32bit)

dd 1

邏輯或算術運算

add:做加法

sub:做減法

div:做除法

mul:做乘法

or:或運算

and:和運算

迴圈指令

loop:迴圈次數取決於cx。

s: …

loop s

rep指令:迴圈次數取決與cx。

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 做題感覺 大部分時候看到題感覺一頭霧水,在明確告訴這是動態規劃的題時會刻意往這方面想,縮小問題規模。如果沒說的話,可能根本不會朝這方面去想。感覺好難做起來理解起來都很費勁,專題中有很多題是稍微變了一下,就暈了,會在各方面細節出問題。就像登山問題和合唱團問題,感覺他們一模一樣,樣例也通過了,就是過...