어셈블리어 == 기계어와 1:1 대응시켜주는 프로그래밍 언어
Segreg : 16비트 세그먼트 레지스터
Mem : 메모리
Label : 지정된 레이블
Imm : 즉시값(상수)
Reg : 일반 범용 레지스터
범용 레지스터 == 작은 데이터의 임시 공간으로 연산 처리 및 데이터의 주소를 지정하는 역할을 한다. 컴퓨터의 장치들을 제어하는 역할 또한 수행한다.
이름 |
내용 |
EAX |
산술 연산 및 논리 연산 수행 EAX는 일반적으로 함수 리턴 값에 사용 됩니다. |
EBX |
메모리 주소 지정 |
ECX |
반복문 사용시 반복 카운터로 사용, 반복할 횟수 지정하고 반복 작업 수행 |
EDX |
EAX 레지스터와 같이 쓰임, 부호 확장 명령 등에 사용된다. +큰 수의 곱셈 또는 나눗셈 연산 |
EDI |
복사 할 때 목적지 주소가 저장 된다 주로 ESI 레지스터가 가리키는 주소의 데이터가 복사 된다. |
ESI |
데이터를 조작하거나 복사할 때 source Data의 주소가 저장된다. ESI 레지스터가 가리키는 주소의 데이터를 EDI 레지스터가 가리키는 주소로 복사하는 용도로 자주 사용된다. |
ESP |
스택 메모리 주소를 가리킨다 |
EBP |
함수호출시 ESP를 저장하는 용도 |
EIP |
다음에 실행 해야 할 명령어의 주소 포인터 현재 명령어를 실행 완료한 후에 EIP 레지스터에 저장되어 있는 주소에 위치한 명령어를 실행하게 된다. 실행전 EIP 레지스터에는 다음 실행해야 할 명령어가 존재하는 주소의 값이 저장된다. |
원래는 AX,BX…. 등이었지만 기존 16 비트에서 32비트 아키텍쳐가 되면서 범위가 확장됨으로 EAX,EBX … 등으로 E가 붙음 64 비트가 되면 R이 붙는다고 한다.
AX 레지스터의 상위 부분을 AH 라하고 하위 부분을 AL이라고 한다.
세그먼트 레지스터 == 세그먼트에 대한 주소 지정을 제공한다. PC 계열에서 사용 되고 있는 인텔 프로세서들은 자신의 주소 지정 능력을 제공한다.
세그먼트 == 프로그램에 정의된 특정 영역으로, 코드, 데이터, 그리고 스택을 포함한다.
CS |
기계 명령을 포함한 코드 세그먼트의 시작 주소를 가리킴 |
DS |
프로그램에 정의된 데이터 세그먼트의 시작 주소를 가리킴. 데이터 오프셋을 DS 레지스터에 저장된 주소 값에 더해 데이터 세그먼트 내에 위치해 있는 데이터의 주소를 참조 |
SS |
실행과정에서 필요한 데이터나 연산 결과 등을 임시로 저장하거나 삭제할 때 사용 하는 스택 세그먼트의 시작 주소를 가리킴 |
ES |
추가로 사용된 데이터 세그먼트의 주소를 가리킴 |
FS |
사용처 미정, 여분 레지스터 |
GS |
플래그 레지스터 == 마이크로프로세서에서 다양한 산술 연산 결과의 상태를 알려주는 플래그 비트들을 저장한다. 조건문과 같은 실행 순서의 분기를 정할 때 주로 사용 된다.
Z |
제로 플래그. 연산 결과가 0일 경우 참 |
C |
캐리 플래그. 부호 없는 숫자의 연신 결과가 비트 범위를 넘어섰을 경우 참 |
A |
보조 캐리 플래그. 연신 결과 하위 4BIT에서 비트 범위를 넘어 섰을 경우 참 |
O |
오버플로우 플래그. 부호 있는 숫자의 연산 결과가 비트 범위를 넘어 섰을 경우 참 |
S |
사인 플래그. 연산 결과가 음수일 경우 참 |
P |
패리티 플래그. 연산 결과에서 1로 된 비트의 수가 짝수일 경우 참 |
D |
디렉션 플래그. 문자열 조작에서 참일 경우 주소 레지스터 값이 감소, 거짓일 경우 증가 |
T |
트랩 플래그.참일 경우 한 명령이 실행 될 때마다 인터럽트 발생. 디버깅에 사용 |
인터럽트 : 마이크로프로세서에서 인터럽트란 마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요한 경우에 마이크로 프로세서에게 알려 처리할 수 있도록 하는 것을 말한다.
디버깅(디버그) : 컴퓨터 프로그램이나 시스템의 정확성 또는 논리적인 오류를 검출하여 제거하는 과정을 뜻한다.
'리버싱에 관하여 > 기초내용' 카테고리의 다른 글
어셈블리어_2<어셈블리 명령어를 알아보자_1> (0) | 2020.09.04 |
---|---|
각종 디버거 단축키 모음_v1 (0) | 2020.09.03 |
아 윈도우7에서 왜 프리패치가 안되는데;; (0) | 2020.07.27 |