어셈블리어

어셈블리어 기초

DkDragon 2018. 1. 9. 09:00


어셈블리어의  장점 : 원하는 메모리 어드레스에 직접 엑세스하여 제어할수 있다.



어셈블리어 기본명령어


MOV    목적지, 값

XCHG   레지스터 1, 레지스터 2 

POP     레지스터

PUSH   레지스터


ADD     레지스터 1, 레지스터 2 

ADD     레지스터, 값


SUB     레지스터 1, 레지스터 2 

SUB     레지스터, 값


MUL    레지스터
DIV      레지스터

AND 레지스터 1, 레지스터 2 
AND 레지스터, 값

OR 레지스터 1, 레지스터 2 
OR 레지스터, 값

XOR 레지스터 1, 레지스터 2 
XOR 레지스터, 값

NOT 레지스터 
NOT 값

레지스터란  CPU 명령은 register라고 불리는 CPU 그 자체에 있는 특정 저장 영역에 있는 데이터를 요구한다. 즉 레지스터를 데이터를 저장하는 영역

어셈블리어 레지스터  


AX  = AH + AL  

       수학 연산, I/O 연산, INT 21(인터럽트 21 -> 실행 인터럽트) 

BX  = BH + BL

        베이스 ,포인터 레지스터

CX  = CH + BL

        루프,반복시 사용 되는 레지스터

DX  = DH + DL

        보조,문자 출력시 사용되는 레지스터


AX, BX, CX ,DX ==16 Bit 로

   AH, AL, DH, DL, BH, BL, CH, CL, 은 각각 8 Bit

 E(Extended ) 확장된 레지스터가 존재하며 

각각


EAX, EBX, ECX, EDX ==32 Bit 로 사용된다.


세그먼트 레지스터 :CS ( Code Segment) : 실제 기계어 명령이 들어가 있는 곳

                         DS ( Data Segment)  : 프로그램에서 사용하는 데이터가 들어가 있는 곳

                         ES (Extra Segment)   : 데이터 세그먼트의 보조수단 

                         SS (Stack Segment)  :  스택이 있는 곳


간접 주소 방식     SI ,DI ,BX ,BP 확용하여 메모리 주소를 참조한다