《组合语言与系统程式.ppt》由会员分享,可在线阅读,更多相关《组合语言与系统程式.ppt(52页珍藏版)》请在三一办公上搜索。
1、組合語言與系統程式,軟體使用教學(中文詳細版),軟體介紹,sicasmSIC assemblersic language program-object programsicsimSIC simulator執行object program,sicasm SIC assembler,sicasm SIC assembler,支援SIC不支援STSW這個指令Use ASCII codeExternal files:Input file:SRCFILEOutput file:OBJECT、INTFILE、LISFILE,sicasm SIC assembler-檔案與assembler關係圖,sica
2、sm SIC assembler,SRCFILE 攥寫SIC program處Source format(請務必依照此格式寫)Bytes 1-8 label 9 blank10-15 operation code(or assembler directive)16-17 blank18-35 operand36-66 commentBlank不可以用tab取代,兩者的ASCII code是不同的,sicasm SIC assembler,SRCFILE英文字母為大寫英文字母,sicasm SIC assembler,OBJFILE 組譯(執行sicasm)後,此處會產生object progr
3、am,sicasm SIC assembler,LISFILE 列出組譯狀況,sicasm SIC assembler,當成是有錯,LISFILE會出現錯誤訊息由於沒有宣告ZERO變數,所以出現找不到operand的錯誤訊息,sicasm SIC assembler,INTFILE 這個檔案列出組譯器組譯過程中產生的中間處理過程,sicsim SIC simulator,sicsim SIC simulator,支援SIC 和 SIC/XEMain memory size 最大為2FFF(可更改)Use ASCII codeExternal files:Input file:DEV00、DEV
4、F1、DEVF2、DEVF3Output file:DEV04、DEV05、DEV06、LOG,sicsim SIC simulator-檔案與simulator關係圖,sicsim SIC simulator-處理過程,sicsim SIC simulator-處理過程,sicsim SIC simulator-處理過程,sicsim SIC simulator-處理過程,sicsim SIC simulator-處理過程,sicsim SIC simulator-Input file,DEV00:object program of bootstrap當電腦開機或是重新啟動時,會執行boot
5、strapbootstrap的功能為:載入第一個在電腦執行的程式通常第一個在電腦執行的程式為OS而這個simulator處理的工作較為簡單,所以此處指的是loader,sicsim SIC simulator-Input file,DEV00:object program of bootstrap請勿更改內容,sicsim SIC simulator-Input file,DEVF1:object program of loaderloader的功能為:把要執行的object program載入到memory中載入完畢後,跳到指定的位址,開始執行載入的程式指定的位址通常指程式的起始位址ex.下
6、列範例的起始位址1000,sicsim SIC simulator-Input file,DEVF1:object program of loader請勿更改內容,sicsim SIC simulator-Input file,DEVF2:OBJFILE攥寫程式經過sicasm.exe組譯出來的object program,sicsim SIC simulator-Input file,DEVF3:Input device要輸入程式的input data,sicsim SIC simulator-Output file,DEV04、DEV05、DEV06:output device程式要寫出的
7、output data,sicsim SIC simulator-Output file,LOG:執行sicsim的過程,sicsim SIC simulator-執行步驟,將OBJFILE內容複製到DEVF2執行sicsim,出現輸入指令提示輸入英文字母為大寫英文字母,sicsim SIC simulator-執行指令,DUMP顯示register和memory的內容D R顯示registerD startaddr-endaddr顯示memory,位址算法請看下一張startaddr為起始位址endaddr為結束位址Memory顯示範圍最大320bytesD R,startaddr-enda
8、ddr,位址算法,sicsim SIC simulator-執行步驟,D R,0-9F顯示register和0000009F的memory內容,sicsim SIC simulator-執行畫面,此時還沒啟動,memory中沒有內容(都還是預設值F),sicsim SIC simulator-執行指令,START輸入S將DEV00的bootstrap讀入memory中,sicsim SIC simulator-執行步驟,SD R,0-9F,sicsim SIC simulator-執行畫面,sicsim SIC simulator-執行指令,HCOUNT設定一次執行多少個指令H nn 為要設定
9、的指令個數Ex.H 50-一次執行50個指令n 值為14個十進位的數字最大值為9999n 預設值為1000,sicsim SIC simulator-執行步驟,H 5000設定一次執行5000個指令,sicsim SIC simulator-執行指令,BKPT設定breakpoint控制指令執行B addressH 5000 設定一次執行5000個指令;但執行時可能會超過所要執行的範圍Ex.只要執行2000個指令所以可以設定breakpoint,當執行到breakpoint時,會暫停執行,出現 BREAKPOINT REACHED訊息之後繼續按R還是會執行下一個指令,所以可以設定breakpo
10、int作為debug工具,sicsim SIC simulator-執行步驟,B 00E2設定00E2是因為,loader做完object program(DEVF2)全部載入memory的停止點換言之,當遇到第一次的breakpoint就代表已經把程式全部載入memory中下一個執行的指令,就開始執行攥寫的程式,sicsim SIC simulator-執行指令,RUNR 執行R address設定下一個要執行的指令起始位址Ex.R 1015,sicsim SIC simulator-執行畫面,sicsim SIC simulator-執行步驟,RD R,80-10F,sicsim SIC
11、simulator-執行畫面,sicsim SIC simulator-執行指令,ENTER輸入register和memory的值E Rn xxxxxx輸入值到register;Rn為register identifier(RA,RX,RL,etc.)Register 為3bytes,3bytes的值都要輸入E address xxxx輸入值到memory中,從起始位址開始輸入不規定要輸入幾個bytes,sicsim SIC simulator-執行畫面,sicsim SIC simulator-執行步驟,E RA 123456將register A的內容改為123456D R,80-8F,s
12、icsim SIC simulator-執行畫面,sicsim SIC simulator-執行步驟,E 80 12345678從起始位址80開始輸入值12345678D R,80-8F,sicsim SIC simulator-執行畫面,sicsim SIC simulator-執行指令,QUIT結束使用simulationQ,Debug的小方法,利用breakpointEx.在位址1020,會將register A的值加1,總共加10次方法:breakpoint設為1020,觀察每次是否都將register A的內容加1,Debug的小方法,利用h n可將n設為1每次執行1個指令,看register和memory的變化,是否與程式設定相同,