1. 함수
PRINT_MSG: PRINT_STRING msg NEWLINE ret |
이후 call을 사용해 함수를 호출할 수 있다(call PRINT_MSG).
2. 더 큰 수를 반환하기
main: mov mov eax, 22 mov ebx, 15 call MAX PRINT_DEC 1, ecx xor rax, rax ret |
MAX: cmp eax, ebx jg L1 mov ecx, ebx jmp L2 L1: mov ecx, eax L2: ret |
레지스터만 이용하면 값을 덮어 씌워버릴 수도 있기 때문에 다른 방법을 사용할 수 있다.
그러나 메모리를 사용하여 영구적으로 저장할 필요는 없다.
그래서 다른 형태의 메모리가 필요하다.
3. 스택(Stack)
- 메모리 영역, 매개 변수 전달 및 돌아갈 주소 관리 역할
- 기존과 다른 메모리 구조가 필요함 (임시적인 저장소 역할)
- 유동적으로 늘어나거나 줄어들게 할 수 있음
'어셈블리' 카테고리의 다른 글
0-12. 스택 메모리(Stack) (0) | 2023.04.28 |
---|---|
0-10. 배열과 주소(Array, Address) (0) | 2023.04.28 |
0-9. 반복문(Loop) (0) | 2023.04.28 |
0-8. 분기문(If) (0) | 2023.04.28 |
0-7. 시프트 연산과 논리 연산 (0) | 2023.04.28 |