Asembl C++ ¶
C ํ๋ก์ ํธ๋ก ๋น๋๋ก ์์ฑ๋ .exeํ์ผ์์ ์ด์
๋ธ ์ฝ๋๋ฅผ ์ฐพ์๋ด๊ณ ๊ทธ ํจ์จ์ฑ๊ณผ ๋ค๋ฅธ ๊ฐ IDE๋ค์ ์ฐจ์ด์ ์ ์ฐพ์๋ณด๋ ค๋ ์๋๋ก ๋ง๋ค์ด์ง ํ์ด์ง.
VS์.exe ์ด์ ๋ธ์ฝ๋ ๋ณด๊ธฐ ¶
MASM์ ์ด์
๋ธ ์ฝ๋๋ฅผ VisualStudio์์ ๋ค์ฌ๋ค ๋ณด๋๊ฒ ์ฒ๋ผ ๋๋๊ทธํ๋ฉด ๋๋๊ฑธ๋ก ์ฝ๊ฒ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ ์๋์๋ค. VS๋ฅผ ๋๋ฌด ํธ๋ฝํธ๋ฝํ๊ฒ ๋ณธ๊ฒ ๊ฐ๋ค. ๋ถ๊ฐ๋ฅ ํ๊ฒ์ ์๋์ด ๋ณด์ด๋๋ฐ ์ฌ์๋ณด์ด์ง๋ ์๋๋ค.
๊ทธ๋ ๋ค๋ฉด i++VS++i์์ ์ต์ ํ๋ i++ ์ด์ ๋ธ ์ฝ๋์ ๊ดํ ์ด์ผ๊ธฐ, ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ ์์ด์ ํ์น์ฐ์ฐ์++ ์ ์ฉ๋์ ๊ดํ ์ด์ผ๊ธฐ๋ค์ ์ด๋ป๊ฒ ํด์ ๋์ค๊ฒ ๋๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
.exeํ์ผ์ ์ด์ ๋ธ ์ฝ๋๋ถ๋ถ์ ๋ํ ์ง๋ฌธ. ์ง์in
๊ฒฐ๋ก ๋ถํฐ ๋ง์ ํ์๋ฉด .exe ํ์ผ์์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด๋ธ ๊ฒ์ด ์๋๋๋ค. ๋ฌผ๋ก ๊ทธ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ๋งค์ฐ ์ด๋ ต์ฃ .
๊ทธ๋ ๋ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฑด๋ฐ... ๋ฐ๋ก ์ปดํ์ผ๋ฌ์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด๋ด๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์์ฆ ์ปดํ์ผ๋ฌ๋ค์ ์ปดํ์ผ์ ํ๋ฉด ์ค๋ธ์ ํธ ํ์ผ(.obj)์ ์์ฑํฉ๋๋ค. ์ด๊ฒ์ ์์ค๋ฅผ ํด์ํด์ ๋ง๋ค์ด๋ธ ๊ธฐ๊ณ์ด ์ฝ๋์ ๋๋ค.
ํ์ง๋ง ์ปดํ์ผ์ ํ ๋ ์ต์ ์ ๋ถ์ฌ ์ค๋ธ์ ํธ ํ์ผ ๋ฟ ์๋๋ผ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ์์ฑํ ์๋ ์์ต๋๋ค.
์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ๊ธฐ๊ณ์ด์ ๊ฑฐ์ ๊ฐ๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ๋ฌ์ ์ถ๋ ฅ ํ์์ ์ฐจ์ด ์ ๋๋ผ๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.
(์์ฑ๋ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ด์ ๋ธ๋ฌ์ ๋ฃ์ผ๋ฉด ์ค๋ธ์ ํธ ํ์ผ์ด ๋์ค๊ฒ ๋ฉ๋๋ค.)
์ด๋ ๊ฒ ์ป์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ๋ชจ๋ ์ต์ ํ ๊ณผ์ ์ด ๋๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ .exe ํ์ผ๋ก ๋ง๋ค์ด์ง ๋ ๊น์ง ๋ณํ๋์ง ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ์ด๋ ค์ด ๋ฐฉ๋ฒ์ ํตํด .exe ํ์ผ์์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด๋ผ ํ์๊ฐ ์๋ ๊ฒ์ด์ฃ . --์๊ท
๊ทธ๋ ๋ค๋ฉด i++VS++i์์ ์ต์ ํ๋ i++ ์ด์ ๋ธ ์ฝ๋์ ๊ดํ ์ด์ผ๊ธฐ, ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ ์์ด์ ํ์น์ฐ์ฐ์++ ์ ์ฉ๋์ ๊ดํ ์ด์ผ๊ธฐ๋ค์ ์ด๋ป๊ฒ ํด์ ๋์ค๊ฒ ๋๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
.exeํ์ผ์ ์ด์ ๋ธ ์ฝ๋๋ถ๋ถ์ ๋ํ ์ง๋ฌธ. ์ง์in
i++VS++i๋ฅผ ์์ํ ์ฌ๋์ด ์ ๋๋ค^^ ๊ทธ๊ฑธ ๋ณด๊ณ ๊ด์ฌ์ ๊ฐ๋ ์ฌ๋์ด ์๋ค๋ ๋ฐ๊ฐ๊ตฐ์~ ํน์ ๋๊ตฌ์ ์ง์? --์๊ท
์ดํด๋ฅผ ๋๊ธฐ ์ํด i++VS++i์์ i++ ๋ฑ์ ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ป์๋์ง๋ฅผ ์ค๋ช
ํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์ ํ์๋ฉด .exe ํ์ผ์์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด๋ธ ๊ฒ์ด ์๋๋๋ค. ๋ฌผ๋ก ๊ทธ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ๋งค์ฐ ์ด๋ ต์ฃ .
๊ทธ๋ ๋ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฑด๋ฐ... ๋ฐ๋ก ์ปดํ์ผ๋ฌ์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด๋ด๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์์ฆ ์ปดํ์ผ๋ฌ๋ค์ ์ปดํ์ผ์ ํ๋ฉด ์ค๋ธ์ ํธ ํ์ผ(.obj)์ ์์ฑํฉ๋๋ค. ์ด๊ฒ์ ์์ค๋ฅผ ํด์ํด์ ๋ง๋ค์ด๋ธ ๊ธฐ๊ณ์ด ์ฝ๋์ ๋๋ค.
ํ์ง๋ง ์ปดํ์ผ์ ํ ๋ ์ต์ ์ ๋ถ์ฌ ์ค๋ธ์ ํธ ํ์ผ ๋ฟ ์๋๋ผ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ์์ฑํ ์๋ ์์ต๋๋ค.
์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ๊ธฐ๊ณ์ด์ ๊ฑฐ์ ๊ฐ๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ๋ฌ์ ์ถ๋ ฅ ํ์์ ์ฐจ์ด ์ ๋๋ผ๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.
(์์ฑ๋ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ด์ ๋ธ๋ฌ์ ๋ฃ์ผ๋ฉด ์ค๋ธ์ ํธ ํ์ผ์ด ๋์ค๊ฒ ๋ฉ๋๋ค.)
์ด๋ ๊ฒ ์ป์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ๋ชจ๋ ์ต์ ํ ๊ณผ์ ์ด ๋๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ .exe ํ์ผ๋ก ๋ง๋ค์ด์ง ๋ ๊น์ง ๋ณํ๋์ง ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ์ด๋ ค์ด ๋ฐฉ๋ฒ์ ํตํด .exe ํ์ผ์์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด๋ผ ํ์๊ฐ ์๋ ๊ฒ์ด์ฃ . --์๊ท
MS์ C/C++ ์ปดํ์ผ๋ฌ์์ ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ป๋ ์ต์
์ /FA ์
๋๋ค.
์ด ์ต์ ์ ๋ถ์ฌ ์ปดํ์ผ์ ํ๋ฉด .obj ํ์ผ ๋ฟ ์๋๋ผ .asm ํ์ผ๋ ๋ง๋ค์ด์ง๋๋ค.
C/C++ ์ฝ๋์ ํด๋น๋๋ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ๋น๊ตํ๋ฉฐ ๋ณด๊ณ ์ถ๋ค๋ฉด /FAs ์ต์ ์ ๋ถ์ฌ๋ณด์ธ์.
์ฐจ์ด์ ์ ์ค๋ช ํ๊ธฐ๊ฐ ๊ท์ฐฎ๋ค์-_-; ์ง์ ํด๋ณด์๊ณ ์ฐจ์ด์ ์ ์์๋ณด์๊ธธ... --์๊ท
์ด ์ต์ ์ ๋ถ์ฌ ์ปดํ์ผ์ ํ๋ฉด .obj ํ์ผ ๋ฟ ์๋๋ผ .asm ํ์ผ๋ ๋ง๋ค์ด์ง๋๋ค.
C/C++ ์ฝ๋์ ํด๋น๋๋ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ๋น๊ตํ๋ฉฐ ๋ณด๊ณ ์ถ๋ค๋ฉด /FAs ์ต์ ์ ๋ถ์ฌ๋ณด์ธ์.
์ฐจ์ด์ ์ ์ค๋ช ํ๊ธฐ๊ฐ ๊ท์ฐฎ๋ค์-_-; ์ง์ ํด๋ณด์๊ณ ์ฐจ์ด์ ์ ์์๋ณด์๊ธธ... --์๊ท
๊ด๋ จ์๋ฃ ¶
์ฎ์ด๊ฐ๊ธฐ ¶
์ด์
๋ธ ์ฝ๋๋ค์ ์ฝ๊ฒ ๋ณด์ฌ์ค๋ค๋ฉด ํ๋ก๊ทธ๋จ์ ๋ณด์ ๋ฌธ์ ์๋ ์ง์ ์ ์ผ๋ก ์ฐ๊ด์ด ๋๋ ๊ตฐ์. ์์ ์ ๊ดํ ๋ณด์์ฅ์น๋ ์์ ๊ฒ์ด๊ณ ์. ํจ๋ฆฌํฐ ๊ฐ์ ๋จ์ํ ๋ณด์์ฅ์น์ผ์ง๋ผ๋ ์ฝ๋์ ๋ฌด๊ฒฐ์ฑ์ ์งํค๋ฉด์ ์ด์
๋ธ์ ์์ ํ๊ธฐ๋ ์ฌ์ ๋ณด์ด์ง ์๋ค์. - ํฑ์๋ณด๋ค
Softice๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด์ ์๋ฆฌ์ผ ๋ฒํธ๊ฐ ์๋ ํ๋ก๊ทธ๋จ์ด๋ ๋ ์ง ์ ํ ํ๋ก๊ทธ๋จ์ ํฌ๋ ํ๊ธฐ๋ ํฉ๋๋ค. ์ด๋ฒ ๋๋ฒ๊น ์ธ๋ฏธ๋์์ ํจ ํด๋ณผ๋ผ๊ณ ๊ทธ๋ฌ๋๋ฐ ์ง์ ์๋ ์ปดํจํฐ์์ ๊ทธ๊ฒ ์ ์๋์๊ฐ์ ๋ณด๋ฅํจ. - ์ํ
.exe ํ์ผ์ ๋ํ ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ ์ญ์ด์
๋ธ๋ฌ(์๋ ์ํ์ด๊ฐ ๋งํ softice์ ๊ฐ์ ํ๋ก๊ทธ๋จ)๋ง ์์ผ๋ฉด ์ฝ๊ฒ ์ป์ ์ ์์ต๋๋ค. ์์ ์ ๊ดํ ๋ณด์์ฅ์น๋ ์ ํ ์๊ตฌ์. ํ์ง๋ง .exe ํ์ผ์ ๋ํ ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ ๋ถ์ํ๊ฑฐ๋ ์์ ํ๋๊ฒ ์์ฒด๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ ์ ๋๋ก ์ด๋ ต์ต๋๋ค. ์ด์ ๋... ์๊ฐ์ด ์์ด์ ๋์ค์ ์ฐ๋๋ก ํ์ฃ -_-; --์๊ท
์ฒ์์๋ ๊ทธ๋ฅ ์ผ๋ง๋, ์ด๋ค์์ผ๋ก ์ปดํ์ผ๋ฌ์ ์ํด์ ์ฝ๋๊ฐ ์ต์ ํ๋๊ณ IDE์ ๋ฒ์ ๊ณผ ์ข
๋ฅ์ ๋ฐ๋ผ์ ์ด๋ค ์ฐจ์ด๊ฐ ์กด์ฌํ ๊น ๋ผ๋ ๋จ์ํ ๋ฌผ์์ด์์ง๋ง, ์ง๊ธ ๋ณด๋ ๊ทธ๋ ๊ฒ ์ฝ๋๋ฅผ ํํด์น๊ณ ๋ถ์ํ๋๊ฒ ํดํน์ด๊ณ ํฌ๋ํน ์ธ๊ฒ ๊ฐ๊ธฐ๋ ํฉ๋๋ค;; - ํฑ์๋ณด๋คSoftice๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด์ ์๋ฆฌ์ผ ๋ฒํธ๊ฐ ์๋ ํ๋ก๊ทธ๋จ์ด๋ ๋ ์ง ์ ํ ํ๋ก๊ทธ๋จ์ ํฌ๋ ํ๊ธฐ๋ ํฉ๋๋ค. ์ด๋ฒ ๋๋ฒ๊น ์ธ๋ฏธ๋์์ ํจ ํด๋ณผ๋ผ๊ณ ๊ทธ๋ฌ๋๋ฐ ์ง์ ์๋ ์ปดํจํฐ์์ ๊ทธ๊ฒ ์ ์๋์๊ฐ์ ๋ณด๋ฅํจ. - ์ํ