一.資料傳送指令
mov 傳送資料 兩個運算元
xchg 交換指令 兩個運算元
movsx 擴充套件資料指令 兩個運算元
movzx 擴充套件資料指令 兩個運算元
xlat 查表指令 無運算元
push/pop 入棧,出棧 乙個運算元
lea 位址傳送指令 兩個運算元
in/out 輸入輸出指令 兩個運算元 in 累加器,埠
out 埠,累加器
add 加法指令 兩個運算元,結果存在目的運算元
sub 減法指令 兩個運算元,結果存在目的運算元
adc 帶進製的加法指令 三個運算元,+cf
sbb 帶借位的減法指令 三個運算元,-cf
inc 加 1指令 乙個運算元
dec 減1指令 乙個運算元
neg 求補指令 乙個運算元
cmp 比較指令 兩個運算元,不改變目的運算元值
mul 無符號的乘法指令 乙個運算元,另外乙個運算元預設在al,ax,乘積在ah:al(8*8),乘積在(dx:ax)(16*16)
imul 帶符號的乘法指令 乙個運算元,另外乙個運算元預設在al,ax,乘積在ah:al(8*8),乘積在(dx:ax)(16*16)
div 除法指令 乙個運算元,被除數在ax中,預設商低一半al,餘數就是高一半ah
idiv 帶符號的除法指令 乙個運算元,被除數在ax中,預設商低一半al,餘數就是高一半ah
cbw 帶符號的位元組擴充套件到字的過程
三.邏輯運算指令和移位指令
and 兩個運算元
or 兩個運算元
xor 兩個運算元
test 兩個運算元
not 乙個運算元
四.串操作指令
movsb,movsw,movsd [ds:si]-〉[es:di]
lodsb,lodsw,lodsd [ds:si]-〉al/ax/eax
stosb,stosw,stosd al/ax/eax-〉[es:di]
scasb,scasw,scasd al/ax/eax-[es:di]
cmpsb,cmpsw,cmpsd [ds:si]-[es:di]
insb,insw,insd dx埠內容-〉[es:di]
outsb,outsw,outsd [ds:si]-〉dx埠
串操作指令
3.13 程式段:
push ds ;源串
pop es ;目的串
lea di,buf ;取首址
mov cx,50 ;資料個數
cld ;(df=0)位址遞增
mov al,0 ;位元組單元
rep stosb ;al-〉[es:di]
3.14 程式段
push ds
pop es
mov si,2170h
mov di,1000h
mov cx,100h
cldrep movsb ;源串搬到目的串
mov di,1000h
mov cx,100h
mov al,』a』
repnz scasb ;al和目的串內容是否一致,al-目的串
jnz k1
dec di
mov byte ptr [di],20h
k1:hlt ;找字母,並且將字母換成空格字元
五.控制轉移指令
jmp 無條件轉移指令
jcc 條件轉移指令
call 目標運算元
retloop 標號
int 21h 中斷指令
六.標誌類操作指令
clc 清進製標誌 cf=0
stc 置進製標誌 cf=1
cmc 進製標誌取反
cld 清方向標誌
std 置方向標誌
cli 清中斷標誌
sti 置中斷標誌
彙編常用指令
一 資料傳輸指令i.4.標誌傳送指令.lahf 標誌暫存器傳送,把標誌裝入ah.sahf 標誌暫存器傳送,把ah內容裝入標誌暫存器.pushf 標誌入棧.popf 標誌出棧.pushd 32位標誌入棧.popd 32位標誌出棧.二 算術運算指令 add 加法.adc 帶進製加法.inc 加 1.aa...
彙編常用指令
一 程式除錯 1 用文字編輯器建立源程式,副檔名.asm,以1.asm為例 2 用masm生成1.obj檔案 輸入 masm 1.asm3 用link生成1.exe檔案 輸入 link 1.obj二 用debug除錯 1 用cmd進入命令列模式 win r,輸入cmd 2 用命令操作進入你的檔案 輸...
彙編指令msr STM 常用彙編指令
在嵌入式開發中,匯程式設計序常常用於非常關鍵的地方,比如系統啟動時初始化,進出中斷時 的環境保護,恢復等對效能有要求的地方。arm指令集可以分為六大類,分別為資料處理指令 load store 指令 跳轉指令 程式狀態 暫存器處理指令 協處理器指令和異常產生指令。arm指令使用的基本格式如下 opc...