8086 CPU 匯編指令速查手冊

發(fā)布時(shí)間:2010-10-16 14:56    發(fā)布者:左左
關(guān)鍵詞: CPU , 8086 , 匯編指令
8086 CPU 匯編指令速查手冊
一、數據傳輸指令
──────────────────────────────────
      它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送數據.
      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      交換字或字節.( 至少有一個(gè)操作數為寄存器,段寄存器不可作為操作數)
          CMPXCHG 比較并交換操作數.( 第二個(gè)操作數必須為累加器AL/AX/EAX )
          XADD      先交換再累加.( 結果在第一個(gè)操作數里 )
          XLAT      字節查表轉換.
                  ── BX 指向一張 256 字節的表的起點(diǎn), AL 為表的索引值 (0-255,即
                  0-FFH); 返回 AL 為查表結果. ( [BX+AL]->AL )

      2. 輸入輸出端口傳送指令.
          IN        I/O端口輸入. ( 語(yǔ)法: IN 累加器, {端口號│DX} )
          OUT      I/O端口輸出. ( 語(yǔ)法: OUT {端口號│DX},累加器 )
            輸入輸出端口由立即方式指定時(shí), 其范圍是 0-255; 由寄存器 DX 指定時(shí),
            其范圍是 0-65535.

      3. 目的地址傳送指令.
          LEA      裝入有效地址.
            例: LEA DX,string    ;把偏移地址存到DX.
          LDS      傳送目標指針,把指針內容裝入DS.
            例: LDS SI,string    ;把段地址:偏移地址存到DS:SI.
          LES      傳送目標指針,把指針內容裝入ES.
            例: LES DI,string    ;把段地址:偏移地址存到ESI.
          LFS      傳送目標指針,把指針內容裝入FS.
            例: LFS DI,string    ;把段地址:偏移地址存到FSI.
          LGS      傳送目標指針,把指針內容裝入GS.
            例: LGS DI,string    ;把段地址:偏移地址存到GSI.
          LSS      傳送目標指針,把指針內容裝入SS.
            例: LSS DI,string    ;把段地址:偏移地址存到SSI.

      4. 標志傳送指令.
          LAHF      標志寄存器傳送,把標志裝入AH.
          SAHF      標志寄存器傳送,把AH內容裝入標志寄存器.
          PUSHF    標志入棧.
          POPF      標志出棧.
          PUSHD    32位標志入棧.
          POPD      32位標志出棧.

二、算術(shù)運算指令
───────────────────────────────────────
          ADD      加法.
          ADC      帶進(jìn)位加法.
          INC      加 1.
          AAA      加法的ASCII碼調整.
          DAA      加法的十進(jìn)制調整.
          SUB      減法.
          SBB      帶借位減法.
          DEC      減 1.
          NEC      求反(以 0 減之).
          CMP      比較.(兩操作數作減法,僅修改標志位,不回送結果).
          AAS      減法的ASCII碼調整.
          DAS      減法的十進(jìn)制調整.
          MUL      無(wú)符號乘法.
          IMUL      整數乘法.
            以上兩條,結果回送AH和AL(字節運算),或DX和AX(字運算),
          AAM      乘法的ASCII碼調整.
          DIV      無(wú)符號除法.
          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      算術(shù)左移.(=SHL)
          SHR      邏輯右移.
          SAR      算術(shù)右移.(=SHR)
          ROL      循環(huán)左移.
          ROR      循環(huán)右移.
          RCL      通過(guò)進(jìn)位的循環(huán)左移.
          RCR      通過(guò)進(jìn)位的循環(huán)右移.
            以上八種移位指令,其移位次數可達255次.
                移位一次時(shí), 可直接用操作碼.    如 SHL AX,1.
                移位>1次時(shí), 則由寄存器CL給出移位次數.
                  如    MOV CL,04
                      SHL AX,CL

四、串指令
───────────────────────────────────────
              DS:SI    源串段寄存器    :源串變址.
              ESI    目標串段寄存器:目標串變址.
              CX        重復次數計數器.
              AL/AX    掃描值.
              D標志    0表示重復操作中SI和DI應自動(dòng)增量; 1表示應自動(dòng)減量.
              Z標志    用來(lái)控制掃描或比較操作的結束.
          MOVS      串傳送.
              ( MOVSB    傳送字符.      MOVSW    傳送字.      MOVSD    傳送雙字. )
          CMPS      串比較.
              ( CMPSB    比較字符.      CMPSW    比較字. )
          SCAS      串掃描.
              把AL或AX的內容與目標串作比較,比較結果反映在標志位.
          LODS      裝入串.
              把源串中的元素(字或字節)逐一裝入AL或AX中.
              ( LODSB    傳送字符.      LODSW    傳送字.      LODSD    傳送雙字. )
          STOS      保存串.
              是LODS的逆過(guò)程.
          REP              當CX/ECX<>0時(shí)重復.
          REPE/REPZ        當ZF=1或比較結果相等,且CX/ECX<>0時(shí)重復.
          REPNE/REPNZ      當ZF=0或比較結果不相等,且CX/ECX<>0時(shí)重復.
          REPC            當CF=1且CX/ECX<>0時(shí)重復.
          REPNC            當CF=0且CX/ECX<>0時(shí)重復.

五、程序轉移指令
───────────────────────────────────────

      1>無(wú)條件轉移指令 (長(cháng)轉移)
          JMP      無(wú)條件轉移指令
          CALL      過(guò)程調用
          RET/RETF過(guò)程返回.

       2>條件轉移指令 (短轉移,-128到+127的距離內)
          ( 當且僅當(SF XOR OF)=1時(shí),OP1           JA/JNBE 不小于或不等于時(shí)轉移.
          JAE/JNB 大于或等于轉移.
          JB/JNAE 小于轉移.
          JBE/JNA 小于或等于轉移.
            以上四條,測試無(wú)符號整數運算的結果(標志C和Z).
          JG/JNLE 大于轉移.
          JGE/JNL 大于或等于轉移.
          JL/JNGE 小于轉移.
          JLE/JNG 小于或等于轉移.
            以上四條,測試帶符號整數運算的結果(標志S,O和Z).
          JE/JZ    等于轉移.
          JNE/JNZ 不等于時(shí)轉移.
          JC        有進(jìn)位時(shí)轉移.
          JNC      無(wú)進(jìn)位時(shí)轉移.
          JNO      不溢出時(shí)轉移.
          JNP/JPO 奇偶性為奇數時(shí)轉移.
          JNS      符號位為 "0" 時(shí)轉移.
          JO        溢出轉移.
          JP/JPE    奇偶性為偶數時(shí)轉移.
          JS        符號位為 "1" 時(shí)轉移.

      3>循環(huán)控制指令(短轉移)
          LOOP              CX不為零時(shí)循環(huán).
          LOOPE/LOOPZ      CX不為零且標志Z=1時(shí)循環(huán).
          LOOPNE/LOOPNZ    CX不為零且標志Z=0時(shí)循環(huán).
          JCXZ              CX為零時(shí)轉移.
          JECXZ            ECX為零時(shí)轉移.

      4>中斷指令
          INT      中斷指令
          INTO      溢出中斷
          IRET      中斷返回

      5>處理器控制指令
          HLT      處理器暫停, 直到出現中斷或復位信號才繼續.
          WAIT      當芯片引線(xiàn)TEST為高電平時(shí)使CPU進(jìn)入等待狀態(tài).
          ESC      轉換到外處理器.
          LOCK      封鎖總線(xiàn).
          NOP      空操作.
          STC      置進(jìn)位標志位.
          CLC      清進(jìn)位標志位.
          CMC      進(jìn)位標志取反.
          STD      置方向標志位.
          CLD      清方向標志位.
          STI      置中斷允許位.
          CLI      清中斷允許位.

六、偽指令
───────────────────────────────────────
          DW        定義字(2字節).
          PROC      定義過(guò)程.
          ENDP      過(guò)程結束.
          SEGMENT 定義段.
          ASSUME    建立段寄存器尋址.
          ENDS      段結束.
          END      程序結束.


本文地址:http://selenalain.com/thread-32734-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
yang66yang66 發(fā)表于 2010-10-17 12:45:00
thanks for sharing
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页