본문 바로가기
코스웨어/12년 내장형하드웨어

[assembly]0821-업무일지

by 알 수 없는 사용자 2012. 8. 23.
728x90
반응형

●assembly 개요.

 

8088,8086 - 16bit registers: AX, BX, CX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS

80286 - 16bit protected mode

80386 - 32bit protected mode: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP

 

 ex) The AX register

            AX

        AH(상위)

       AL(하위) 

 

●Basic Instructions

 

 ▶ ; (세미콜론) : 어셈블리에서 이 뒤에오는 것은 주석이라는 의미이다. ( C에서 //과 같다.)

 

 ▶MOV : 하나의 데이터를 다른 지역으로 옴기는 명령어.( C에서는 '='과 같다. )

  ex) mov    dest, src                ; dest = src;

    

 ▶ADD : 덧셈.

 ex) add    eax, 4(immediate)        ; eax = eax + 4;

 

 ▶SUB : 뺄셈.

  ex) sub    bx, 10                   ; bx = bx - 10;

 

 ▶INC, DEC

  ex) inc    ecx                      ; ecx++;

      dec    dl                       ; dl--;

●Directives

 C언어와 비교하면 어떠한 값이나 변수를 정의하는 역할이라고 할 수 있다. 그러나 그것보다 다양한 역할을 한다. 어떤 역할을 하는지 살펴보자.

 

 ▶equ : 어떠한 값을 정의 할때 쓴다.

  ex) PI    equ    3.14               ; #define    PI    3.14

 

 ▶Data directives

 

  Unit

 Letter 

 Size 

 byte

   B 

 1  byte 
 word     W  2  byte

 double word

   D  4  byte

 quad word

   Q  8  byte
 ten byte    T  10 byte

 

L1    db    0                        ;L1을 1byte크기로 정하고 0을 넣음.

L3    db    110101b                  ;L3을 1byte크기로 정하고 2진수 110101을 넣음.

L7    resb  1                        ;res는 값을 넣지 않는다는 뜻이다.

                                      b는 위의 표에 1byte크기를 뜻한다.

     초기화되지 않은 1byte크기 공간을 1개 만든다.

L10   resw  100                      ;초기화되지 않은 2byte크기 공간을 100개 만든다.

L11   times 100 db  0                ;0으로 초기화된 1byte크기 공간을 100개 만든다.

L12   db    "w","o","r","d", 0       ;1byte크기 공간에 각각 글자 하나씩들어가며 마지막

                                      에는 직접 0(NULL)을 입력 해야한다.     

 

728x90