'어셈블리어'에 해당되는 글 2건

  1. 2009.11.23 Visual Studio 6.0 asm 파일 생성하기 (3)
  2. 2008.03.25 80x86 asm 명령어 (2)
코드 작성 후 

Project > Settings 에 진입한다.

그 후 다음과 같이 설정


그리고 컴파일하면 다음과 같이 Debug 폴더에 asm 파일이 생성된다...



수고~
Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

  1. 스파게티코더 2009.11.24 21:54  댓글주소  수정/삭제  댓글쓰기

    앗 교육시간에 포스팅을~!

  2. BlogIcon louis vuitton replicas 2012.09.12 13:22  댓글주소  수정/삭제  댓글쓰기

    아직 트윗된 메시지가 없습니다. 가장 먼저 공유하세요!

80x86 asm 명령어

Programming 2008.03.25 15:55

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를 수행하여 그 결과를 목적지 오퍼랜드에 저장한다.


[출처]
80x86 asm 명령어|작성자 액숀가면

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

  1. BlogIcon 좋은향기 2009.06.16 16:52  댓글주소  수정/삭제  댓글쓰기

    좋은 자료 감사합니다.
    출처 공개하고 담아갑니다.
    문제있으면 연락주세요^^