์ด์ ๋ธ๋ฌ(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 referenceLOC 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