0-11. 함수(Function, 프로시저)

Crat3 ㅣ 2023. 4. 28. 16:57

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