728x90
반응형
SMALL
어셈블리어란 무엇인가?
어셈블리어는 컴퓨터 프로그래밍의 저급 언어로, 기계어와 일대일 대응이 되는 언어이다.
기계어는 0과 1의 이진수로 구성되어 있어서 컴퓨터가 바로 읽을 수 있지만, 인간이 이해하기 어렵다.
그래서 기계어의 명령어에 대응하는 기호나 약어를 사용하여 프로그래밍을 할 수 있는 언어가
어셈블리어이다.
아키텍처별 어셈블리어의 문법
x86 아키텍처는 CISC 어셈블리어 문법에 기반하며, 다양한 주소 지정 모드와 명령어 형식을 가진다.
x86 어셈블리어는 AT&T 문법과 인텔 문법으로 나뉜다.
AT&T 문법은 소스 피연산자를 먼저 쓰고 목적 피연산자를 나중에 쓰지만, 인텐 문법은 그 반대이다.
또한, AT&T는 피연산자의 크기를 접두사로 붙이는 반면, 인텔은 접미사로 붙인다.
주요 문법
mov : 메모리나 레지스터의 값을 다른 곳으로 이동시키는 명령어
ex) mov eax, ebx : ebx 레지스터의 값을 eax 레지스터로 복사
add : 두 값을 더하는 명령어
ex) add eax, ebx : eax 레지스터와 ebx 레지스터의 값을 더하고 그 결과를 eax 레지스터에 저장
lea : Load Effective Address의 약자로, 메모리 주소를 계산하여 레지스터에 저장하는 명령어
ex) lea eax, [ebx+8] : ebx 레지스터에 8을 더한값을 eax 레지스터에 저장
arm 아키텍처는 RISC 어셈블리어 문법에 기반하며, 간단하고 일관된 명령어 형식을 가진다.
arm 어셈블리어는 UAL이라고 불리며, arm 모드와 thumb 모드의 명령어를 통합한 언어이다.
728x90
반응형
LIST
'시스템 보안 > 이론' 카테고리의 다른 글
[System] 함수 프롤로그란 무엇인가? (0) | 2023.03.14 |
---|---|
[System] 컴퓨터의 메모리 구조 (0) | 2023.03.13 |
[System] 아키텍처의 종류 (0) | 2023.03.13 |
[System] 아키텍처란 무엇인가? (0) | 2023.03.13 |
[System] 고급언어, 저급언어, 기계어란 무엇인가? (0) | 2023.03.13 |