본문 바로가기
프로그램 개발

[어셈블리어]범용, 세그먼트, 상태 레지스터

by DRIN 2016. 10. 2.

목차

    반응형

    저번에 범용 레지스터중에서 EAX, EBX, ECX, EDX에 대해서 알아보았습니다. 

    오늘은 나머지 레지스터에 대해 알아볼텐데요. 


    저번에 알려드렸던 것이 기억이 안나실수도있으니 복습의 개념으로 다시 언급하도록 하겠습니다. 

    레지스터에는 범용 레지스터, 세그먼트 레지스터, 상태 레지스터로 나뉩니다. 


    범용레지스터에는 EAX EBX ECX EDX ESI EDI ESP EBP가 있습니다. 

    여기서 E가 뜻하는 것은 Extends의 약자로 32bit로 연장했다는 것을 뜻합니다. 

    16bit는 AX BX CX DX SI DI SP BP가 되겠습니다. 


    이 레지스터들은 기능에 따라 분류가 되어있는데, EAX는 누산기 레지스터라고도 불리며, 곱셈이나 나눗셈연산 등에 사용됩니다. 


    EBX는 베이스 레지스터라고 불리며 메모리 주소 지정시에 사용합니다. 


    ECX는 계수기 레지스터라고 불리며 Loop같은 반복 명령에 사용됩니다. 


    EDX는 데이터 레지스터라 불리고 곱셈 나눗셈에서 EAX와 함께 쓰이고 부호 확장 명령등에 사용합니다. 


    ESI는 많은 양의 메모리를 옮기거나 비교할 때 해당하는 소스의 주소를 가지는 기능을 가지고 있습니다.


    EDI는 많은 양의 메모리를 옮기거나 비교할 때 해당 목적지의 주소를 가리킵니다. 


    ESP는 스택 포인터로 스택의 최종점을 저장합니다. 

    Push명령에 늘어나고, Pop명령에 줄어듭니다. 

    나중에 스택 명령에 대해 배우니 자세히 아실 필요는 없습니다. 


    EBP는 ESP를 대신해서 스택에 저장된 함수의 변수나 지역 변수의 주소를 가리키는 용도로 사용됩니다. 

    즉, 스택의 저장공간을 뜻하죠. 


    다음으로 세그먼트 레지스터에는 ES CS SS DS FS GS가 있습니다. 


    ES는 보조세그먼트 레지스터로서 두 곳이상의 데이터 저장영역을 가리켜야 할때 DS 레지스터와 함께 사용합니다. 


    CS는 코드 세그먼트의 줄임말로서 코드의 시작주소를 가지고 있습니다. 


    SS는 스택 세그먼트를 가리키는 레지스터로서 스택의 시작 주소를 담고 스택 조작에 의해서 데이터를 처리하는 동작이 이루어집니다. 


    DS는 데이터 세그먼트를 가리키는 레지스터로서 데이터의 시작주소를 담고 있습니다. 


    FS와 GS는 보조 세그먼트 레지스터로서 운영체제를 만드는 것이 아니라면 자세히 알 필요가 없습니다. 


    상태 레지스터에는 EIP EFLAGS가 있습니다. 


    EIP는 현재 실행되고 있는 프로그램의 실행코드가 저장된 메모리의 주소를 가리키는 레지스터로 

    프로그램의 실행이 진행됨에 따라 변경되고 딱히 손댈 필요 없는 레지스터입니다. 


    EFLAGS는 비트 단위의 플래그(특정 동작을 수행할지 말지 결정하는 변수)들을 저장하는 레지스터로 특별한 용도로 사용됩니다.


    이렇게 컴퓨터에는 많은 종류의 레지스터가 존재합니다. 


    이렇게 많은 레지스터를 알 필요는 없습니다. 

    대충 어떤 역할을 하는지만 아시면 됩니다. 


    그럼 다음 강좌에서 뵙죠.

    2016/09/27 - [어셈블리어] - [어셈블리어] 아스키코드 ASCII Code

    2016/09/27 - [어셈블리어] - [어셈블리어] 레지스터(Register)

    2016/09/27 - [어셈블리어] - [어셈블리어] 3장 명령어: mov


    반응형

    '프로그램 개발' 카테고리의 다른 글

    [C언어] 연산자의 결합방향  (0) 2016.10.02
    [C언어] 변수 그리고 주의사항  (0) 2016.10.02
    [C언어] 연산자  (0) 2016.10.01
    [C언어] printf의 사용법 그리고 주의 사항  (0) 2016.10.01
    [C언어] 주석 처리  (0) 2016.10.01