ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 80x86 asm 명령어
    Programming/Assembly 2008. 11. 17. 09:19

    80x86 명령어

     AAA  -  ASCII Adjust after Addition

    기능 : ASCII 코드로 된 두 디지트를 ADD 명령어가 더한후에 이용한다


    AAD  -  ASCII Adjust before Division

    기능 : AL과 AH에 있는 2개의 언팩 BCD 디지트를 이진수로 변환하기 위해

          DIV 명령어 앞에서 사용한다


    AAM  -  ASCII Adjust after Multiplication

    기능 : MUL명령어가 2개의 언팩 BCD를 곱하고 난 후 사용한다.


    AAS  -  ASCII Adjust after Subtraction

    기능 : 두 디지트를 빼고 난후, AL에 있는 결과를 팩 BCD로 변환하기 위해 사용한다.


    ADC  -  Add with Carry

    기능 : 이 명령어 앞에서 CF=1인 경우 이 명령어를 실행하면 원천 오퍼랜드에 목적지

           오퍼랜드가 더해지고 그리고 1이 더해진다


    ADD  -  Signed or Unsigned ADD

    기능 : 원천 오퍼랜드를 목적지 오퍼랜드에 더하고 그 결과를 목적지 오퍼랜드에 저장한다


    AND  -  Logical AND

    기능 : 두 오퍼랜드에 대해 논리 AND를 수행하여 그 결과를 목적지 오퍼랜드에 저장한다


    CALL  -  Call a Procedure

    기능 : 제어를 프로시져로 넘긴다. RET를 사용하여 제어를 CALL 다음의 명령어로 되돌린다


    CBW  -  Convert Byte to Word

    기능 : D7을 AH의 모든 비트로 복사한다


    CLC  -  Clear Carry Flag

    기능 : CF를 0으로 리셋시킨다. (CF=0)


    CLD  -  Clear Direction Flag

    기능 : DF를 0으로 리셋시킨다. (DF=0)


    CLI  -  Clear Interrupt Flag

    기능 : IF를 0으로 리셋시킨다. (IF=0)


    CMC  -  Complement Carry Flag

    기능 : CF를 0에서 1로 또는 1에서 0으로 바꾼다.


    CMP  -  Compare Operands

    기능 : 길이가 같은 두 오퍼랜드를 비교한다. 원천 및 목적지 오퍼랜드는 변경되지 않는다.

    CMPS/CMPSB/CMPSW  -  Compare Byte or Word String

    기능 : 스트링을 한번에 한 바이트 또는 한 워드씩 비교한다.


    CWD  -  Convert Word to Doubleword

    기능 : AX의 부호 비트를 DX의 모든 비트에 복사하여 AX에 있는 부호없는 워드를 더블워드로

          변환한다.


    DAA  -  Decimal Adjust after Addition

    기능 : BCD 숫자를 더한 다음에 결과를 다시 BCD로 변환하기 위해 사용한다.


    DAS  -  Decimal Adjust after Subtraction

    기능 : BCD 숫자를 뺄셈한 다음에 결과를 다시 BCD로 변환하기 위해 사용한다.


    DEC  -  Decrement

    기능 : 목적지 오퍼랜드에서 1을 뺀다.


    DIV  -  Unsigned Division

    기능 : 부호없는 워드(AX)를 바이트로 나누거나 부호없는 더블워드(DX:AX)를 워드로 나눈다


    ESC  -  Escape

    기능 : 마이크로프로세서와 데이터 버스 및 어드레스 버스를 공유하는 수학 보조프로세서

           (8087과 같은)를 사용할수 있게 해준다.


    HLT  -  Halt

    기능 : 마이크로프로세서로 하여금 명령어의 실행을 정지시킨다.


    IDIV  -  Signed Number Division

    기능 : 부호있는 워드(AX)를 바이트로 나누거나 부호있는 더블워드(DX:AX)를 워드로 나눈다


    IMUL  -  Signed Number Multiplication

    기능 : 부호있는 바이트 또는 워드 원천 오퍼랜드를 AL 또는 AX에 있는 부호있는 바이트

          또는 워드에 곱하여 그 결과를 AX 또는 DX:AX에 저장한다


    IN  -  Input Data form Port

    기능 : 두 번째 오퍼랜드에서 지정한 입력 포트로부터 바이트 또는 워드를 AL 또는

           AX로 전송한다


    INC  -  Increment

    기능 : 오퍼랜드에 의해 지정된 레지스터 또는 메모리 위치에 1을 더한다.


    INT -  Intettupt

    기능 : 실행을 256가지의 인터럽트중의 하나로 넘긴다.


    INTO  -  Interrupt on Overflow

    기능 : OF가 1로 세트되면 오버플로우를 위해 작성해놓은 인터럽트 처리기로 실행을 넘긴다

    IRET  -  Interrupt Return

    기능 : ISR의 끝에서 사용되며, 실행이 INT 명령어 다음의 명령어에서 계속되도록 하기

          위해 모든 플래그, CS 및 IP를 인터럽트 수행 이전에 가졌던 값으로 복원 시킨다


    JUMP  -  명령어

    기능 : 어떤 조건이 만족되면 행선지 번지로 점프하도록 하는데 사용한다.


    JMP  -  Unconditional Jump

    기능 : 새로운 번지로 제어를 무조건 넘기는데 사용한다. JMP와 CALL의 차이는, CALL 명령어는

           CALL 다음의 명령어로 되돌아와 실행을 계속하는 반면 JMP는 되돌아오지 않는다


    LAHF  -  Load AH from Flags

    기능 : 플래그 레지스터의 하위 8비트를 AH에 로드한다


    LDS  -  Load Data Segment Register

    기능 : 원천이 가르키는 2개의 메모리 위치의 내용을 목적지(레지스터이다)에 로드하고

           그 다음의 2개의 연속적인 메모리 위치의 내용을 DS에 로드한다.


    LEA  -  Load Effective Address

    기능 : 직접 메모리 오퍼랜드의 유효 번지를 목적지에 로드한다.


    LES  -  Load Extra Segment Register

    기능 : 원천이 가르키는 2개의 메모리 위치의 내용을 목적지(레지스터이다)에 로드하고

           그 다음의 2개의 연속적인 메모리 위치의 내용을 ES에 로드한다.


    LOCK  -  Lock System Bus Prefix

    기능 : 2개 이상의 프로세서가 있는 마이크로컴퓨터에서 한 프로세서가 명령어를 실행하고 있는

          동안 다른 프로세서가 시스템 버스의 제어권을 빼앗지 못하도록 하기 위해 사용된다


    LODS/LODSB/LODSW   Load Byte or Word String

    기능 : DS:SI가 가리키는 메모리 위치로부터의 바이트 또는 워드를 AL 또는 AX에 로드 한다.


    LOOP  -  Loop until CX =0

    기능 : CX를 1 감소시킨 다음 CX가 아니면 오퍼랜드가 가리키는 곳으로 점프하며,

           0일 경우에는 LOOP아래에 있는 다음 명령어를 실행 시킨다.


    LOOPE / LOOPZ  -  Loop if Equal / Loop if Zero

    기능 : CX를 1 감소시킨 다음 CX가 0이 아니면서 ZF = 1이면 오퍼랜드가 가리키는

            곳으로 점프하고 그렇지 않으면 다음의 명령어에서 실행을 계속한다.


    LOOPNE / LOOPNZ  -  Loop While CF Not Zero and ZF Equal Zero

    기능 : CX를 1 감소시킨 다음 CX와 ZF가 0이 아니면 오퍼랜드가 가리키는 위치로 점프하고

           그렇지 않으면 이 명령어 다음에서 실행을 계속한다.

    MOV  -  Move

    기능 : 레지스터, 메모리 위치, 즉석 상수인 워드 또는 바이트를 레지스터 또는 메모리

            위치에 복사한다.


    MOVS / MOVSB / MOVSW  Move Byte or Word String

    기능 : DS : SI가 가리키는 메모리의 위치로부터 바이트 또는 워드를 ES : DI가

            가리키는 메모리 위치로 복사한다.


    MUL  -  Unsigned Multiplication

    기능 : 오퍼랜드가 가리키는 부호 없는 바이트 또는 워드를 AL 또는 AX에 들어있는 바이트

            또는 워드에 곱한 결과를 AX 또는 DX : AX 에 저장한다.


    NEG  -  Negate

    기능 : 오퍼랜드에 대해 2의 보수를 취한다.


    NOP  -  No Operation

    기능 : 아무 일도 수행하지 않는다.


    NOT  -  Logical NOT

    기능 : 오퍼랜드에 대해 1의 보수를 취한다.


    OR  -  Logical OR

    기능 : 두 오퍼랜드에 대해 비트끼리 논리 OR 연산을 수행하고 그 결과를 목적지

            오퍼랜드에 저장한다.


    OUT  -  Output Byte or Word

    기능 : 이 명령어는 AL 또는 AX 에 있는 바이트 또는 워드를 첫 번째 오퍼랜드에서 

             지정한 출력 포트로 내 보낸다.


    POP  -  POP Word

    기능 : 스택포인터가 가리키는 워드를 오퍼랜드가 가리키는 레지스터 메모리위치로 복사하고

            SP를 2 증가 시킨다.


    POPF  -  POP Flags off Stack

    기능 : 스택에 PUSH시켜 놓았던 비트를 플래그 레지스터로 복사한 다음에 SP를

            2 증가 시킨다.


    PUSH  -  PUSH Word

    기능 : 스택에 원천 오퍼랜드의 워드를 복사하고 SP를 2 감소시킨다.


    PUSHF  -  PUSH Flags onto Stack

    기능 : SP를 2 감소시킨 다음에 플래그 레지스터의 내용을 스택에 복사한다.


    RCL / RCR  -  Rotate Left through Carry and Rotate Right through Carry

    기능 : 오퍼랜드의 비트들을 왼쪽 또는 오른 쪽으로 회전시킨다.

    RET  -  Return from a Procedure

    기능 : 앞서 CALL 명령어에 의해 호출되었던 피호출 프로시저로부터 호출프로시저로

            복귀하는데 사용된다.


    ROL / ROR  -  Rotate Left and Rotate Right

    기능 : 첫번째 오퍼랜드 비트들을 두 번째 오퍼랜드에서 지정한 비트 수만큼 왼쪽 또는

             오른쪽으로 회전시킨다.


    SAHF  -  Store AH in Flag Register

    기능 : AH의 내용을 플래그 레지스터의 하위 8비트에 복사한다.


    SAL / SAR  -  Shift Arithmetic Left / Shift Arithmetic Right

    기능 : 워드 또는 바이트를 왼/오른쪽으로 쉬프트 시킨다. 부호 있는 숫자를 쉬프트 할 때 사용


    SBB  -  Subtract with Borrow

    기능 : 목적지 오퍼랜드로부터 원천 오퍼랜드를 빼고 그 결과를 목적지 오퍼랜드에 저장한다.


    SCAS / SCASB / SCASW  -  Scan Byte or Word String

    기능 : ES:DI가 가리키는 스트링에 대해 AL 또는 AX에 있는 값이 있는지 조사한다.


    SHL / SHR  -  Shift Left / Shift Right

    기능 : 부호 없는 수에 사용되는 논리쉬프트로써 부호 비트도 데이터로 취급한다.


    STC  -  Set Carry Flag

    기능 : CF를 1로 세트 시킨다.


    STD  -  Set Direction Flag

    기능 : DF를 1로 세트 시킨다. 스트링 명령어와 사용


    STI  -  Set Interrupt Flag

    기능 : IF를 1로 세트 시킨다.


    STOS / STOSB / STOSW  - Store Byte or Word String

    기능 : AX, AL의 내용을 ES:DI가 가리키는 위치에 복사하고, DI를 1또는 2 증가시킨다.


    SUB  -  Subtract

    기능 : 목적지 오퍼랜드로부터 원천 오퍼랜드를 빼서 그 결과를 목적지에 저장한다.


    TEST  -  Test Bits

    기능 : 두 오퍼랜드에 대해 논리 AND를 수행하고 플래그를 설정하지만 두 오퍼랜드의 내용은

          변하지 않는다.


    WAIT  -  Puts Processor in WAIT State

    기능 : 마이크로프로세서로 하여금 외부 인터럽트가 발생할 때까지 대기상태에 들어가도록 한다.


    XCHG  -  Exchange

    기능 : 두 레지스터 또는 레지스터와 메모리 위치의 내용을 교환한다.


    XLAT  -  Translate

    기능 : AL의 내용을 AL이 가리키는 룩업 테이블의 내용으로 대체한다.


    XOR  -  Exclusive OR

    기능 : 두 오퍼랜드의 비트들에 대해 논리 XOR를 수행하여 그 결과를 목적지 오퍼랜드에 저장한다

    댓글

Designed by Tistory.