- 어셈블리 언어 기초를 학습한다.
- 어셈블리 언어로 프로그램을 작성한다.
어셈블리 언어 기초
- high level L와 machine L 사이에 위치한다.
- Symbolic(mnemonic)을 띈다.
- 하드웨어 제어에 사용된다.
- 하드웨어와 소프트웨어 co-design 에 쓰인다. (같이볼 때)
어셈블리 언어 학습
1) 어셈블리 언어 구성요소
1. Opcode 는 Operand 를 0개~3개 가질 수 있다.
2. Basic Opcode(mov) + suffix(b/w/l/q)
- b:byte 1바이트(=8비트)
- w:word 2바이트
- l:long, double word 4바이트
- q:quad word 8바이트
3. Operand 는 세가지 타입으로 정의할 수 있다.
- register : %
- literal : $
- memory : alphanumeric
2) AT&T문법 vs Intel문법 비교하기
Intel
MOV EAX, EBX ; EAX 레지스터에 EBX 값을 복사
ADD EAX, 10 ; EAX에 10을 더함
AT&T
movl %ebx, %eax ; EBX 값을 EAX로 복사
addl $10, %eax ; EAX에 10을 더함
3) 어셈블리 언어 프로그래밍
* jmp instruction
* 어셈블리 프로그래밍 예제1 : asm_sum 함수만 어셈블리 코딩하기
* 어셈블리 프로그래밍 예제2 : main 함수, asm_sum 함수 둘 다 어셈블리 코딩하기
* write() vs printf()
write() | printf() |
system call() | library() |
커널모드에서 작동 | 유저모드에서 작동 |
call opcode 사용 | int opcode 사용 |
레지스터에 저장됨 | 스택에 저장됨 |
* 지시어란?
'전공과목 스터디 > 시스템 프로그래밍' 카테고리의 다른 글
[시프] Lecture9 (0) | 2024.12.07 |
---|---|
[시프] Lecture 8 (0) | 2024.11.30 |
[시프] Lecture 6 (1) | 2024.11.30 |
[시프] Lecture 5 (0) | 2024.11.30 |
[시프] Lecture 4 (0) | 2024.11.30 |