์ƒˆ์†Œ์‹

Languages/Assembly

[์–ด์…ˆ๋ธ”๋ฆฌ์–ด] ๊ธฐ์ดˆ์‹ค์Šต_๋ณ€์ˆ˜, ๋ฐฐ์—ด

  • -
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๊ธฐ์ดˆ ์ด๋ก ๊ณผ ์‹ค์Šต์„ ํ•ด๋ณผ๊บผ์˜ˆ์š”~

์•„์ง ๊ฐˆ ๊ธธ์ด ๋ฉ€๊ธฐ๋•Œ๋ฌธ์—..!

์ง€๊ธˆ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿฑ‍๐Ÿ๐Ÿ’จ

 


 

์–ด์…ˆ๋ธ”๋ฆฌ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ์ž์›
  • 3๊ฐœ์˜ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ์ด ๋œ๋‹ค.
  • CPU๋Š” ๋ช…๋ น์–ด๋ฅผ 1๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์™€์„œ ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ  ์ˆ˜ํ–‰ํ•œ ํ›„ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ๋‹ค.

์ฆ‰ ์–ด์…ˆ๋ธ”๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์€ CPU๊ฐ€ ์ง€์›ํ•ด ์ฃผ๋Š” ๊ฐ์ข… ์—ฐ์‚ฐ ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋ ˆ์ง€์Šคํ„ฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋‹จ์ˆœํ•œ ์ž‘์—…๊ณผ์ •์„ ๋งํ•œ๋‹ค.

 

๋ ˆ์ง€์Šคํ„ฐ๋Š” cpu์— ํฌํ•จ๋˜์–ด์žˆ์ง€๋งŒ ๊ทธ์™ธ์—๋„ 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  : ํ™”๋ฉด์— ์ค„ ๋ณ€๊ฒฝ -> ์ƒˆ๋กœ์šด ๋ผ์ธ์œผ๋กœ ๊ฐ„๋‹ค.

 

 


 

์ฝ”๋“œ ์„ค๋ช… : ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’ ์ถœ๋ ฅ

 

 

์œ„์— ๊ฒฐ๊ณผ๊ฐ’

 

๋‹ค์Œ์žฅ์—์„œ๋Š” "๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๋ชจ์Šต"์„ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ˆ˜๊ณ ํ•˜์…จ์–ด์š”~(โ—'โ—ก'โ—)

๋ฐ˜์‘ํ˜•
Contents

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

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