어셈블리어를 배워야 하나?
General
Data
산술, 논리 및 기타 연산Pointer
포인터Index
주소Control
16bit
는 기본 AX
, BX
, CX
등으로 사용32bit
는 E
접두어 사용 EAX
, EBX
, ECX
64bit
는 R
접두어 사용 RAX
, RBX
, RCX
AX
accumulator, 누산기, 입력/출력 및 대부분의 산술 명령어 return값이 여기에 저장BX
base, 기본 인덱싱된 주소 지정 (asc)CX
count, 반복 작업에서 루프 카운트 (desc)DX
data 다른 데이터 레지스터와 함께 사용되는 여분의 레지스터Instruction Pointer (IP)
다음에 실행할 명령어의 오프셋 주소를 저장Stack Pointer (SP)
스택 내에서 끝 지점Base Pointer (BP)
스택 내에서 시작 지점Source Index (SI)
원본 주소 indexDestination Index (DI)
대상 주소 indexOverflow Flag (OF)
연산 끝나고 변수 범위초과 여부Direction Flag (DF)
문자열 데이터를 이동하거나 비교할 때 왼쪽 또는 오른쪽 방향Interrupt Flag (IF)
키보드 입력 등과 같은 외부 인터럽트를 무시할지 또는 처리할지Trap Flag (TF)
단일 단계 모드에서 프로세서의 작동을 설정Sign Flag (SF)
연산 결과의 부호Zero Flag (ZF)
산술 또는 비교 연산의 결과Auxiliary Carry Flag (AF)
보조 캐리Parity Flag (PF)
짝수 홀수Carry Flag (CF)
캐링, 말그대로 줄바꿈 혹은 줄의 시작점 등을 담당세그먼트 자체는 블락 역할이고 그 시작위치, 끝위치를 담당하는 레지스터들임
Code Segment(CS)
실행할 모든 명령어Data Segment(DS)
데이터, 상수 및 작업 영역Stack Segment(SS)
프로시저 또는 서브루틴의 데이터 및 리턴 주소MOV [a] [2]
2의 value를 a에 넣어라LEA [a] [2]
2의 address를 a에 넣어라POP
스택에서 최상단을 빼라CMP
비교ADD
, SUB
더하기 빼기뭐 이런...