movs
lods
cld
cmps
stos
rep
std
scas
movs ( move string)串傳送指令
movb//
位元組串傳送df=0, si = si + 1 , di = di + 1 ;df = 1, si = si - 1 , di = di - 1
movw//
字串傳送
df=0, si = si + 2 , di = di + 2 ;df = 1, si = si - 2 , di = di - 2
執行操作:[di] = [si] ,將位於ds段的由si所指出的儲存單元的位元組或字傳送到位於es段的由di 所指出的儲存單元,再修改si和di, 從而指向下乙個元素.
在執行該指令之前
,必須預置si和
di的初值,用
std或
cld設定df值
.
movs dst , src//同上,
不常用,dst
和src
只是用來用型別檢查
,並不允許使用其它定址方式來確定運算元
.1.目的串必須在附加段中,即必須是es:[di]
2.源串允許使用段跨越字首來修飾,但偏移位址必須是[si].
stos (store into string)存入串指令
stos dst
stosb//
存放位元組串
( di ) = al
stosw//
存放字串
( di ) = ax
執行品作:把al或
ax中的內容存放由
di指定的附加段的位元組或字單元中
,並根據
df值修改及資料型別修改
di的內容
.1.在
執行該指令之前,必須把要存入的資料預先存入ax或al中,必須預置di的初值.
2.di所指向的儲存單元只能在附加段中,即必須是es:[di]
lods ( load from string )從串取指令
lods src
lodsb//
從位元組串取 al=(si)
lodsw//
從字串取 ax= (si±1) (si)
執行操作:把由si指定的資料段中位元組或字單元的內容送入al或ax中,並根據df值及資料型別修改si的內容.
1.在執行該指令之前,要取的資料必須在儲存器中預先定義(用db或dw),必須預置si的初值.
2.源串允許使用段超越字首來改變資料儲存的段區.
rep (repeat)重複操作字首
rep string primitive
//其中:string primitive可為movs,stos或lods指令
執行操作:使rep字首後的串指令重複執行,每執行一次cx=cx-1,直至cx=0時退出rep.
方向標誌設定
cld (clear direction flag) 清除方向標誌指令
cld
執行操作:令df=0, 其後[si],[di]執行增量操作
std (set direction flag) 設定方向標誌指令
std
執行操作:令df=1, 其後[si],[di]執行減量操作
cmps (compare string)串比較指令
cmps src , dst
cmpsb//
位元組串比較 (si)-(di)
cmpsw//
字串比較 (si+1)(si) - (di+1)(di)
執行操作:把由si指向的資料段中的乙個位元組或字與由di指向的附加段中的乙個位元組或字相減,不保留結果,只根據結果置標誌位.
scas (scan string )串掃瞄指令
scas dst
scasb
scasw
執行操作:把ax或al的內容與由di指向的在附加段中的乙個位元組或字相減,不保留結果,根據結果置標誌位.
Vim的一些常用方便命令
一 撤銷和重做 按 u 可以撤銷,有時候會不小心撤銷過頭,一直不知道重做的快捷鍵,很頭大,其實按 ctrl r 即可 二 單詞移動和刪除 按 w b 可以按照單詞前後移動,同理,dw db 是前後刪除單詞 de不會刪除單詞後的空格,dw會 三 同時編輯多個檔案 vsp,開啟乙個垂直的新編輯介面 sp...
一些git常用指令
cd e androidsss 具體進入到那個碟符 git init 生成.git資料夾 在當前目錄新建乙個git 庫 git status 檢視狀態裡面有幾個檔案 git commit am 提交到遠端伺服器 加備註 遇到的問題 git config global user.email 18513...
llvm clang esl 一些常用指令
1 clang emit llvm c test.c 2 llvm link x.bc y.bc z.bc o final.bc 3 llvm dis x.bc im x.bc 多級指標 stl 類 lli hw.ll gdb home zhgu workspace llvm 6.0.0 build...