RAX ๋ ์ง์คํฐ
- x86-64 ์ํคํ ์ฒ์์์ 64๋นํธ ๋ฒ์ฉ ๋ ์ง์คํฐ๋ก, ์ฃผ๋ก ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์์คํ ํธ์ถ์ ๋ฐํ ๊ฐ์ ๋ณด๊ดํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. RAX๋ 64๋นํธ ๋ ์ง์คํฐ์ด๋ฉฐ, 32๋นํธ์์๋ EAX, 16๋นํธ์์๋ AX, ๊ทธ๋ฆฌ๊ณ 8๋นํธ์์๋ AL ๋ฐ AH๋ก ๋ถ๋ถ์ ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
RAX ๋ ์ง์คํฐ์ ์ฃผ์ ์ฉ๋
- ์ฐ์ฐ ๊ฒฐ๊ณผ ์ ์ฅ
- RAX ๋ ์ง์คํฐ๋ ์ฐ์ ๋ฐ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ์๋ฅผ ๋ํ๊ฑฐ๋ ๊ณฑํ ๊ฒฐ๊ณผ๊ฐ ์๋์ผ๋ก RAX์ ์ ์ฅ๋ฉ๋๋ค.
- ๊ณฑ์ ์ฐ์ฐ ์, RAX๋ ํผ์ฐ์ฐ์๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ ์ฅํ๋ ์ฉ๋๋ก ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
- ์์คํ
ํธ์ถ์ ๋ฐํ ๊ฐ ์ ์ฅ
- x86-64 ์ํคํ ์ฒ์์ ๋ฆฌ๋ ์ค์ ๊ฐ์ ์ด์์ฒด์ ๋ ์์คํ ํธ์ถ์ ๋ฐํ ๊ฐ์ RAX์ ์ ์ฅํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํ์ผ์ ์ด ๋ ๋ฐ์ํ๋ open() ์์คํ ํธ์ถ์ ์ฑ๊ณต ์ฌ๋ถ๋ ํ์ผ ๋์คํฌ๋ฆฝํฐ ๊ฐ์ด RAX์ ๋ฐํ๋ฉ๋๋ค.
- ํน์ ์์คํ
ํธ์ถ ๋ฒํธ ์ง์
- ๋ฆฌ๋ ์ค ์์คํ ํธ์ถ์์๋ RAX์ ์์คํ ํธ์ถ ๋ฒํธ๋ฅผ ์ ์ฅํ์ฌ, ์ด์์ฒด์ ๊ฐ ํด๋น ๋ฒํธ์ ํด๋นํ๋ ์์คํ ํธ์ถ์ ์ธ์ํ๊ฒ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, RAX์ 1์ ์ ์ฅํ๋ฉด ์ด์์ฒด์ ๋ exit ์์คํ ํธ์ถ์ ์ํํฉ๋๋ค.
RAX์ ํ์ ๋ ์ง์คํฐ
- RAX (64๋นํธ): ์ ์ฒด 64๋นํธ ๋ ์ง์คํฐ๋ก ๊ฐ์ฅ ์์์์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- EAX (32๋นํธ): RAX์ ํ์ 32๋นํธ๋ฅผ ์ฌ์ฉํ ๋ EAX๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
- AX (16๋นํธ): RAX์ ํ์ 16๋นํธ๋ฅผ ์ฌ์ฉํ ๋ AX๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
- AH ๋ฐ AL (8๋นํธ): AX์ ์์ 8๋นํธ๋ AH, ํ์ 8๋นํธ๋ AL๋ก ์ ๊ทผํฉ๋๋ค.
์์ ์ฝ๋
- ์ฐ์ ์ฐ์ฐ์์์ ์ฌ์ฉ ์์
mov rax, 5 ; RAX์ 5๋ฅผ ์ ์ฅ
add rax, 3 ; RAX์ 3์ ๋ํจ, ๊ฒฐ๊ณผ๋ RAX์ ์ ์ฅ๋จ (RAX = 8)
- ์์คํ ํธ์ถ์์์ ์ฌ์ฉ ์์ (๋ฆฌ๋ ์ค)
mov rax, 60 ; ์์คํ
ํธ์ถ ๋ฒํธ 60์ exit ํธ์ถ
mov rdi, 0 ; ์ข
๋ฃ ์ฝ๋ 0
syscall ; ์์คํ
ํธ์ถ ์คํ
์ ์์๋ exit ์์คํ ํธ์ถ์ ํตํด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ ์ฝ๋๋ก, RAX์ ์์คํ ํธ์ถ ๋ฒํธ 60์ ์ง์ ํ์ฌ exit ํธ์ถ์ ์ํํฉ๋๋ค.
์์ฝ
- RAX ๋ ์ง์คํฐ๋ 64๋นํธ ์ํคํ ์ฒ์ ๋ฒ์ฉ ๋ ์ง์คํฐ๋ก, ์ฐ์ ์ฐ์ฐ ๊ฒฐ๊ณผ ์ ์ฅ, ์์คํ ํธ์ถ ๋ฐํ ๊ฐ ์ ์ฅ, ํน์ ์์คํ ํธ์ถ ์ํ์ ์ํ ๋ฒํธ ์ง์ ๋ฑ์ ์ญํ ์ ์ํํฉ๋๋ค.
- ํ์ ๋ ์ง์คํฐ๋ก EAX(32๋นํธ), AX(16๋นํธ), AH/AL(8๋นํธ)๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
- RAX๋ ํจ์จ์ ์ด๊ณ ๋ค๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ค์ํ ๋ ์ง์คํฐ์ ๋๋ค.
'๐ซ Krafton Jungle > PintOS Project2 _ User Programs' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Pintos] Project02 _ User Programs | Keyword | Segmentation Fault (1) | 2024.11.28 |
|---|---|
| [Pintos] Project02 _ User Programs | Keyword | Interrupt (1) | 2024.11.28 |
| ์์ ๋ฐ ๋ณด์ ํ์ - Atomic Operation (0) | 2024.11.28 |
| ์์ ๋ฐ ๋ณด์ ํ์ - File Descriptor (1) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | System Call (1) | 2024.11.28 |