์ปดํ์ผ ๋ฐฉ๋ฒ : shell์ make ์ ๋ ฅ
- testfiles์์ ํ์ํ ํ์ผ์ ์ ๋ถ testfiles ๋๋ ํ ๋ฆฌ์์ ๊บผ๋ธ ํ ์คํํด์ผ ํจ.
์คํ ๋ฐฉ๋ฒ : shell์ ./20191574.out ์ ๋ ฅ
ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด ํ๋ฉด์ sicsim> ์ด ์ถ๋ ฅ๋๋ค. ์ด๋ SIC/XE์ shell๊ณผ ๊ฐ์ ์ญํ ์ด๊ณ ์ด ํ๋ฉด์ ์ํ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
๋ช ๋ น์ด ์คํ
- ๋ช ๋ น์ด๋ ์๋ฌธ์๋ง ์ธ์์ด ๊ฐ๋ฅํ๋ค.
- ๊ณต๋ฐฑํฌํจ 100์๋ฆฌ ์ด์์ ๋ช ๋ น์ด๋ ์ ๋ ฅ์ด ๋ถ๊ฐํ๋ค.
/* Shell ๋ช ๋ น์ด */
- h ๋๋ help ์ฌ์ฉ ๊ฐ๋ฅํ ๋ช ๋ น์ด๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ค.
- d ๋๋ dir ํ์ฌ ๋๋ ํฐ๋ฆฌ ๋ด์ ํ์ผ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ค. ๋๋ ํฐ๋ฆฌ์ธ ๊ฒฝ์ฐ ํ์ผ๋ช ์์ '/', ์คํํ์ผ์ ๊ฒฝ์ฐ '*'๊ฐ ์ถ๋ ฅ๋๋ค.
- q ๋๋ quit ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค.
- hi ๋๋ history shell์ ์ ๋ ฅํ๋ ๋ช ๋ น์ด๋ค์ ์ ๋ ฅ ์์ผ๋ก ์ถ๋ ฅํ๋ค.
- type filename filename ๋ถ๋ถ์๋ ์ถ๋ ฅ์ ์ํ๋ ํ์ผ์ ์ด๋ฆ์ ๋ฃ๊ณ ์คํํ๋ฉด ๋๋ค. filename์ ํด๋นํ๋ ํ์ผ์ ํ์ฌ ๋๋ ํฐ๋ฆฌ์์ ์ฝ์ด ํ๋ฉด์ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ค.
/* Memory ๋ช ๋ น์ด */
- du ๋๋ dump i) du[mp] ์ด์ ๊น์ง ํธ์ถํ๋ dump๊ฐ ์ถ๋ ฅํ ์ดํ ๋ฒ์ง๋ถํฐ 160byte์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค. ์ฒ์ ํธ์ถํ๋ ๊ฒฝ์ฐ์๋ 0๋ฒ์งธ ๋ฒ์ง๋ถํฐ 160byte๋ฅผ ์ถ๋ ฅํ๋ค. ii) du[mp] start ํด๋น ์ธ์๋ 16์ง์ ํํ์ฌ์ผ ํ๋ค. start ๋ฒ์ง๋ถํฐ 160byte์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค. iii) du[m] start, end ํด๋น ์ธ์๋ค์ 16์ง์ ํํ์ฌ์ผ ํ๋ค. start ๋ฒ์ง๋ถํฐ end ๋ฒ์ง์ ๋ฉ๋ชจ๋ฆฌ๋ค์ ์ถ๋ ฅํ๋ค.
- e ๋๋ edit e[dit] address, value์ ๊ผด๋ก ์ ๋ ฅํด์ผ ํ๋ค. address, value ๋ชจ๋ 16์ง์ ํํ์ฌ์ผ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ address ๋ฒ์ง์ ๊ฐ์ value์ ์ง์ ๋ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
- f ๋๋ fill f[ill] start, end, value์ ๊ผด๋ก ์ ๋ ฅํด์ผ ํ๋ค. start, end, value ๋ชจ๋ 16์ง์์ ํํ์ฌ์ผ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ start ๋ฒ์ง๋ถํฐ end๋ฒ์ง๊น์ง์ ๊ฐ์ value์ ์ง์ ๋ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
- reset ๋ฉ๋ชจ๋ฆฌ ์ ์ฒด๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
/* OPCODE ๋ช ๋ น์ด */
- opcode mnemonic mnemonic์ ์๋ฆฌ์๋ opcode๋ฅผ ์ฐพ๊ณ ์ถ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค. ex ) opcode ADD, opcode LDB ๋จ, mnemonic์ ๋ชจ๋ ๋๋ฌธ์๋ก ์ ๋ ฅํด์ผ ํ๋ค. ์ ์ ํ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํด๋น ๋ช ๋ น์ด์ opcode๋ฅผ ์ถ๋ ฅํ๋ค.
- opcodelist opcode Hash Table์ ๋ด์ฉ์ ์ถ๋ ฅํ๋ค.
/* SIC/XE ์ด์ ๋ธ๋ฌ ๋ช ๋ น์ด */
-
assemble filename filename ๋ถ๋ถ์๋ assembleํ๊ธฐ๋ฅผ ์ํ๋ ์์ค ํ์ผ์ ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด ๋๋ค. filename์ ํด๋นํ๋ ์์ค ํ์ผ์ ์ฝ์ด์ object ํ์ผ๊ณผ ๋ฆฌ์คํ ํ์ผ์ ๋ง๋ ๋ค. [filename.obj, filename.lst] ์ ํด๋นํ๋ ํ์ผ ๋ ๊ฐ๊ฐ ๋ง๋ค์ด ์ง๋ค. ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํ ๋ผ์ธ์ ์ถ๋ ฅํ๋ค.
-
symbol assemble ๊ณผ์ ์ค์์ ์์ฑ๋ symbol table์ ํ๋ฉด์ ์ถ๋ ฅํ๋ค. ๊ฐ์ฅ ์ต๊ทผ์ ์ฑ๊ณต์ ์ผ๋ก assemble๋ ํ์ผ์ symbol table์ ์ํ๋ฒณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ค.
/* LOAD ๋ช ๋ น์ด */
-
progaddr address program์ด load ๋๊ธฐ๋ฅผ ์ํ๋ ์ฃผ์๋ฅผ token์ผ๋ก ๋๊ฒจ progaddr์ ์ด๊ธฐํํ๋ค. ํ๋ก๊ทธ๋จ ์ํ ์ ์๋์ผ๋ก 0x00์ผ๋ก ์ง์ ๋๋ค.
-
loader filename1 [filename2] [filename3] filename์ ํด๋นํ๋ object file์ ์ฝ์ด linking ์์ ์ ์ํํ๊ณ , ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ load ํ๋ค. ํ์ผ์ 3๊ฐ๊น์ง ์ ๋ ฅ ๊ฐ๋ฅํ๋ค. load๊ฐ ์ ์์ ์ผ๋ก ๋๋๋ฉด load map์ด ํ๋ฉด์ ์ถ๋ ฅ๋๋ค.
/* RUN ๋ช ๋ น์ด */
-
bp address address์ ํด๋นํ๋ ์ฃผ์๋ฅผ break point๋ก ์ง์ ํ๋ค. run์ ์ํํ์ ๋ breakpoint๊ฐ ๋๋ ์๊ฐ๊น์ง ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์ ์งํ๋ค. ๋ค์ run์ ์ํํ๋ฉด ์ ์ง๋ breakpoint๋ถํฐ ์ํ๋๋ค. break point๊ฐ ์๋ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ ๋๊น์ง ์ํ๋๋ค.
-
bp clear ์ง์ ๋ ๋ชจ๋ break point๋ฅผ ์ด๊ธฐํํ๋ค.
-
bp ์ง์ ๋ ๋ชจ๋ break point๋ฅผ ์ถ๋ ฅํ๋ค.
-
run ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค. progaddr ๋ช ๋ น์ด๋ก ์ง์ ๋ ์ฃผ์๋ถํฐ ์คํ๋๋ค. run์ด ์ ์ง๋ ์์ ์ register ๊ฐ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.