SASM
-
์ค๋์ c์ธ์ด์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ํฉ์ณ์ ์ฌ์ฉํ์ฌ ๋ก๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ํ๊ฒฝ์ ๊ตฌ์ฑํด๋ณด๊ฒ ์ต๋๋ค. SASM์ GUIํ๊ฒฝ์์ด ์ด์ ๋ธ๋ฆฌ ์ธ์ด ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ํด์๋ nasm.exe(์ด์ ๋ธ๋ฌ)์ gcc.exe(๋ง์ปค) ์คํํ๊ฒฝ์ด ํ์ํ๋ค. ์ด๋ฐ ํ๊ฒฝ์ ๋ช ๋ น ์ฐฝ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๊ฒฝ ์ค์ ์ ๋ฐ๋ก ํด์ค ํ์๊ฐ ์๋ค. ๋จผ์ gccํ๊ฒฝ ์ค์ ์ ํด์ค ํ, ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ๊ณต๊ฐ์ ๋ฃ์ด nasm๊ณผ ํจ๊ป ๋์๋ค. sasm์์๋ io.inc/io64.inc ๋งคํฌ๋ก ํจ์๋ค์ ๋์์ผ๋ก ์ ์ถ๋ ฅ ๋ฑ์ ์ํํ๋ฏ๋ก, ๋ง์ฝ ์ด๋ฌํ ๋งคํฌ๋ก ํจ์์ ๋์์ ๋ฐ์ง ์๊ณ ์ฝ๋ฉํ๋ค๋ฉด ์ฝ๋ฉ ํ๋ ์์ํฌ๋ ์๋์ฒ๋ผ ์คํ ํด์ผํ๋ค. ๊ธฐ์กด์ sasm ์ผ๋ก์ ์ฝ๋ฉ ๋ณ๊ฒฝ๋ ์๋ก์ด ํ์์ ์ฝ๋ฉ ํ๋ ์์ํฌ..
์ด์ ๋ธ๋ฌ, gccํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ์ค๋์ c์ธ์ด์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ํฉ์ณ์ ์ฌ์ฉํ์ฌ ๋ก๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ํ๊ฒฝ์ ๊ตฌ์ฑํด๋ณด๊ฒ ์ต๋๋ค. SASM์ GUIํ๊ฒฝ์์ด ์ด์ ๋ธ๋ฆฌ ์ธ์ด ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ํด์๋ nasm.exe(์ด์ ๋ธ๋ฌ)์ gcc.exe(๋ง์ปค) ์คํํ๊ฒฝ์ด ํ์ํ๋ค. ์ด๋ฐ ํ๊ฒฝ์ ๋ช ๋ น ์ฐฝ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๊ฒฝ ์ค์ ์ ๋ฐ๋ก ํด์ค ํ์๊ฐ ์๋ค. ๋จผ์ gccํ๊ฒฝ ์ค์ ์ ํด์ค ํ, ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ๊ณต๊ฐ์ ๋ฃ์ด nasm๊ณผ ํจ๊ป ๋์๋ค. sasm์์๋ io.inc/io64.inc ๋งคํฌ๋ก ํจ์๋ค์ ๋์์ผ๋ก ์ ์ถ๋ ฅ ๋ฑ์ ์ํํ๋ฏ๋ก, ๋ง์ฝ ์ด๋ฌํ ๋งคํฌ๋ก ํจ์์ ๋์์ ๋ฐ์ง ์๊ณ ์ฝ๋ฉํ๋ค๋ฉด ์ฝ๋ฉ ํ๋ ์์ํฌ๋ ์๋์ฒ๋ผ ์คํ ํด์ผํ๋ค. ๊ธฐ์กด์ sasm ์ผ๋ก์ ์ฝ๋ฉ ๋ณ๊ฒฝ๋ ์๋ก์ด ํ์์ ์ฝ๋ฉ ํ๋ ์์ํฌ..
2020.09.10 -
์ด๋ฒ์ ๊ธฐ์ด ์ค์ต์ ํด๋ณด๊ณ ๊ทธ ์ฝ๋์ ๋ํด ๋ถ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด์ + , * ์ฌ์ฉ์ ์ฃผ๋ก ๋ค๋ค์ผ๋ ๊ฐ๋ณ๊ฒ ์ฝ์ด๋ด์ฃผ์ธ์!! โ๋จ : ๊ธ์ ์ํ๋ก ๋ฉ๋ชจํ์์ผ๋ ์ ์ํ์ฌ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค. 1. [๊ฐ๋จํ ๊ธฐ์ด์ฐ์ฐ] "a+2*b" ์์ ๊ตฌํํ๊ธฐ. ์ฝ๋ ํ์ธ ํ ๋ฉ๋ชจ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. 2. [๊ฐ๋จํ ๊ธฐ์ด์ฐ์ฐ] "์๋ฃ ์ฒ๋ฆฌ ๋จ์์ SASM ์์์ ๋จ์" ์์ ์ด์ด์ ์ฝ๋ ํด์ค๋ ์์ผ๋ ์ฐธ๊ณ ํด์ฃผ์ธ์. 3. [๊ฐ๋จํ ๊ธฐ์ด์ฐ์ฐ] "a*b+c*d" ์์ ๊ตฌํํ๊ธฐ ๊ฐ๋จํ ์ฐ์ฐ ์ฝ๋๋ฅผ ์์ฑํด๋ดค์ด์! ์์ผ๋ก ์ ์ ๋ฐ์ ํ๋ฉด์ ๊ฐ์ด ๋ฐฐ์๋ด์ ใ ใ ๊ทธ๋ผ ์ค๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ์๊ธฐ๊น์ง ํ๊ฒ ์ต๋๋ค! ๋ค๋ค ์๊ณ ํ์ จ์ด์~๐ฉ๐ฉ
[์ด์ ๋ธ๋ฆฌ์ด] ๊ธฐ์ด์ฝ๋๋ถ์์ด๋ฒ์ ๊ธฐ์ด ์ค์ต์ ํด๋ณด๊ณ ๊ทธ ์ฝ๋์ ๋ํด ๋ถ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด์ + , * ์ฌ์ฉ์ ์ฃผ๋ก ๋ค๋ค์ผ๋ ๊ฐ๋ณ๊ฒ ์ฝ์ด๋ด์ฃผ์ธ์!! โ๋จ : ๊ธ์ ์ํ๋ก ๋ฉ๋ชจํ์์ผ๋ ์ ์ํ์ฌ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค. 1. [๊ฐ๋จํ ๊ธฐ์ด์ฐ์ฐ] "a+2*b" ์์ ๊ตฌํํ๊ธฐ. ์ฝ๋ ํ์ธ ํ ๋ฉ๋ชจ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. 2. [๊ฐ๋จํ ๊ธฐ์ด์ฐ์ฐ] "์๋ฃ ์ฒ๋ฆฌ ๋จ์์ SASM ์์์ ๋จ์" ์์ ์ด์ด์ ์ฝ๋ ํด์ค๋ ์์ผ๋ ์ฐธ๊ณ ํด์ฃผ์ธ์. 3. [๊ฐ๋จํ ๊ธฐ์ด์ฐ์ฐ] "a*b+c*d" ์์ ๊ตฌํํ๊ธฐ ๊ฐ๋จํ ์ฐ์ฐ ์ฝ๋๋ฅผ ์์ฑํด๋ดค์ด์! ์์ผ๋ก ์ ์ ๋ฐ์ ํ๋ฉด์ ๊ฐ์ด ๋ฐฐ์๋ด์ ใ ใ ๊ทธ๋ผ ์ค๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ์๊ธฐ๊น์ง ํ๊ฒ ์ต๋๋ค! ๋ค๋ค ์๊ณ ํ์ จ์ด์~๐ฉ๐ฉ
2020.03.31 -
์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋ฌด์์ธ์ง๋ ์ ๋ฒ ๊ฒ์๊ธ์ ํตํด ์ค๋ช ๋๋ ธ๋๋ฐ์, ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ์ ์ง์ ์ค์ต์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋จผ์ ์ค์ต์ ์ํ SASM๋ฅผ ๋ค์ด๋ก๋ ํด๋ณผ๊ป์~ ๊ทธ๋ผ Start ๐๐๐ https://dman95.github.io/SASM/english.html ์ฌ์ดํธ ์ ์ ํ -> ์์ ์ OS์ ๋ง๋ ๊ฒ์ ๋ค์ด๋ก๋. โ ์ ๋ window๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์ window์ฉ์ ๋ค์ด๋ฐ์์ด์. โ ๋ค์ด๋ก๋ ํ ์คํ -> ์ธ์ด๋English ์ ํ โ ์์๊บผ ์ฒดํฌํด์ฃผ์ธ์~ โ ๊ฒฝ๋ก ์ง์ ํด์ฃผ๊ธฐ. โ ๋ค์ด๋ก๋ ์๋ฃ. ์ผ๋จ ๋ค์ด๋ก๋๋ ๋งค์ฐ ๊ฐํธํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฐ๋ก new project๋ฅผ ์์ฑํด๋ณด๋๋ก ํ ๊ป์. ์ํ์ผ์ ๋ง๋ค๋ฉด ์ด๋ฆฌ๋ ์ฒซ ํ๋ฉด์ ๋๋ค. ์ฝ๋๋ฅผ ๋ณด์๋ฉด ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ธ ๊ฒ ๊ฐ์๋ฐ, io.inc๋ 32bit๋ฅผ ์๋ฏธํ..
[์ด์ ๋ธ๋ฆฌ์ด] SASM ์ค์ตํด๋ณด๊ธฐ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋ฌด์์ธ์ง๋ ์ ๋ฒ ๊ฒ์๊ธ์ ํตํด ์ค๋ช ๋๋ ธ๋๋ฐ์, ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ์ ์ง์ ์ค์ต์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋จผ์ ์ค์ต์ ์ํ SASM๋ฅผ ๋ค์ด๋ก๋ ํด๋ณผ๊ป์~ ๊ทธ๋ผ Start ๐๐๐ https://dman95.github.io/SASM/english.html ์ฌ์ดํธ ์ ์ ํ -> ์์ ์ OS์ ๋ง๋ ๊ฒ์ ๋ค์ด๋ก๋. โ ์ ๋ window๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์ window์ฉ์ ๋ค์ด๋ฐ์์ด์. โ ๋ค์ด๋ก๋ ํ ์คํ -> ์ธ์ด๋English ์ ํ โ ์์๊บผ ์ฒดํฌํด์ฃผ์ธ์~ โ ๊ฒฝ๋ก ์ง์ ํด์ฃผ๊ธฐ. โ ๋ค์ด๋ก๋ ์๋ฃ. ์ผ๋จ ๋ค์ด๋ก๋๋ ๋งค์ฐ ๊ฐํธํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฐ๋ก new project๋ฅผ ์์ฑํด๋ณด๋๋ก ํ ๊ป์. ์ํ์ผ์ ๋ง๋ค๋ฉด ์ด๋ฆฌ๋ ์ฒซ ํ๋ฉด์ ๋๋ค. ์ฝ๋๋ฅผ ๋ณด์๋ฉด ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ธ ๊ฒ ๊ฐ์๋ฐ, io.inc๋ 32bit๋ฅผ ์๋ฏธํ..
2020.03.31 -
์ค๋์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฒ์ ์ฌ์ฉํด๋ณผ๊ป๋ฐ์ ์ฌ์ฉ์ ์!!! ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋ฌด์์ธ์ง! ์ ๊ธ์ธ์ด ๊ณ ๊ธ์ธ์ด๊ฐ ๋ฌด์์ธ์ง! ๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ๋ฌ์ ์ด์ ๋ธ๋ฌ์ ํน์ง์ด ๋ฌด์์ธ์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ผ Start๐ ์ด์ ๋ธ๋ฆฌ์ด๋? ์ด์ ๋ธ๋ฆฌ์ด(assembly language)๋๋ ์ด์ ๋ธ๋ฌ ์ธ์ด(assembler language)๋ ๊ธฐ๊ณ์ด์ ์ผ๋์ผ ๋์์ด ๋๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ธ ์ธ์ด์ด๋ค.(H/w์ ๊ด๋ จ์ด ๋ง์, ๊ธฐ๊ณ์ด์ ๊ฐ๊น์) ์ปดํจํฐ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ ๊ธฐ๊ณ์ด๊ฐ ๋ฌ๋ผ์ง๋ฉฐ, ๋ฐ๋ผ์ ๊ธฐ๊ณ์ด์ ๋์๋์ด ๋ง๋ค์ด์ง๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฐ๊ฐ ๋ค๋ฅด๊ฒ ๋๋ค. ์ปดํจํฐ CPU๋ง๋ค ์ง์ํ๋ ์คํผ๋ ์ด์ ์ ํ์ ๊ณผ ๊ฐ์๋ ์ ๊ฐ๊ฐ์ด๋ฉฐ, ๋ ์ง์คํฐ์ ํฌ๊ธฐ์ ๊ฐ์, ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ ํํ๋ ๊ฐ๊ธฐ ๋ค๋ฅด๋ค. ๋ชจ๋ ๋ฒ์ฉ ์ปดํจํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ..
์ด์ ๋ธ๋ฆฌ์ด ์ ๋ฌธํ๊ธฐ_(์ด์ ๋ธ๋ฆฌ์ด๋?)์ค๋์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฒ์ ์ฌ์ฉํด๋ณผ๊ป๋ฐ์ ์ฌ์ฉ์ ์!!! ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋ฌด์์ธ์ง! ์ ๊ธ์ธ์ด ๊ณ ๊ธ์ธ์ด๊ฐ ๋ฌด์์ธ์ง! ๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ๋ฌ์ ์ด์ ๋ธ๋ฌ์ ํน์ง์ด ๋ฌด์์ธ์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ผ Start๐ ์ด์ ๋ธ๋ฆฌ์ด๋? ์ด์ ๋ธ๋ฆฌ์ด(assembly language)๋๋ ์ด์ ๋ธ๋ฌ ์ธ์ด(assembler language)๋ ๊ธฐ๊ณ์ด์ ์ผ๋์ผ ๋์์ด ๋๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ธ ์ธ์ด์ด๋ค.(H/w์ ๊ด๋ จ์ด ๋ง์, ๊ธฐ๊ณ์ด์ ๊ฐ๊น์) ์ปดํจํฐ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ ๊ธฐ๊ณ์ด๊ฐ ๋ฌ๋ผ์ง๋ฉฐ, ๋ฐ๋ผ์ ๊ธฐ๊ณ์ด์ ๋์๋์ด ๋ง๋ค์ด์ง๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฐ๊ฐ ๋ค๋ฅด๊ฒ ๋๋ค. ์ปดํจํฐ CPU๋ง๋ค ์ง์ํ๋ ์คํผ๋ ์ด์ ์ ํ์ ๊ณผ ๊ฐ์๋ ์ ๊ฐ๊ฐ์ด๋ฉฐ, ๋ ์ง์คํฐ์ ํฌ๊ธฐ์ ๊ฐ์, ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ ํํ๋ ๊ฐ๊ธฐ ๋ค๋ฅด๋ค. ๋ชจ๋ ๋ฒ์ฉ ์ปดํจํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ..
2020.03.31