์ด์ ๋ธ๋ฆฌ์ด ์ ๋ฌธํ๊ธฐ_(์ด์ ๋ธ๋ฆฌ์ด๋?)
์ค๋์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฒ์ ์ฌ์ฉํด๋ณผ๊ป๋ฐ์
์ฌ์ฉ์ ์!!!
์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋ฌด์์ธ์ง!
์ ๊ธ์ธ์ด ๊ณ ๊ธ์ธ์ด๊ฐ ๋ฌด์์ธ์ง!
๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ๋ฌ์ ์ด์ ๋ธ๋ฌ์ ํน์ง์ด ๋ฌด์์ธ์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ผ Start๐
-
์ด์ ๋ธ๋ฆฌ์ด๋?
์ด์ ๋ธ๋ฆฌ์ด(assembly language)๋๋ ์ด์ ๋ธ๋ฌ ์ธ์ด(assembler language)๋ ๊ธฐ๊ณ์ด์ ์ผ๋์ผ ๋์์ด ๋๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ธ ์ธ์ด์ด๋ค.(H/w์ ๊ด๋ จ์ด ๋ง์, ๊ธฐ๊ณ์ด์ ๊ฐ๊น์)
์ปดํจํฐ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ ๊ธฐ๊ณ์ด๊ฐ ๋ฌ๋ผ์ง๋ฉฐ, ๋ฐ๋ผ์ ๊ธฐ๊ณ์ด์ ๋์๋์ด ๋ง๋ค์ด์ง๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฐ๊ฐ ๋ค๋ฅด๊ฒ ๋๋ค. ์ปดํจํฐ CPU๋ง๋ค ์ง์ํ๋ ์คํผ๋ ์ด์ ์ ํ์ ๊ณผ ๊ฐ์๋ ์ ๊ฐ๊ฐ์ด๋ฉฐ, ๋ ์ง์คํฐ์ ํฌ๊ธฐ์ ๊ฐ์, ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ ํํ๋ ๊ฐ๊ธฐ ๋ค๋ฅด๋ค. ๋ชจ๋ ๋ฒ์ฉ ์ปดํจํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ์ง๋ง, ๊ธฐ๋ฅ์ ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณ ์ํํ ์ง๋ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ, ์ด๋ฐ ์ฐจ์ด๋ ์ด์ ๋ธ๋ฆฌ์ด์ ๋ฐ์๋๊ฒ ๋๋ค. -์ถ์ฒ : ๊ตฌ๊ธ ์ํค๋ฐฑ๊ณผ-
-
์ปดํ์ผ๋ฌ์ ์ด์ ๋ธ๋ฌ์ ํน์ง
์ปดํ์ผ๋ฌ(Compiler) | ์ด์ ๋ธ๋ฌ(Assembler) |
- ๊ณ ๊ธ ์ธ์ด ํ๋ก๊ทธ๋จ์ ์ ๋ ฅ - ๊ตฌ๋ฌธ ์ค๋ฅ ๊ฒ์ฌ
- ๋ชฉ์ ์ฝ๋(Object code) ์์ฑ
- ๊ณ ๊ธ ์ธ์ด์ ํ ๋ฌธ์ฅ์ ์ฌ๋ฌ ๊ฐ์ ๊ธฐ๊ณ ์ฝ๋ ๋ช ๋ น์ด๋ก ๋ณ๊ฒฝ๋จ. |
- ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ๊ธฐ๊ณ์ด ํํ์ ์ค๋ธ์ ํธ ์ฝ๋๋ก ํด์ํด์ฃผ๋ ์ปดํจํฐ ์ธ์ด๋ฒ์ญ ํ๋ก๊ทธ๋จ - ์ด์ ๋ธ๋ฆฌ์ด ํ๋ก๊ทธ๋จ์ ์ ๋ ฅํจ
- ํ๋์ ์ด์ ๋ธ๋ฆฌ์ด ๋ช ๋ น์ด๋ ํ๋์ ๊ธฐ๊ณ ์ฝ๋์ ๋์ํจ. |
์ด์ ๋ธ๋ฆฌ์ด๋ ๊ธฐ๊ณ์ธ์ด์ ๊ฐ๊น์ด "๊ธฐํธ ์ธ์ด" ๋ผ๊ณ ๋ ํ๋๋ฐ
๋ณดํต ๊ณ ๊ธ์ธ์ด์์ ํ๋ฒ์ ๊ณ์ฐ์ผ๋ก ์คํ๋ ์ ์๋ ๋ฌธ์ฅ์ด
๊ธฐ๊ณ์ด์์๋ ์ฌ๋ฌ๋ฒ์ ๊ณ์ฐ์ ํตํด ์คํ์ด ๋๋ค.
๋ฐ์ ์์๋ฅผ ๋ณด์๋ฉด,
์ด ๋ฌธ์ฅ์ ๊ณ ๊ธ ์ธ์ด๋ก ์คํ์ํจ๋ค๋ฉด ๊ณง๋ฐ๋ก ๋๊ฒ ์ง๋ง.....
์ด์ ๋ธ๋ฆฌ์ด๋
์ด๋ ๊ฒ ์ฌ๋ฌ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค๋ ์ฌ์ค! (์์ผ๋ก ๊ทธ๋ฆฌ๋ค ๋ณด๋ ์๋ค๋นผ๋ค ํ๋ค์ ใ ใ ์ฃ์กํฉ๋๋ค.)
-
๊ณ ๊ธ์ธ์ด์ ์ด์ ๋ธ๋ฆฌ์ด์ ํน์ง
๊ณ ๊ธ์ธ์ด | ์ด์ ๋ธ๋ฆฌ์ด |
- ํ๋ก์ธ์ ์ข ๋ฅ์ ์๊ด์์ด ์คํํ ์ ์๋ค. - ํ๋ก์ธ์์ ๋ํ ์ฌ์ ์ง์์ด ํ์ ์๋ค.
- ๋ฌธ๋ฒ์ด ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ๊ฐ ์ฝ๋ค.(์ด์ ๋ธ๋ฆฌ์ด์ ๋น๊ตํ ๊ฒ)
- ํ๋ก๊ทธ๋จ ์ฝ๋์ ์์ด ์ ๊ณ ๋๋ฒ๊น ์ด ์ฉ์ดํ๋ค.
- ์ปดํ์ผ๋ฌ ์ฑ๋ฅ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ด ์ฉ์ดํ๋ค. |
- ๋์ผํ ์ข ๋ฅ์ ํ๋ก์ธ์๋ง ์คํํ ์ ์๋ค. - ํ๋ก์ธ์์ ๋ํ ์ฌ์ ์ง์์ด ํ์ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ, I/O์ฅ์น, ๋ ์ง์คํฐ ๋ฑ์ ๊ตฌ์ฑ์์๋ค์ ์ง์ ๋ค๋ฃฐ ์ ์๋ค.
- ์ปดํจํฐ์์ ์คํํ๋ ๊ณผ์ ๋ฑ์ ์ดํดํ๊ธฐ ์ฝ๋ค.
- ์ปดํจํฐ์ ์ฑ๋ฅ์ ์ต์ ์ธ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค. |
-
์ด์ ๋ธ๋ฌ ์ข ๋ฅ
โ MASM -์๋์ฐ
โ GAS - ๋ฆฌ๋ ์ค/ ์ ๋์ค
โ NASM - ์๋์ฐ, ๋ฆฌ๋ ์ค, ๋งฅ
โ SASM - ์๋์ฐ, ๋ฆฌ๋ ์ค
์ด์ค์์ ์ ๋ SASM๋ก ์ค์ต์ ํด๋ณผ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ SASM์ ๋ํ ํน์ง์ ๊ฐ๋จํ ์ค๋ช ํด๋๋ฆด๊ป์!
์ด์ด์ฃผ์ธ์ โผ
- ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ด๋ค. (๋๊ตฌ๋ก ์ฐ์)
- GUI์ CUI๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
- ๊ณตํต ๋งคํฌ๋ก ํจ์๋ฅผ ์ง์ํ๋ค.
=> ํ๋ฉด ๋ฐ ํค๋ณด๋ ์ ์ถ๋ ฅ์ ๊ด๋ จํ์ฌ ์๋ก ๋ค๋ฅธ ์ด์์ฒด์ ์๋น์ค ๋ถ๋ถ์ ์ถ์ํ ํ๋ค.
- ์ธํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
- ์ฝ๋๋ ํน์ํ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
- ์ฃผ์์ ์ธ๋ฏธ์ฝ๋ก ์ (;) ์ฌ์ฉํ๋ค.
์ฌ๊ธฐ๊น์ง! ์ด์ ๋ธ๋ฆฌ์ด์ ์ด์ ๋ธ๋ฆฌ ๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ์ ๋ํด ์์๋ณด์๊ตฌ์!
๊ณ ๊ธ์ธ์ด์ ์ ๊ธ์ธ์ด๋ ์๊ฒ๋์์ฃ ?ใ ใ
๋ค์ ํฌ์คํ ์ SASM๋ก ์ค์ ์ด์ ๋ธ๋ฆฌ์ด ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋ ๊ธ์ ์ฌ๋ ค๋ณด๋๋ก ํ ๊ป์
๊ทธ๋ผ ๋ค๋ค ์๊ณ ํ์ธ์ฉ!