匯編指令手冊_第1頁
匯編指令手冊_第2頁
匯編指令手冊_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、匯編指令手冊一、數(shù)據(jù)傳輸指令它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送數(shù)據(jù). 1. 通用數(shù)據(jù)傳送指令 . mov 傳送字或字節(jié) . movsx 先符號擴展 , 再傳送 . movzx 先零擴展 , 再傳送 . push 把字壓入堆棧 . pop 把字彈出堆棧 . pusha 把 ax,cx,dx,bx,sp,bp,si,di 依次壓入堆棧 . popa 把 di,si,bp,sp,bx,dx,cx,ax 依次彈出堆棧 . pushad 把 eax,ecx,edx,ebx,esp,ebp,esi,edi 依次壓入堆棧 . popad 把 edi,esi,ebp,esp,ebx,edx,e

2、cx,eax 依次彈出堆棧 . bswap 交換 32位寄存器里字節(jié)的順序xchg 交換字或字節(jié) .( 至少有一個操作數(shù)為寄存器, 段寄存器不可作為操作數(shù) ) cmpxchg 比較并交換操作數(shù) .( 第二個操作數(shù)必須為累加器al/ax/eax ) xadd 先交換再累加 .( 結果在第一個操作數(shù)里 ) xlat 字節(jié)查表轉換 . bx 指向一張 256 字節(jié)的表的起點 , al 為表的索引值 (0-255,即0-ffh); 返回 al 為查表結果 . ( bx+al-al ) 2. 輸入輸出端口傳送指令 . in i/o 端口輸入 . ( 語法: in 累加器 , 端口號 dx )out i/

3、o 端口輸出 . ( 語法: out 端口號 dx,累加器 ) 輸入輸出端口由立即方式指定時, 其范圍是 0-255; 由寄存器 dx 指定時 , 其范圍是 0-65535. 3. 目的地址傳送指令 . lea 裝入有效地址 . 例: lea dx,string ; 把偏移地址存到dx. lds 傳送目標指針 , 把指針內容裝入ds. 例: lds si,string ; 把段地址 : 偏移地址存到 ds:si. les 傳送目標指針 , 把指針內容裝入es. 例: les di,string ; 把段地址 : 偏移地址存到 es:di. lfs 傳送目標指針 , 把指針內容裝入fs. 例:

4、lfs di,string ; 把段地址 : 偏移地址存到 fs:di. lgs 傳送目標指針 , 把指針內容裝入gs. 例: lgs di,string ; 把段地址 : 偏移地址存到 gs:di. lss 傳送目標指針 , 把指針內容裝入ss. 例: lss di,string ; 把段地址 : 偏移地址存到 ss:di. 4. 標志傳送指令 . lahf 標志寄存器傳送 , 把標志裝入 ah. sahf 標志寄存器傳送 , 把 ah內容裝入標志寄存器 . pushf 標志入棧 . popf 標志出棧 . pushd 32 位標志入棧 . popd 32 位標志出棧 . 二、算術運算指令a

5、dd 加法. adc 帶進位加法 . inc 加 1. aaa 加法的 ascii 碼調整 . daa 加法的十進制調整 . sub 減法. sbb 帶借位減法 . dec 減 1. nec 求反( 以 0 減之). cmp 比較.( 兩操作數(shù)作減法 , 僅修改標志位 , 不回送結果 ). aas 減法的 ascii 碼調整. das 減法的十進制調整 . mul 無符號乘法 . imul 整數(shù)乘法 . 以上兩條 , 結果回送 ah和 al(字節(jié)運算 ), 或 dx和 ax(字運算 ), aam 乘法的 ascii 碼調整. div 無符號除法 . idiv 整數(shù)除法 . 以上兩條 , 結果回

6、送 : 商回送 al,余數(shù)回送 ah, ( 字節(jié)運算 ); 或商回送 ax,余數(shù)回送 dx, ( 字運算 ). aad 除法的 ascii 碼調整. cbw 字節(jié)轉換為字 . ( 把 al中字節(jié)的符號擴展到ah中去) cwd 字轉換為雙字 . ( 把 ax中的字的符號擴展到dx中去) cwde 字轉換為雙字 . ( 把 ax中的字符號擴展到eax中去) cdq 雙字擴展 . ( 把 eax中的字的符號擴展到edx 中去) 三、邏輯運算指令and 與運算 . or 或運算 . xor 異或運算 . not 取反. test 測試.( 兩操作數(shù)作與運算 , 僅修改標志位 , 不回送結果 ). sh

7、l 邏輯左移 . sal 算術左移 .(=shl) shr 邏輯右移 . sar 算術右移 .(=shr) rol 循環(huán)左移 . ror 循環(huán)右移 . rcl 通過進位的循環(huán)左移 . rcr 通過進位的循環(huán)右移 . 以上八種移位指令 , 其移位次數(shù)可達255次. 移位一次時 , 可直接用操作碼 . 如 shl ax,1. 移位1次時, 則由寄存器 cl給出移位次數(shù) . 如mov cl,04 shl ax,cl 四、串指令ds:si 源串段寄存器: 源串變址 . es:di 目標串段寄存器 : 目標串變址 . cx 重復次數(shù)計數(shù)器 . al/ax 掃描值 . d標志0 表示重復操作中si 和 d

8、i 應自動增量 ; 1 表示應自動減量 . z 標志用來控制掃描或比較操作的結束. movs 串傳送 . ( movsb 傳送字符 . movsw 傳送字 . movsd 傳送雙字 . ) cmps 串比較 . ( cmpsb 比較字符 . cmpsw 比較字 . ) scas 串掃描 . 把 al或 ax的內容與目標串作比較 , 比較結果反映在標志位 . lods 裝入串 . 把源串中的元素 ( 字或字節(jié) ) 逐一裝入 al或 ax中. ( lodsb 傳送字符 . lodsw 傳送字 . lodsd 傳送雙字 . ) stos 保存串 . 是 lods 的逆過程 . rep 當 cx/ec

9、x0 時重復 . repe/repz 當 zf=1或比較結果相等 , 且 cx/ecx0 時重復 . repne/repnz 當 zf=0或比較結果不相等 , 且 cx/ecx0 時重復 . repc 當 cf=1且 cx/ecx0 時重復. repnc 當 cf=0且 cx/ecx0 時重復 . 五、程序轉移指令1無條件轉移指令 ( 長轉移 ) jmp 無條件轉移指令call 過程調用ret/retf 過程返回 . 2條件轉移指令 ( 短轉移 ,-128 到+127的距離內 ) ( 當且僅當 (sf xor of)=1時,op1循環(huán)控制指令 (短轉移 ) loop cx不為零時循環(huán) . loope/loopz cx不為零且標志 z=1時循環(huán) . loopne/loopnz cx不為零且標志 z=0時循環(huán) . jcxz cx為零時轉移 . jecxz ecx為零時轉移 . 4中斷指令int 中斷指令into 溢出中斷iret 中斷返回5處理器控制指令hlt 處理器暫停 , 直到出現(xiàn)中斷或復位信號才繼續(xù). wait 當芯片引線 test為高電平時使 cpu 進入等待狀態(tài) . esc 轉換到外處理器 . lock 封鎖總線 . nop 空操作 . stc 置進位標志位 . clc 清進位標志位 . cmc 進位標志

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論