์ค๋์ ์ด์
๋ธ๋ฆฌ์ด ๊ธฐ์ด ์ด๋ก ๊ณผ ์ค์ต์ ํด๋ณผ๊บผ์์~
์์ง ๊ฐ ๊ธธ์ด ๋ฉ๊ธฐ๋๋ฌธ์..!
์ง๊ธ ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค. ๐ฑ๐๐จ
์ด์
๋ธ๋ฆฌ์ด ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ ์์
- 3๊ฐ์ ์์๋ก ๊ตฌ์ฑ๋๋ค.
- ํ๋ก๊ทธ๋จ์ ๋ช
๋ น์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ์ด ๋๋ค.
- CPU๋ ๋ช
๋ น์ด๋ฅผ 1๊ฐ์ฉ ๊ฐ์ง๊ณ ์์ ๋ช
๋ น์ ํด์ํ๊ณ ์ํํ ํ ๋ ์ง์คํฐ์ ์ ์ฅํ๋ค.
์ฆ ์ด์
๋ธ๋ฆฌ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค๋ ๊ฒ์ CPU๊ฐ ์ง์ํด ์ฃผ๋ ๊ฐ์ข
์ฐ์ฐ ๊ธฐ๋ฅ๋ค์ ์ด์ฉํ์ฌ ๋ ์ง์คํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๋ณ๊ฒฝํ๋ ๋จ์ํ ์์
๊ณผ์ ์ ๋งํ๋ค.
๋ ์ง์คํฐ
๋ ์ง์คํฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ถ๋ฆฐ๋ค.
ex: 'A' ๋ ์ง์คํฐ์ธ ๊ฒฝ์ฐ
๋ ์ง์คํฐ์ ๋จ์๋ ๋ฐ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ช
์นญํ๋ค.
- 64bit ๋จ์ : RAX
- 32bit ๋จ์ : EAX
- 16bit ๋จ์ : AX
- 8bit ๋จ์ : AH, AL
์ค์ SASM์ ๋๋ฒ๊น
ํด๋ณด๋ฉด ์์ ๊ฐ์ ์์๋ก ๋ ์ง์คํฐ๊ฐ ์๊ธด ๊ฒ์ด ์๋๊ณ
ax ->ah | al ์ด๋ฐ์์ผ๋ก ํฌํจ๋์ด์๋ค. -->๋์ค์ ๋ฐ๋ก ๊ธ์ ์ฌ๋ ค์ ์์ธํ ์ค๋ช
๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ด์
๋ธ๋ฆฌ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฒฐ์ ํด์ผ ํ ๊ฒ
- ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ ๊ฒฐ์ ํ๊ธฐ. -> ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฒฐ์
- ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ์ ์์น ๊ฒฐ์ ํ๊ธฐ. -> ์ด์
๋ธ๋ฌ๊ฐ ๋ฐ์ด๋๋ฆฌ(๊ธฐ๊ณ์ด)๋ก ๋ณ๊ฒฝ๋ ๋ ๊ฒฐ์
๋ณ์
- ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์์ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ์๋ฏธ
- ๋ณ์์ 3๊ฐ์ง ์์ฑ -> (์์ํ๋ ์ฃผ์, ์ ์ฅ๋์ด ์๋ ๊ฐ, ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ)
๋ณ์ ์ ์ธ ๋ฐ ์ฌ์ฉ
๋ฐ์ดํธ ๋ณ์
- 1byte (8bit) ํฌ๊ธฐ์ ๋ณ์๋ฅผ ํํํ๋ค.
- ๋ณ์์ ํฌ๊ธฐ๋ DB๋ก ํ์ํ๊ณ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ค.
- ์ด๊ธฐ๊ฐ์ ์ค์ ํ ํ์๊ฐ ์์ ๋๋ '?' ๋ก ํํ ํ๋ค.
๋๋ณด๊ธฐ
----------------------------------------------------------------------------------------------------------------------------
bee db 10 ; ์ด๊ธฐ๊ฐ์ด 10์ธ ๋ฐ์ดํธ ๋ณ์ bee
box db ? ; ์ด๊ธฐ๊ฐ์ ์ค์ ํ์ง ์์ ๋ฐ์ดํธ ๋ณ์ box
----------------------------------------------------------------------------------------------------------------------------
์๋ ๋ณ์
- 2byte (16bit) ํฌ๊ธฐ์ ๋ณ์๋ฅผ ํํํ๋ค.
- ๋ณ์์ ํฌ๊ธฐ๋ DW๋ก ํ์ํ๊ณ ์ด๊ธฐ๊ฐ์ ์ค์ , ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋ณ์
๋๋ณด๊ธฐ
----------------------------------------------------------------------------------------------------------------------------
new dw -100 ; ์ด๊ธฐ๊ฐ์ด -100์ธ ์๋ ๋ณ์ new
cook dw ? ; ์ด๊ธฐ๊ฐ์ ์ค์ ํ์ง ์์ ์๋ ๋ณ์ cook
----------------------------------------------------------------------------------------------------------------------------
๋ฐฐ์ด
- ๋์ผํ ํฌ๊ธฐ์ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ณ์๋ฅผ ํํํ๋ค.
- ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ๋ฐ์ดํธ์ ์๋๊ฐ ์๋ค. (db : ๋ฐ์ดํธ ๋ฐฐ์ด, dw : ์๋ ๋ฐฐ์ด)
- ๊ฐ ๋ฐฐ์ด ์์์ ์ด๊ธฐ๊ฐ์ ๋ฐฐ์ด ์ ์์์ ๋ชจ๋ ํฌํจ ๋์ด์ผ ํ๋ค.
๋๋ณด๊ธฐ
----------------------------------------------------------------------------------------------------------------------------
(๋ฐ์ดํธ๋ฐฐ์ด ์ : ) apple db 10H, 30H, 50H, 80H, 0AH
(์๋ ๋ฐฐ์ด ์ : ) blue dw 2810, -2500, 300, -484
----------------------------------------------------------------------------------------------------------------------------
๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๋ณด๋ด๊ธฐ (mov ๋ช
๋ น์ด)
- ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ช
๋ น์ด
- ์ด์
๋ธ๋ฆฌ ์ธ์ด์์ ๋ฉ๋ชจ๋ฆฌ ๋ณ์(๋ผ๋ฒจ) ์ด๋ฆ์ด๋ค.
- ์ฃผ์๊ฐ ๊ฐ๋ฅดํค๋ ๊ณณ์ ๊ฐ์ " [๋ณ์์ด๋ฆ] " ์ผ๋ก ํํํ๋ค.
๋ ์ง์คํฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๊ฐ ์ถ๋ ฅํ๊ธฐ
- ๋ ์ง์คํฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฐ์ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ CPU์ ์๋ ๋ช
๋ น์ด ๋ง์ผ๋ก ์ด๋ ต๋ค.
- ์ด์์ฒด์ ๋ง๋ค ๋ค๋ฅด๋ค.
- ํ์ฌ ์ฌ์ฉ์ค์ธ SASM ์์๋ ๋งคํฌ๋ก๋ฅผ ์ง์ํ๋๋ฐ ๊ฐ ๋งคํฌ๋ก๋ ์๋์ ๊ฐ๋ค.
๋๋ณด๊ธฐ
1. PRINT_HEX ๋ฐ์ดํธ ์, ๋ ์ง์คํฐ ๋๋ ๋ณ์ ์ด๋ฆ : 16์ง์๋ก ์ถ๋ ฅ.
2. PRINT_DEC ๋ฐ์ดํธ ์, ๋ ์ง์คํฐ ๋๋ ๋ณ์ ์ด๋ฆ : 10์ง์๋ก ์ถ๋ ฅ.
3. PRINT_STRING ๋ณ์์ด๋ฆ ๋๋ ๋ฌธ์์ด : ๋ฌธ์์ด ์ถ๋ ฅ.
4. NEWLINE : ํ๋ฉด์ ์ค ๋ณ๊ฒฝ -> ์๋ก์ด ๋ผ์ธ์ผ๋ก ๊ฐ๋ค.
๋ค์์ฅ์์๋ "๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋ฌผ๋ฆฌ์ ์ธ ๋ชจ์ต"์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์๊ณ ํ์
จ์ด์~(โ'โก'โ)