๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

์–ด์…ˆ๋ธ”๋Ÿฌ(Asembler)

Assembly Language Statements#

3 types of functional statements#

  • ๋ช…๋ น์–ด(Instructions) : ์–ด์…ˆ๋ธ”๋Ÿฌ์— ์˜ํ•ด ์˜ค๋ธŒ์ ํŠธ ์ฝ”๋“œ๋กœ ํ•ด์„๋˜์–ด ๋Ÿฐํƒ€์ž„์— ์‹คํ–‰๋œ๋‹ค. ๊ฐ ์ธ์ŠคํŠธ๋Ÿญ์…˜์€ ํ•˜๋‚˜์˜ ์—ฐ์‚ฐ(operation)์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ง€์‹œ์–ด(Directives) : ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์–ด๋–ค ์•ก์…˜์„ ์ทจํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์ง€์‹œํ•œ๋‹ค. ์˜ค๋ธŒ์ ํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™”๋˜์ง€ ์•Š๋Š”๋‹ค.

  • ๋งคํฌ๋กœ(Macro) : ๋ฐ˜๋ณต๋˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด๋กœ ํ‘œํ˜„ํ•œ๋‹ค.


Actual Machine Architecture#

CISC(Complex Instruction Set Computers)#

  • ํฌ๊ณ  ๋ณต์žกํ•œ ์ธ์ŠคํŠธ๋Ÿญ์…˜ ์„ธํŠธ๊ฐ€ ์ œ๊ณต

  • ๋‹ค์–‘ํ•œ ์ธ์ŠคํŠธ๋Ÿญ์…˜ ํฌ๋งท๊ณผ ๊ธธ์ด๋ฅผ ๊ฐ€์ง

  • ๋‹ค์–‘ํ•œ ์–ด๋“œ๋ ˆ์‹ฑ ๋ชจ๋“œ

  • ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„์ด ์–ด๋ ค์›€


RISC(Reduced Instruction Set Computers)#

  • ์†Œ์ˆ˜์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜, ์ธ์ŠคํŠธ๋Ÿญ์…˜ ํฌ๋งท, ์–ด๋“œ๋ ˆ์‹ฑ์„ ์ œ๊ณต

  • ํ‘œ์ค€์˜ ๊ณ ์ •๋œ ์ธ์ŠคํŠธ๋Ÿญ์…˜ ๊ธธ์ด์™€ single-cycle excution

  • ์žฅ์ 

    • ํ”„๋กœ์„ธ์„œ ๋””์ž์ธ ๋‹จ์ˆœํ™”

    • ํ”„๋กœ์„ธ์„œ ๊ฐœ๋ฐœ์„ ๋น ๋ฅด๊ณ  ์ €๋ ดํ•˜๊ฒŒ

    • ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๊ณ  ๋น ๋ฅธ ์ธ์ŠคํŠธ๋Ÿญ์…˜ ์‹คํ–‰ ์‹œ๊ฐ„


Assembler๋ž€#

  • ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋จธ์‹  ์ฝ”๋“œ(์˜ค๋ธŒ์ ํŠธ ์ฝ”๋“œ)๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์‹œ์Šคํ…œ์†Œํ”„ํŠธ์›จ์–ด

  • ๊ธฐ๊ณ„์ข…์†์  ๊ธฐ๋Šฅ

    • ์ธ์ŠคํŠธ๋Ÿญ์…˜ ํฌ๋งท๊ณผ ์–ด๋“œ๋ ˆ์‹ฑ ๋ชจ๋“œ์— ์˜์กด
  • ๊ธฐ๊ณ„๋…๋ฆฝ์  ๊ธฐ๋Šฅ

    • ๋จธ์‹  ์•„ํ‚คํ…์ณ์™€ ์ง์ ‘ ๊ด€๋ จ์ด ์—†๋‹ค.


Example of a SIC assembler language program#

์‚ฌ์šฉ๋˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ ์ง€์‹œ์–ด(directives)

  • START : ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„๊ณผ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ด

  • END : ํ”„๋กœ๊ทธ๋žจ์˜ ๋์„ ๊ฐ€๋ฆฌํ‚ด

  • BYTE, WORD : character ๋˜๋Š” constant๋ฅผ ์ƒ์„ฑ

  • RESB, RESW : ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ byte/word๋ฅผ ์˜ˆ์•ฝํ•จ


Forward reference#

LOC     Source statement              Object code1000    FIRST    STL    RETADR        141033...1033    RETADR   RESW   1

์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ ๋ณ€ํ™˜์„ ํ•œ๋ฒˆ์— ํ•  ์ˆ˜ ์—†๋‹ค. (์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ RETADR์˜ ์ฃผ์†Œ๋ฅผ ๋‚˜์ค‘์— ์•Œ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์—) ์ด๋ฅผ forward reference๋ผ๊ณ  ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋Œ€๋ถ€๋ถ„์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” Two passes ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋””์ž์ธํ•˜์—ฌ ํ•ด๊ฒฐํ•œ๋‹ค.

  • 1st pass๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์Šค์บ”ํ•˜๋ฉฐ ๋ ˆ์ด๋ธ” ์ •์˜๋ฅผ ์ฐพ๊ณ  ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

  • 2nd pass๋Š” ์‹ค์ œ ๋ฒˆ์—ญ์˜ ๋Œ€๋ถ€๋ถ„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ์˜ค๋ธŒ์ ํŠธ ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅ ์žฅ์น˜์— ์ƒ์„ฑํ•ด๋‚ด๊ณ , ์ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰์„ ์œ„ํ•ด๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด ์˜ค๋ธŒ์ ํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ์˜ 3๊ฐ€์ง€ ํƒ€์ž…์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.

  • Header

  • Text

  • End