Programming Tools/Assembly_어셈블리

어셈블리어 정리노트 2

LiDARian 2021. 5. 10. 18:20
반응형

INTEL 문법 기준이다.

 

어셈블리어 명령 구조

opcode operand

opcode가 연산자 operand가 피연산자

 

범용레지스터

EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI 등의 4바이트=32비트 레지스터 공간이다.

EAX 12345678 이면,

AX 5678

AH 56

AL 78

 

MOV 연산자

mov eax, 1 //1을 eax로 대입

mov eax, ebx //ebx을 eax로 대입

MOV REG REG 인경우(피연산자가 모두 레지스터인 경우), 양쪽의 크기가 같아야한다.

어셈블리어는 크기 조절에 관한 명령어가 없다.

 

하나의 주소에 1바이트=8비트 크기의 메모리가 할당되어있다.

주소지정은 다음과 같이 [address] 형태로

ex ) [4002000] 그 한 바이트만 지정한다.

 

mov [402000], al
# 결과는 mov byte ptr ds [402000], al

mov cl, [402000]
# 결과는 mov cl, byte ptr ds:[402000]

메모리에서 메모리로 MOV연산은 안됨. 중간에 레지스터를 거쳐야한다.

 

리틀 엔디안/ 빅 엔디안

 

데이터 저장 순서

이진수의 저장을 낮은 자리수부터, 주소순으로 저장 리틀엔디안

높은 자리수부터 주소순으로 저장 빅엔디안

 

데이터 리딩 순서

데이터 리딩 순서는 그냥 주소순으로 읽는다.

 

레지스터도 마찬가지 방식으로 데이터를 저장하고 리딩한다.

반응형