• <output id="bjhkx"></output>
  • <blockquote id="bjhkx"><u id="bjhkx"><dl id="bjhkx"></dl></u></blockquote>
  • <listing id="bjhkx"><dfn id="bjhkx"></dfn></listing>

  • <mark id="bjhkx"></mark>
      <blockquote id="bjhkx"></blockquote>

      1. 安全、高速、放心的軟件下載

        匯編指令速查手冊

        時間:2019-05-21 09:21:01來源:本站原創人氣:0
        匯編指令速查手冊
         一、數據傳輸指令 
        ─────────────────────────────────────── 
            它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送數據. 
            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,04 
                            SHL 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時,OP1
                JA/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    程序結束. 

        (完)

        網友評論
        福布斯彩票