반응형
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연산은 안됨. 중간에 레지스터를 거쳐야한다.
리틀 엔디안/ 빅 엔디안
데이터 저장 순서
이진수의 저장을 낮은 자리수부터, 주소순으로 저장 리틀엔디안
높은 자리수부터 주소순으로 저장 빅엔디안
데이터 리딩 순서
데이터 리딩 순서는 그냥 주소순으로 읽는다.
레지스터도 마찬가지 방식으로 데이터를 저장하고 리딩한다.
반응형
'Programming Tools > Assembly_어셈블리' 카테고리의 다른 글
어셈블리어 정리노트 4 - 조건 분기 명령어 (0) | 2021.05.26 |
---|---|
어셈블리어 정리노트 3 - 주소 참조 연산자 [], 오프셋, 인덱스 (dereference, offset, index) (0) | 2021.05.26 |
어셈블리어 정리노트 3 - JMP, INC, DEC, ADD, SUB (0) | 2021.05.19 |
어셈블리어 정리노트 1 (0) | 2021.05.09 |