일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 경기대학교
- webhacking.kr
- SuNiNaTas
- ARP Redirect
- 명품자바프로그래밍
- 써니나타스
- pythonchallenge
- 리눅스
- 자바
- 실습문제
- 대외활동
- 파이썬챌린지
- 리버싱
- 피들러
- FTZ
- html5
- 파이썬
- Web
- 웹해킹
- setCookie
- C
- 암호수학
- 해커스쿨
- java
- 석문초등학교
- C언어
- 웹
- 쏙쏙캠프
- Linux
- hackerschool
- Today
- Total
Hongfluenza
[System] Intel과 AT&T 어셈블리어 문법 본문
어셈블리어는 Intel 과 AT&T
두 가지의 문법을 가지고 있다.
1. 접두사 규칙
#Intel
어떠한 접두사, 접미사가 붙지 않는다.
16진수 'h'
2진수 'b'
6진수 '0'을 접두사로 사용한다.
#AT&T
'%' 접두사
'$' 접두사
EX)
intel 문법
AT&T 문법
mov eax,1
mov #1, %eax
mov ebx, 0ffh
movl $0xff, %ebx
int 80h
int $0x80
2. 오퍼랜드(operand)의 위치
Intel과 AT&T의 문법에서 오퍼랜드의 위치는
서로 정반대로 사용된다.
#Intel
목적지(destination),원본(source)
#AT&T
원본(source), 목적지(destination)
EX)
intel 문법
AT&T 문법
instr dest, source
instr source, dest
mov eax, [ecx]
mov %ecx, %eax
3. 메모리 오퍼랜드
#Intel
기본 레지스터(base register) 는 '[' 와 ']' 사이에 놓인다.
#AT&T
기본 레지스터(base register) 는 '(' 와 ')' 사이에 놓인다.
EX)
intel 문법
AT&T 문법
mov eax, [ebx]
movl (%ebx), %eax
mov eax, [ebx+3]
movl 3(%ebx), %eax
4. 접미사
#Intel
접미사를 사용하지 않고 의미있는 문장 그대로 사용한다.
byte, ptr, word ptr, dword ptr와 같이 사용한다.
"dword"는 "long"과 같은 크기를 가진다.
#AT&T
정해진 접미사 규칙을 따른다.
각각의 접미사는 고유의 의미를 가지고 있으며,
접미사에 따라서 오퍼랜드의 크기도 정해진다.
'STUDY > SYSTEM' 카테고리의 다른 글
8086 CPU 레지스터 구조 (0) | 2019.08.11 |
---|---|
setvbuf 함수 (0) | 2018.04.30 |
함수 호출 규약(Calling Convention) (0) | 2018.04.09 |