彙編指令手冊完整版?一、數據傳輸指令───────────────────────────────────────它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送數據.1. 通用數據傳送指令.MOV 傳送字或字節.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,ECX,EAX依次彈出堆棧.BSWAP 交換32位寄存器裡字節的順序XCHG 交換字或字節.( 至少有一個操作數為寄存器,段寄存器不可作為操作數)CMPXCHG 比較并交換操作數.( 第二個操作數必須為累加器AL/AX/EAX )XADD 先交換再累加.( 結果在第一個操作數裡 )XLAT 字節查表轉換.── BX 指向一張 256 字節的表的起點, AL 為表的索引值 (0-255,即0-FFH); 返回 AL 為查表結果. ( [BX AL]->AL )2. 輸入輸出端口傳送指令.IN I/O端口輸入. ( 語法: IN 累加器, {端口号│DX} )OUT I/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.例: 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位标志出棧.二、算術運算指令───────────────────────────────────────ADD 加法.ADC 帶進位加法.INC 加 1.AAA 加法的ASCII碼調整.DAA 加法的十進制調整.SUB 減法.SBB 帶借位減法.DEC 減 1.NEC 求反(以 0 減之).CMP 比較.(兩操作數作減法,僅修改标志位,不回送結果).AAS 減法的ASCII碼調整.DAS 減法的十進制調整.MUL 無符号乘法.IMUL 整數乘法.以上兩條,結果回送AH和AL(字節運算),或DX和AX(字運算),AAM 乘法的ASCII碼調整.DIV 無符号除法.IDIV 整數除法.以上兩條,結果回送:商回送AL,餘數回送AH, (字節運算);或 商回送AX,餘數回送DX, (字運算).AAD 除法的ASCII碼調整.CBW 字節轉換為字. (把AL中字節的符号擴展到AH中去)CWD 字轉換為雙字. (把AX中的字的符号擴展到DX中去)CWDE 字轉換為雙字. (把AX中的字符号擴展到EAX中去)CDQ 雙字擴展. (把EAX中的字的符号擴展到EDX中去)三、邏輯運算指令───────────────────────────────────────AND 與運算.or 或運算.XOR 異或運算.NOT 取反.TEST 測試.(兩操作數作與運算,僅修改标志位,不回送結果).SHL 邏輯左移.SAL 算術左移.(=SHL)SHR 邏輯右移.SAR 算術右移.(=SHR)ROL 循環左移.ROR 循環右移.RCL 通過進位的循環左移.RCR 通過進位的循環右移.以上八種移位指令,其移位次數可達255次.移位一次時, 可直接用操作碼. 如 SHL AX,1.移位>1次時, 則由寄存器CL給出移位次數.如 MOV CL,04SHL AX,CL四、串指令───────────────────────────────────────DS:SI 源串段寄存器 :源串變址.ES:DI 目标串段寄存器:目标串變址.CX 重複次數計數器.AL/AX 掃描值.D标志 0表示重複操作中SI和DI應自動增量; 1表示應自動減量.Z标志 用來控制掃描或比較操作的結束.MOVS 串傳送.( MOVSB 傳送字符. MOVSW 傳送字. MOVSD 傳送雙字. )CMPS 串比較.( CMPSB 比較字符. CMPSW 比較字. )SCAS 串掃描.把AL或AX的内容與目标串作比較,比較結果反映在标志位.LODS 裝入串.把源串中的元素(字或字節)逐一裝入AL或AX中.( LODSB 傳送字符. LODSW 傳送字. LODSD 傳送雙字. )STOS 保存串.是LODS的逆過程.REP 當CX/ECX<>0時重複.REPE/REPZ 當ZF=1或比較結果相等,且CX/ECX<>0時重複.REPNE/REPNZ 當ZF=0或比較結果不相等,且CX/ECX<>0時重複.REPC 當CF=1且CX/ECX<>0時重複.REPNC 當CF=0且CX/ECX<>0時重複.五、程序轉移指令───────────────────────────────────────1>無條件轉移指令 (長轉移)JMP 無條件轉移指令CALL 過程調用RET/RETF過程返回.2>條件轉移指令 (短轉移,-128到 127的距離内)( 當且僅當(SF XOR OF)=1時,OP1JA/JNBE 不小于或不等于時轉移.JAE/JNB 大于或等于轉移.JB/JNAE 小于轉移.JBE/JNA 小于或等于轉移.以上四條,測試無符号整數運算的結果(标志C和Z).JG/JNLE 大于轉移.JGE/JNL 大于或等于轉移.JL/JNGE 小于轉移.JLE/JNG 小于或等于轉移.以上四條,測試帶符号整數運算的結果(标志S,O和Z).JE/JZ 等于轉移.JNE/JNZ 不等于時轉移.JC 有進位時轉移.JNC 無進位時轉移.JNO 不溢出時轉移.JNP/JPO 奇偶性為奇數時轉移.JNS 符号位為 "0" 時轉移.JO 溢出轉移.JP/JPE 奇偶性為偶數時轉移.JS 符号位為 "1" 時轉移.3>循環控制指令(短轉移)LOOP CX不為零時循環.LOOPE/LOOPZ CX不為零且标志Z=1時循環.LOOPNE/LOOPNZ CX不為零且标志Z=0時循環.JCXZ CX為零時轉移.JECXZ ECX為零時轉移.4>中斷指令INT 中斷指令INTO 溢出中斷IRET 中斷返回5>處理器控制指令HLT 處理器暫停, 直到出現中斷或複位信号才繼續.WAIT 當芯片引線TEST為高電平時使CPU進入等待狀态.ESC 轉換到外處理器.LOCK 封鎖總線.NOP 空操作.STC 置進位标志位.CLC 清進位标志位.CMC 進位标志取反.STD 置方向标志位.CLD 清方向标志位.STI 置中斷允許位.CLI 清中斷允許位.六、僞指令───────────────────────────────────────DW 定義字(2字節).PROC 定義過程.ENDP 過程結束.SEGMENT 定義段.ASSUME 建立段寄存器尋址.ENDS 段結束.END 程序結束.七、處理機控制指令: 标志處理指令 CLC(進位位置0指令)CMC(進位位求反指令)STC(進位位置為1指令)CLD(方向标志置1指令)STD(方向标志位置1指令)CLI(中斷标志置0指令)STI(中斷标志置1指令)NOP(無操作)HLT(停機)WAIT(等待)ESC(換碼)LOCK(封鎖),下面我們就來說一說關于彙編指令手冊完整版?我們一起去了解并探讨一下這個問題吧!
一、數據傳輸指令───────────────────────────────────────它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送數據.1. 通用數據傳送指令.MOV 傳送字或字節.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,ECX,EAX依次彈出堆棧.BSWAP 交換32位寄存器裡字節的順序XCHG 交換字或字節.( 至少有一個操作數為寄存器,段寄存器不可作為操作數)CMPXCHG 比較并交換操作數.( 第二個操作數必須為累加器AL/AX/EAX )XADD 先交換再累加.( 結果在第一個操作數裡 )XLAT 字節查表轉換.── BX 指向一張 256 字節的表的起點, AL 為表的索引值 (0-255,即0-FFH); 返回 AL 為查表結果. ( [BX AL]->AL )2. 輸入輸出端口傳送指令.IN I/O端口輸入. ( 語法: IN 累加器, {端口号│DX} )OUT I/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.例: 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位标志出棧.二、算術運算指令───────────────────────────────────────ADD 加法.ADC 帶進位加法.INC 加 1.AAA 加法的ASCII碼調整.DAA 加法的十進制調整.SUB 減法.SBB 帶借位減法.DEC 減 1.NEC 求反(以 0 減之).CMP 比較.(兩操作數作減法,僅修改标志位,不回送結果).AAS 減法的ASCII碼調整.DAS 減法的十進制調整.MUL 無符号乘法.IMUL 整數乘法.以上兩條,結果回送AH和AL(字節運算),或DX和AX(字運算),AAM 乘法的ASCII碼調整.DIV 無符号除法.IDIV 整數除法.以上兩條,結果回送:商回送AL,餘數回送AH, (字節運算);或 商回送AX,餘數回送DX, (字運算).AAD 除法的ASCII碼調整.CBW 字節轉換為字. (把AL中字節的符号擴展到AH中去)CWD 字轉換為雙字. (把AX中的字的符号擴展到DX中去)CWDE 字轉換為雙字. (把AX中的字符号擴展到EAX中去)CDQ 雙字擴展. (把EAX中的字的符号擴展到EDX中去)三、邏輯運算指令───────────────────────────────────────AND 與運算.or 或運算.XOR 異或運算.NOT 取反.TEST 測試.(兩操作數作與運算,僅修改标志位,不回送結果).SHL 邏輯左移.SAL 算術左移.(=SHL)SHR 邏輯右移.SAR 算術右移.(=SHR)ROL 循環左移.ROR 循環右移.RCL 通過進位的循環左移.RCR 通過進位的循環右移.以上八種移位指令,其移位次數可達255次.移位一次時, 可直接用操作碼. 如 SHL AX,1.移位>1次時, 則由寄存器CL給出移位次數.如 MOV CL,04SHL AX,CL四、串指令───────────────────────────────────────DS:SI 源串段寄存器 :源串變址.ES:DI 目标串段寄存器:目标串變址.CX 重複次數計數器.AL/AX 掃描值.D标志 0表示重複操作中SI和DI應自動增量; 1表示應自動減量.Z标志 用來控制掃描或比較操作的結束.MOVS 串傳送.( MOVSB 傳送字符. MOVSW 傳送字. MOVSD 傳送雙字. )CMPS 串比較.( CMPSB 比較字符. CMPSW 比較字. )SCAS 串掃描.把AL或AX的内容與目标串作比較,比較結果反映在标志位.LODS 裝入串.把源串中的元素(字或字節)逐一裝入AL或AX中.( LODSB 傳送字符. LODSW 傳送字. LODSD 傳送雙字. )STOS 保存串.是LODS的逆過程.REP 當CX/ECX<>0時重複.REPE/REPZ 當ZF=1或比較結果相等,且CX/ECX<>0時重複.REPNE/REPNZ 當ZF=0或比較結果不相等,且CX/ECX<>0時重複.REPC 當CF=1且CX/ECX<>0時重複.REPNC 當CF=0且CX/ECX<>0時重複.五、程序轉移指令───────────────────────────────────────1>無條件轉移指令 (長轉移)JMP 無條件轉移指令CALL 過程調用RET/RETF過程返回.2>條件轉移指令 (短轉移,-128到 127的距離内)( 當且僅當(SF XOR OF)=1時,OP1JA/JNBE 不小于或不等于時轉移.JAE/JNB 大于或等于轉移.JB/JNAE 小于轉移.JBE/JNA 小于或等于轉移.以上四條,測試無符号整數運算的結果(标志C和Z).JG/JNLE 大于轉移.JGE/JNL 大于或等于轉移.JL/JNGE 小于轉移.JLE/JNG 小于或等于轉移.以上四條,測試帶符号整數運算的結果(标志S,O和Z).JE/JZ 等于轉移.JNE/JNZ 不等于時轉移.JC 有進位時轉移.JNC 無進位時轉移.JNO 不溢出時轉移.JNP/JPO 奇偶性為奇數時轉移.JNS 符号位為 "0" 時轉移.JO 溢出轉移.JP/JPE 奇偶性為偶數時轉移.JS 符号位為 "1" 時轉移.3>循環控制指令(短轉移)LOOP CX不為零時循環.LOOPE/LOOPZ CX不為零且标志Z=1時循環.LOOPNE/LOOPNZ CX不為零且标志Z=0時循環.JCXZ CX為零時轉移.JECXZ ECX為零時轉移.4>中斷指令INT 中斷指令INTO 溢出中斷IRET 中斷返回5>處理器控制指令HLT 處理器暫停, 直到出現中斷或複位信号才繼續.WAIT 當芯片引線TEST為高電平時使CPU進入等待狀态.ESC 轉換到外處理器.LOCK 封鎖總線.NOP 空操作.STC 置進位标志位.CLC 清進位标志位.CMC 進位标志取反.STD 置方向标志位.CLD 清方向标志位.STI 置中斷允許位.CLI 清中斷允許位.六、僞指令───────────────────────────────────────DW 定義字(2字節).PROC 定義過程.ENDP 過程結束.SEGMENT 定義段.ASSUME 建立段寄存器尋址.ENDS 段結束.END 程序結束.七、處理機控制指令: 标志處理指令 CLC(進位位置0指令)CMC(進位位求反指令)STC(進位位置為1指令)CLD(方向标志置1指令)STD(方向标志位置1指令)CLI(中斷标志置0指令)STI(中斷标志置1指令)NOP(無操作)HLT(停機)WAIT(等待)ESC(換碼)LOCK(封鎖)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!