์ƒˆ์†Œ์‹

Languages/Assembly

์–ด์…ˆ๋ธ”๋Ÿฌ, gccํ™˜๊ฒฝ ๊ตฌ์„ฑํ•˜๊ธฐ

  • -
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ c์–ธ์–ด์™€ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ํ•ฉ์ณ์„œ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


 

SASM์˜ GUIํ™˜๊ฒฝ์—†์ด ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” nasm.exe(์–ด์…ˆ๋ธ”๋Ÿฌ)์™€

gcc.exe(๋ง์ปค) ์‹คํ–‰ํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฐ ํ™˜๊ฒฝ์€ ๋ช…๋ น ์ฐฝ ํ™˜๊ฒฝ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ ์„ค์ •์„ ๋”ฐ๋กœ ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

 

๋จผ์ € gccํ™˜๊ฒฝ ์„ค์ •์„ ํ•ด์ค€ ํ›„, ๊ฒฝ๋กœ๋ฅผ ๊ฐ™์€ ๊ณต๊ฐ„์— ๋„ฃ์–ด nasm๊ณผ ํ•จ๊ป˜ ๋‘์—ˆ๋‹ค.

 

sasm์—์„œ๋Š” io.inc/io64.inc ๋งคํฌ๋กœ ํ•จ์ˆ˜๋“ค์˜ ๋„์›€์œผ๋กœ ์ž…์ถœ๋ ฅ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ,

๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ๋งคํฌ๋กœ ํ•จ์ˆ˜์˜ ๋„์›€์„ ๋ฐ›์ง€ ์•Š๊ณ  ์ฝ”๋”ฉํ•œ๋‹ค๋ฉด ์ฝ”๋”ฉ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์‹คํ–‰ ํ•ด์•ผํ•œ๋‹ค.

 

๊ธฐ์กด์— sasm ์œผ๋กœ์˜ ์ฝ”๋”ฉ

 

๋ณ€๊ฒฝ๋œ ์ƒˆ๋กœ์šด ํ˜•์‹์˜ ์ฝ”๋”ฉ ํ”„๋ ˆ์ž„์›Œํฌ

 

์ฆ‰ CMAIN์ด _main์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. section์„ segment๋ผ๋Š” ์ง€์‹œ์–ด๋กœ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€์€ ์—†๋‹ค.

๋ช…๋ น์ฐฝ ํ™˜๊ฒฝ(cmd)์—์„œ ์–ด์…ˆ๋ธ”๋ฆฌ ์†Œ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

์†Œ์Šค ํŒŒ์ผ์€ ์–ด์…ˆ๋ธ”๋Ÿฌ(nasm.exe)์— ์˜ํ•ด ์ค‘๊ฐ„ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ ,

์ด ์ค‘๊ฐ„ํŒŒ์ผ์„ ์ด์šฉํ•ด์„œ ๋ง์ปค(gcc.exe)๋Š” ์ตœ์ข… ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ฒŒ ๋จ

 

test.asm(์†Œ์ŠคํŒŒ์ผ)--->nasm.exe(์–ด์…ˆ๋ธ”๋Ÿฌ) ๋ฅผ ํ†ตํ•ด ---> test.obj(์ค‘๊ฐ„ํŒŒ์ผ)๋กœ ๋ณ€๊ฒฝ๋จ ---->์ด๊ฒƒ์„ gcc.exe(๋ง์ปค)๊ฐ€ --> test.exe(์‹คํ–‰ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์คŒ)

 

์ด๋Ÿฐ ์ˆœ์„œ์ธ ๊ฒƒ์ด๋‹ค.

 

์•„๋ž˜๋Š” ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

 

 

์–ด์…ˆ๋ธ”(์ค‘๊ฐ„ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ)

- nasm.exe -g -f win32 <์†Œ์Šค์ด๋ฆ„> -o <์ค‘๊ฐ„ํŒŒ์ผ ์ด๋ฆ„>

- nasm.exe -g -f win64 <์†Œ์Šค์ด๋ฆ„> -o <์ค‘๊ฐ„ํŒŒ์ผ ์ด๋ฆ„>

 

 

๋งํ‚น(์‹คํ–‰ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ)

- gcc.exe <์ค‘๊ฐ„ํŒŒ์ผ์ด๋ฆ„> -g -o <์‹คํ–‰ํŒŒ์ผ ์ด๋ฆ„> -m32

- gcc.exe <์ค‘๊ฐ„ํŒŒ์ผ์ด๋ฆ„> -g -o <์‹คํ–‰ํŒŒ์ผ ์ด๋ฆ„> -m64

 

**์ฐธ๊ณ ๋กœ c์–ธ์–ด๋Š” ์œ„์ฒ˜๋Ÿผ exeํŒŒ์ผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ

์–ด์…ˆ์†Œ์Šค์™€ ์„ž์ผ ๋•Œ๋Š”(nasm์•ˆ์— ์žˆ๋˜ macro.oํŒŒ์ผ์„ ํ•จ๊ป˜ ์จ์„œ ๋งํ‚น ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-gcc a.obj macro.o b.o -g -o haeun -m32

--> ์ฆ‰ a.asm ์„ ์ค‘๊ฐ„ํŒŒ์ผ๋กœ ๋งŒ๋“  a.obj์™€ 

macro.o ํŒŒ์ผ ๊ทธ๋ฆฌ๊ณ  b.o(b.c๋ฅผ b.o๋กœ ์ค‘๊ฐ„ํŒŒ์ผ๋งŒ๋“  ๊ฒƒ)

๋ฅผ haeun ์ด๋ผ๋Š” ์‹คํ–‰ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. **

 

 

 

-g : ๋””๋ฒ„๊น… ์ •๋ณด ํฌํ•จ

-f : ์ถœ๋ ฅํŒŒ์ผ ํฌ๋ฉง

-o ์ถœ๋ ฅํŒŒ์ผ ์ด๋ฆ„

 

 

NASM์—์„œ 2๊ฐœ ์ด์ƒ์˜ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ด์…ˆ๋ธ”๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ

-> ๋™์ผํ•œ ๋ชจ๋“ˆ ๋‚ด๋ถ€์— ์žˆ๋Š” ํ”„๋กœ์‹œ์ €๋Š” ํŠน๋ณ„ํ•œ ์กฐ์น˜ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

-> ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์žˆ๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์„ค์ •์ด ํ•„์š”ํ•จ

 


 

ํ”„๋กœ์‹œ์ €๋ž€?

 

ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•˜๋Š”, ์ด๋ฆ„์ด ์žˆ๋Š” PL/SQL BLOCK ์ด๋‹ค.

๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” BLOCK ์ด๋‹ค.

 

 

ํ”„๋กœ์‹œ์ € ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“ˆ ,๋ชจ๋“ˆ์˜ ์ œ์ผ ์œ„์ชฝ์— extern ์ง€์‹œ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋น„์Šค๋ฐ›์œผ๋ ค ํ•˜๋Š” ํ”„๋กœ์‹œ์ €์˜ ์ด๋ฆ„์ด

์™ธ๋ถ€ ๋ชจ๋“ˆ ์–ด๋”˜๊ฐ€์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์„ ์–ธ

ex) test.asm ์—์„œ extern myadd ๋ฅผ ์„ ์–ธํ•ด์คŒ.

 

 

 

 

 

 

 

 

๋“ฑ...์ด๋ ‡๊ฒŒ ์„ ์–ธํ•ด์ฃผ๋Š” ๊ฒƒ์ž„

 

io.inc/io64.incํŒŒ์ผ์€ sasm์ด ์„ค์น˜๋œ ํด๋”์•ˆ์— include์„œ๋ธŒ ํด๋”์—์„œ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

https://dman95.github.io/SASM/

์œ„ ์ฃผ์†Œ์—์„œ ๋‹ค์šด๋ฐ›์œผ๋ฉด sasm ์•ˆ์— nasm ๋‹ค ์ค€๋น„๋˜์–ด ์žˆ์œผ๋‹ˆ ๊ฐ„ํŽธํ•  ๋“ฏํ•˜๋‹ค

 

sasm > nasm ํด๋” >macro.o, macro64.o ํŒŒ์ผ๋กœ ์กด์žฌํ•จ

์ฆ‰ ์ € 4๊ฐœ ํŒŒ์ผ๋“ค์„ ์ž‘์—… ํด๋”๋กœ ๋ณต์‚ฌํ•˜๋ฉด ์ค€๋น„๊ฐ€ ๋๋‚œ๋‹ค.

(nasm ์•ˆ์— ๋‘๊ฐœ, include์•ˆ์— ๋‘ ๊ฐœ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

์ด๋ ‡๊ฒŒ ๊ฐ™์€ ๊ฒฝ๋กœ๋กœ ๋†”์ค€๋‹ค.

 

 

์ด๊ฒƒ์œผ๋กœ %include "io.inc"๋ฅผ ํฌํ•จํ•˜๊ณ  ํ•„์š”ํ•œ ํ•จ์ˆ˜ PRINT_DEC๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์ฝ”๋”ฉ ํ•  ์ˆ˜ ์ž‡๋‹ค.

๋˜ํ•œ CMAIN , _main ๋ชจ๋‘ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 


 

C์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

 

c์˜ ํ•จ์ˆ˜๋“ค์€ ์ค‘๊ฐ„ํŒŒ์ผ ํ˜•ํƒœ(๋ณดํ†ต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ผ๊ณ ํ•จ)๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์–ด์„œ

์šฐ๋ฆฌ๊ฐ€ C๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•  ๋•Œ, ๋งํ‚น์ด ์ผ์–ด๋‚˜๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ C์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์€ ๋‹น์—ฐํžˆ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

sasmํ™˜๊ฒฝ์—์„œ c์˜ ๋ผ์ด๋ธŒํŒŒ์ผ์€ sasm > mingw(32bit) ์˜ ์„œ๋ธŒํด๋” ์•ˆ์— ์กด์žฌํ•˜๊ณ  ์žˆ๋‹ค.

(์ €๊ฐ™์€๊ฒฝ์šฐ mingw > lib > gcc > mingw32 > 4.6.2์— ์กด์žฌํ–ˆ์–ด์š”)

 

 

์–ด์…ˆ์—์„œ C์˜ printf()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด(32bit ๋ชจ๋“œ ๊ธฐ์ค€)

๋ฐ˜๋“œ์‹œ ์•„๋ž˜์™€ ๊ฐ™์€ ์†Œ์Šค์ฝ”๋“œ ์ฝ”๋”ฉ์— ๋Œ€ํ•ด ์ˆ™์ง€ํ•ด์•ผํ•œ๋‹ค.

extern _printf ; ์™ธ๋ถ€ ํ•จ์ˆ˜ ์กด์žฌ ์„ ์–ธ(ํ•จ์ˆ˜ ์ด๋ฆ„ ์•ž์— _๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ถ™์—ฌ์•ผํ•จ)

push parameter; ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •

call _printf ; ํ•จ์ˆ˜ ํ˜ธ์ถœ

add esp, ํŒŒ๋ผ๋ฏธํ„ฐ ํฌ๊ธฐ; ์Šคํƒ๋ณต๊ตฌ

 

C๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜์—ฌ ๋งํ‚น ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š”

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ C์˜ ์ค‘๊ฐ„ํŒŒ์ผ๋ช…์„ ์ˆ˜๋™์œผ๋กœ ์•Œ๋ ค์ฃผ์ง€ ์•Š๊ณ , gcc ์„ค์น˜ ์‹œ

์„ค์ •๋œ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ gcc.exe๊ฐ€ ๋ฌต์‹œ์ ์œผ๋กœ ํ•„์š”ํ•œ ์š”์†Œ๋“ค์„ ๋งํฌํ•œ๋‹ค.

์ค‘๊ฐ„ํŒŒ์ผ์˜ ํ™•์žฅ์ž๋Š” ๋ฌด์—‡์ด๋“  ์•„๋ฌด ์ƒ๊ด€์ด ์—†์ง€๋งŒ ์ž์ฃผ ์“ฐ๋Š” ํ™•์žฅ์ž๋Š” obj, o, a, lib ๋“ฑ์ด ์žˆ๋‹ค.

 

+++

c์–ธ์–ด๋ผ๋ฉด printf("hello \n");

์–ด์…ˆ๋ธ”์˜ ๊ฒฝ์šฐ 'hello' ,13,10,0 ์ด๋ ‡๊ฒŒ ์”€

์™œ ๊ทธ๋Ÿฌ๋‚˜ ์•Œ์•„๋ดค๋Š”๋ฐ

 

13์€ CR ASCII ์ฝ”๋“œ (์บ๋ฆฌ์ง€ ๋ฆฌํ„ด)์˜ 10์ง„์ˆ˜ ๊ฐ’์ด๊ณ  10์€ LF ASCII ์ฝ”๋“œ

(์ค„ ๋ฐ”๊ฟˆ)์˜ 10์ง„์ˆ˜ ๊ฐ’์ด๋ฉฐ 0์€ ๋ฌธ์ž์—ด์˜ ์ข…๋ฃŒ 0 ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

 

โ€ป๊ทธ ์ „์— ์•Œ๊ณ  ๊ฐˆ ์ง€์‹

1. ์Šคํƒ์€ ๋†’์€ ์ฃผ์†Œ์—์„œ ๋‚ฎ์€ ์ฃผ์†Œ๋กœ ์„ฑ์žฅํ•จ.

๋”ฐ๋ผ์„œ ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ์†Œ์˜ ๋บ„์…ˆ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚˜๊ณ , ์Šคํƒ์„ ๋ณต์›ํ•˜๋ฉด ์ฃผ์†Œ์˜ ๋ง์…ˆ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚œ๋‹ค.

 

2. C์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜ธ์ถœ ๋ฐฉ๋ฒ•์€ ์Šคํƒ์— ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ 

ํ•จ์ˆ˜์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ . Cํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ

์Šคํƒ์˜ ๋ณต์›์€ ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ํ˜ธ์ถœํ•œ ์ชฝ์—์„œ ๋ฐ”๊ฟ”์„œ ํ•ด์•ผํ•œ๋‹ค.

 


 

io.inc ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” extern _printf๋ฅผ ์„ ์–ธํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ _print ๋˜๋Š” printf ๋ผ๊ณ  ํ˜ธ์ถœํ•ด๋„

์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”๋ฐ, ์ด์œ ๋Š” io.inc ํŒŒ์ผ ๋‚ด๋ถ€์— _printf๊ฐ€ printf๋กœ ์žฌ์ •์˜ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ฌผ๋ก  ๋ชจ๋“  Cํ•จ์ˆ˜๊ฐ€ ์ •์˜๋œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ž์ฃผ ์“ฐ๋Š” ํ•จ์ˆ˜๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์ •์˜๋˜์–ด์žˆ๋‹ค.

 

C๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ ๋งŒ๋“ค๊ณ  ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์—์„œ ์ด ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜๊ธฐ

์–ด๋–ค ๋กœ์ง๋“ค์€ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ์— ๋„ˆ๋ฌด๋‚˜ ๋ณต์žกํ•˜๊ณ  ์ฝ”๋”ฉ๋Ÿ‰์ด ๋งŽ์€ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข…์žˆ๋‹ค.

์ด๋Ÿฐ ์ด์œ ๋•Œ๋ฌธ์— C์–ธ์–ด๊ฐ™์€ ๊ณ ๊ธ‰ ์–ธ์–ด๊ฐ€ ๋“ฑ์žฅ ํ•˜์˜€๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๋กœ์ง์„ ์ €๊ธ‰์–ธ์–ด์ธ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ

์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์‹ค์ œ๋กœ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์—์„œ ์ด๋Ÿฐ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐ ์–ธ์–ด๋“ค์˜ ์ƒํ˜ธ๊ด€๊ณ„ ๋ฐ ๊ทธ ๋‚ด๋ฉด์„ ๋“ค์—ฌ๋‹ค๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ณณ์—์„œ ๋‹ค๋ฃจ์—ˆ๋‹ค.

 


1. C์—์„œ ํ•จ์ˆ˜ ๋ฆฌํ„ด ๊ฐ’์€ eax๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ๋‹ค

๋”ฐ๋ผ์„œ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด ์ชฝ์—์„œ ๋ฆฌํ„ด๊ฐ’์€ EAX๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ฝ์œผ๋ฉด ๋œ๋‹ค

 

2. 32bit๋ชจ๋“œ ์‹คํ–‰ํŒŒ์ผ์—์„œ C์˜ int๋Š” 32bit (4byte)๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค

 

3. ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์Šคํƒ์œผ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ C์–ธ์–ด์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ ๋’ค์ชฝ์— ๋‚˜์˜ค๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ถ€ํ„ฐ ์Šคํƒ์— ์ „๋‹ฌ๋œ๋‹ค

 


๋ฐฐ์น˜ํŒŒ์ผ ๋‚ด์šฉ

๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃผ๋ฉด ๋œ๋‹ค. (gcc,nasm์œ„์น˜)

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.