計算機組成原理及匯編實驗報告_第1頁
計算機組成原理及匯編實驗報告_第2頁
計算機組成原理及匯編實驗報告_第3頁
計算機組成原理及匯編實驗報告_第4頁
計算機組成原理及匯編實驗報告_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、. z. . . . . 資料. . .計算機組成原理與匯編課程設(shè)計實驗報告 目錄一、課程設(shè)計目標(biāo)3二、課程設(shè)計根本要求3三、課程設(shè)計的內(nèi)容3四、課程設(shè)計的要求5五、實驗詳細(xì)設(shè)計51.統(tǒng)計文件中各字母出現(xiàn)的頻率52.用遞歸計算50以內(nèi)Fibonacci 數(shù), 以十進制數(shù)輸出93.虛擬平臺模擬機實驗11六、使用說明19七、總結(jié)與心得體會19八、參考文獻20九、附錄201. 字符統(tǒng)計.asm202. 斐波那契數(shù)小于50.asm29課程設(shè)計目標(biāo)通過課程設(shè)計使學(xué)生綜合運用所學(xué)過的計算機原理與匯編知識,增強解決實際問題的能力,加深對所學(xué)知識的理解與掌握,提高軟硬件開發(fā)水平,為今后打下根底。課程設(shè)計的目的

2、和要求:使學(xué)生穩(wěn)固和加強計算機原理與匯編語言課程的根本理論知識。使學(xué)生掌握匯編語言程序設(shè)計的方法及編程技巧,正確編寫程序。使學(xué)生養(yǎng)成良好的編程習(xí)慣并掌握調(diào)試程序的根本方法。使學(xué)生養(yǎng)成規(guī)*書寫報告文檔的能力,撰寫課程設(shè)計總結(jié)報告。通過查閱手冊和文獻資料,培養(yǎng)學(xué)生獨立分析問題和解決問題的能力。二、課程設(shè)計的根本要求1、認(rèn)真查閱資料,獨立完成設(shè)計任務(wù),每道題都必須上機通過。2、編寫預(yù)習(xí)報告,寫好代碼,上機調(diào)試。 3、獨立思考,培養(yǎng)綜合分析問題解決問題和調(diào)試程序的能力。 4、按時完成課程設(shè)計,寫出課程設(shè)計報告。三、課程設(shè)計的內(nèi)容1、給定一個英文ASCII碼文件,統(tǒng)計文件中英文字母的頻率,以十進制形式輸

3、出。2、用遞歸計算50以內(nèi)Fibonacci 數(shù), 以十進制數(shù)輸出.3、虛擬平臺的模型機實驗,具體要求如下:選擇實驗設(shè)備,將所需要的組件從組件列表中拖到實驗設(shè)計流程欄中搭建實驗流程:根據(jù)原理圖1和電路圖見附件,將已選擇的組件進展連線。輸入機器指令:選擇菜單中的工具,再選擇模型機調(diào)試,在指令輸入窗口中輸入如下指令:00000000000100000000100100100000000010110011000000001011010000000000000000000001本實驗設(shè)計機器指令程序如下:地址二進制內(nèi)容二進制助記符說明0000 00000000 0000IN R0INPUT DEVIC

4、E-R00000 00010001 0000ADD 0AH,R0R0+0AH-R00000 00100000 10100000 00110010 0000STA R0,0BHR0-0BH0000 01000000 10110000 01010011 0000OUT 0BH0BH-LED0000 01100000 10110000 01110100 0000JMP 00H00H-PC0000 10000000 00000000 1010運算數(shù)據(jù)自定0000 1011求和結(jié)果這里做的是個加法運算,第一個加數(shù)已經(jīng)存入到內(nèi)存的0000 1010單元中,第二個加數(shù)是需要手工輸入的。在實驗運行面板中點擊運

5、行按鈕,選擇輸入芯片,設(shè)置輸入的數(shù)據(jù)后,雙擊連接輸入芯片的單脈沖,這樣第二個加數(shù)就設(shè)置好了。在實驗運行面板中雙擊連續(xù)脈沖,模型機便開場工作,觀察各個芯片的狀態(tài)?;蛘咴谀P蜋C調(diào)試窗口中如圖2所示點擊指令執(zhí)行選項卡,在模型機調(diào)試窗口中點擊下一時鐘,模型機機執(zhí)行到下一個時鐘,點擊下一微指令,模型機機執(zhí)行到下一個微指令,點擊下一指令,模型機機執(zhí)行到下一條指令。觀察各個芯片的狀態(tài),思考模型機的運行原理。四、課程設(shè)計的要求1、根據(jù)題目內(nèi)容,查閱資料。2、編寫課程設(shè)計預(yù)習(xí)報告。3、編制程序及調(diào)試程序。4、分析總結(jié),寫出課程設(shè)計報告,報告中應(yīng)該包含程序功能與使用說明、程序功能實現(xiàn)方法說明、如流程圖與算法參數(shù)說

6、明等內(nèi)容,設(shè)計經(jīng)歷體會總結(jié),源程序清單。 5、實驗過程由指導(dǎo)教師監(jiān)視,聽從教師安排和督導(dǎo)。6、每次任務(wù)完成后由指導(dǎo)教師逐個的檢查實驗內(nèi)容、結(jié)果并評分,不符合要求的重寫五、實驗詳細(xì)設(shè)計1統(tǒng)計文件中各字母出現(xiàn)的頻率一、實驗原理在程序中,以是否讀到ASCII碼為0作為字符串末尾完畢的標(biāo)志;讀取文件,并對文件中的字符串進展邏輯判斷不同字母之間各自對應(yīng)的ASCII碼,統(tǒng)計字符數(shù)。實驗?zāi)康慕?jīng)過該實驗知道如何通過編寫匯編程序讀取文件并且讀取文件中內(nèi)容;通過分支程序設(shè)計來統(tǒng)計字符數(shù),三、實驗設(shè)計內(nèi)容讀取文件代碼段:MOV A*,DATAS MOV DS,A* ;置數(shù)據(jù)段存放器; MOV D*,OFFSET F

7、NAME MOV A*,3D00H ;讀翻開指定文件 INT 21H JNC OPEN ;翻開成功,轉(zhuǎn) OPENMOV SI,OFFSET ERROR1 ;顯示翻開不成功提示信息 CALL DMESS JMP OVER ; OPEN:MOV B*,A* ;保存文件代號GO: CALL READ_CHAR ;從文件中讀一個字符 JC READ_ERROR ;如讀出錯,則轉(zhuǎn)CMP AL,EOF ;讀到文件完畢符嗎? JZ TYPE_OK CALL PUTCH JMP GO將文件內(nèi)容推入棧中,并輸出:READ_CHAR PROC MOV C*,1 MOV D*,OFFSET BUFFER ;置緩沖區(qū)

8、地址MOV AH,3FH ;置功能調(diào)用號 INT 21H ;讀 JC R2 ;讀出錯,轉(zhuǎn)CMP A*,C* ;判斷文件是否完畢MOV AL,EOF ;假設(shè)文件已經(jīng)完畢,置文件完畢符 R1 ;文件確定已經(jīng)完畢,轉(zhuǎn)到MOV AL,BUFFER ;文件未完畢,取所讀字符R1:CLC R2:RET READ_CHAR ENDP ; DMESS PROC DMESS1:MOV DL,SI INC SI OR DL,DL JZ DMESS2 MOV AH,2 INT 21H JMP DMESS1 DMESS2:RET DMESS ENDP PUTCH PROC PUSH D* MOV DL,AL MOV

9、AH,2 INT 21H POP D* 文件主體局部對所讀字符ASCII碼進展比擬判斷并統(tǒng)計字符數(shù):mov CL,41HLEA DI,ARRAYMOV CH,AL CMP CH,CL ;假設(shè)IF5AH(Z),跳轉(zhuǎn)繼續(xù)比擬 JA HIGHER2 H1:CMP CH,CL JE CHAR ;假設(shè)IF=41H(A),CHAR0+ JA LOOP1 ; 假設(shè)IF41H(A),跳L1比擬42H(B) LOOP1:INC CL ADD DI,1 JMP H1HIGHER2:mov CL,61HLEA DI,ARRAYCMP CH,CL ;假設(shè)IF7AH(Z),跳轉(zhuǎn)繼續(xù)比擬 JA OTHERH2:CMP C

10、H,CL JE CHAR ;假設(shè)IF=61H(a),CHAR0+ JA LOOP2 ; 假設(shè)IF61H(a),跳L02比擬62H(b) LOOP2:INC CL ADD DI,1 JMP H2 CHAR:*OR CH,CHMOV CH,DI INC CHmov DI,CH OTHER: INC OTHERS ;OTHERS+ ;比擬完畢四、實驗截圖2用遞歸計算50以內(nèi)Fibonacci 數(shù), 以十進制數(shù)輸出一、實驗?zāi)康耐ㄟ^該實驗充分了解遞歸程序的用法二、實驗內(nèi)容三、實驗設(shè)計內(nèi)容循環(huán)遞歸代碼段主要實現(xiàn)遞歸調(diào)用斐波那契函數(shù)MOV A*,F1 ;a*=0ADD A*,F2 ;a*=1 JC E*IT

11、 ;假設(shè)有進位則跳出MOV B*,F2 ;b*=1MOV F1,B* ;f1=1MOV F2,A* ;f2=1 CALL OUTPUT ;調(diào)用outputMOV DL, ;每個數(shù)字后的空格MOV AH,2 INT 21HDEC N JNZ LPE*IT:MOV AH,4CHINT 21H ;返回DOS輸出斐波那契數(shù):OUTPUT:MOV B*,10MOV C*,0OL1:MOV D*,0DIV B* ;a*=0,d*=1ADD DL,0;加上30h,使數(shù)字3變成字符3PUSH D*INC C* ;C*=0,每次加1CMP A*,0 ;比擬a*=1和0 JNZ OL1MOV AH,2 ;字符輸出

12、,要輸出的字符已經(jīng)在dl中OL2: POP D* INT 21H LOOP OL2 RET實驗結(jié)果3虛擬平臺的模型機實驗設(shè)計1、實驗?zāi)康恼莆漳P蜋C的根本原理和構(gòu)造掌握機器指令與微程序的對應(yīng)關(guān)系;掌握機器指令的執(zhí)行流程;2、 實驗設(shè)備74LS181芯片兩片,memory 6116一片,微程序控制存儲器芯片一片,編譯器芯片一片,八位同步計數(shù)器芯片一片,ALU_G芯片一片,PC_G芯片一片,74LS273芯片假設(shè)干,輸入,輸出芯片各一片,選擇器芯片假設(shè)干,連接器芯片假設(shè)干,燈泡假設(shè)干,開關(guān)假設(shè)干等。3、環(huán)境組成原理虛擬實驗室采用的是B/S架構(gòu),在客戶端電腦上的瀏覽器地址欄中輸入正確的地址進展訪問即可

13、。網(wǎng)址為192.168.1.252/pco/Entry.html。4、實驗原理圖1 模型機示意圖圖1中所示模型機包括運算器、存儲器、微控器、輸入設(shè)備、輸出設(shè)備以及存放器。這些部件的動作控制信號都有微控器根據(jù)微指令產(chǎn)生。需要特別說明的是由機器指令構(gòu)成的程序存放在存儲器中,而每條機器指令對應(yīng)的微程序存儲在微控器中的存儲器中。模型機詳細(xì)原理見附件。5、實驗內(nèi)容1選擇實驗設(shè)備,將所需要的組件從組件列表中拖到實驗設(shè)計流程欄中2搭建實驗流程:根據(jù)原理圖1和電路圖見附件,將已選擇的組件進展連線。3輸入機器指令:選擇菜單中的工具,再選擇模型機調(diào)試,在指令輸入窗口中輸入如下指令:0000000000010000

14、0000100100100000000010110011000000001011010000000000000000000001 本實驗設(shè)計機器指令程序如下:地址二進制內(nèi)容二進制助記符說明0000 00000000 0000IN R0INPUT DEVICE-R00000 00010001 0000ADD 0AH,R0R0+0AH-R00000 00100000 10100000 00110010 0000STA R0,0BHR0-0BH0000 01000000 10110000 01010011 0000OUT 0BH0BH-LED0000 01100000 10110000 011101

15、00 0000JMP 00H00H-PC0000 10000000 00000000 1010運算數(shù)據(jù)自定0000 1011求和結(jié)果這里做的是個加法運算,第一個加數(shù)已經(jīng)存入到內(nèi)存的0000 1010單元中,第二個加數(shù)是需要手工輸入的。在實驗運行面板中點擊運行按鈕,選擇輸入芯片,設(shè)置輸入的數(shù)據(jù)后,雙擊連接輸入芯片的單脈沖,這樣第二個加數(shù)就設(shè)置好了。在實驗運行面板中雙擊連續(xù)脈沖,模型機便開場工作,觀察各個芯片的狀態(tài)?;蛘咴谀P蜋C調(diào)試窗口中如圖2所示點擊指令執(zhí)行選項卡,在模型機調(diào)試窗口中點擊下一時鐘,模型機機執(zhí)行到下一個時鐘,點擊下一微指令,模型機機執(zhí)行到下一個微指令,點擊下一指令,模型機機執(zhí)行到下

16、一條指令。觀察各個芯片的狀態(tài),思考模型機的運行原理。圖2 模型機調(diào)試窗口6、具體過程實現(xiàn)(1) 控制器把PC中的指令地址送往地址存放器AR,并發(fā)出讀命令。存儲器按給定的地址讀出指令,經(jīng)由存儲器數(shù)據(jù)存放器MDR送往控制器,保存在指令存放器IR中。(2) 指令譯碼器ID對指令存放器IR中的指令進展譯碼,分析指令的操作性質(zhì),并由控制電路向存儲器、運算器等有關(guān)部件發(fā)出指令所需要的微命令。(3) 當(dāng)需要由存儲器向運算器提供數(shù)據(jù)時,控制器根據(jù)指令的地址局部,形成數(shù)據(jù)所在的存儲單元地址,并送往地址存放器AR,然后向存儲器發(fā)出讀命令,從存儲器中讀出的數(shù)據(jù)經(jīng)由存儲器數(shù)據(jù)存放器MDR送往運算器。(4) 當(dāng)需要由運

17、算器向存儲器寫入數(shù)據(jù)時,控制器根據(jù)指令的地址局部,形成數(shù)據(jù)所在的存儲單元地址,并送往存儲器地址存放器AR,再將欲寫的數(shù)據(jù)存入存儲器數(shù)據(jù)存放器MDR,最后向存儲器發(fā)出寫命令,MDR中的數(shù)據(jù)即被寫入由MAR指示地址的存儲單元中。(5) 一條指令執(zhí)行完畢后,控制器就要接著執(zhí)行下一條指令。為了把下一條指令從存儲器中取出,通??刂破靼裀C的內(nèi)容加上一個數(shù)值,形成下一條指令的地址,但在遇到轉(zhuǎn)移指令時,控制器則把轉(zhuǎn)移地址送入PC。控制器不斷重復(fù)上述過程的(1)到(5),每重復(fù)一次,就執(zhí)行了一條指令,直到整個程序執(zhí)行完畢7、設(shè)計結(jié)果截圖虛擬實驗室連線截圖:執(zhí)行第一個指令:執(zhí)行第二個指令:執(zhí)行第三個指令:執(zhí)行第

18、四個指令:. 執(zhí)行第五個指令:執(zhí)行第六個指令:六、使用說明兩個程序使用匯編語言在Masm for Windows集成實驗環(huán)境下編寫,在MS-DOS模擬平臺下運行。使用情況如詳細(xì)設(shè)計所述。七、總結(jié)與心得體會為期兩周的計算機組成原理與匯編課程設(shè)計就完畢了,在這段時間呢,完成了諸多實驗題目,解決了許多問題,包括計算機組成與那里和匯編語言。在充實而忙碌的課程設(shè)計同時,最重要的還是穩(wěn)固并進一步學(xué)習(xí)了像組成原理和匯編這樣更接近低層的軟硬件知識,而不再是僅僅局限于像C、C+或是Java這樣的高級語言開發(fā)。理論學(xué)習(xí)只是一個學(xué)習(xí)初期階段,只有經(jīng)過了親身實踐操作,才能叫是真正掌握了知識技能。就像是這個學(xué)期的課程設(shè)

19、計初期一樣,初次開場匯編課設(shè),我對匯編并不是十分了解,只是簡簡單單懂得幾句語言而已或者說只會讀懂程序,做幾個題而已。至于如何將它們拼湊到一起組成一個實現(xiàn)一定功能的完整程序,成了我面前巨大的障礙,所以剛開場時,我也是束手無策,毫無頭緒。但是通過對教材的復(fù)習(xí),查閱相關(guān)文獻和網(wǎng)絡(luò)資料,我慢慢懂得并熟悉了這個過程。課程設(shè)計完了之后,我才真切意識到,低級的東西并不十分簡單,恰恰相反,沒有艱辛的付出,沒有刻苦的努力,任誰也永遠不能攻克它。八、參考文獻1.Patric Juola.計算機組成與匯編語言原理.機械工業(yè)2.沈美明.IBM-PC匯編語言程序設(shè)計.清華大學(xué)3.唐朔飛.計算機組成原理.高等教育九、附錄

20、1、字符統(tǒng)計.asm:DATAS SEGMENTFNAME DBTEST.T*T,0 ;文件名ERROR1 DBFile not found,07H,0 ;提示信息ERROR2 DBReading error,07H,0 STRING1 DBNumber of $;各類字符提示信息STRING2 DB: $ARRAY DB 26 DUP(0) ;字母OTHERS DB 0 ;其他BUFFER DBEOF DB 035 ;以#完畢 ;1字節(jié)的緩沖區(qū)、DATAS ENDS;代碼段CODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV A*,DATAS MOV

21、DS,A* ;置數(shù)據(jù)段存放器; MOV D*,OFFSET FNAME MOV A*,3D00H ;讀翻開指定文件 INT 21H JNC OPEN ;翻開成功,轉(zhuǎn) OPENMOV SI,OFFSET ERROR1 ;顯示翻開不成功提示信息 CALL DMESS JMP OVER ; OPEN:MOV B*,A* ;保存文件代號GO: CALL READ_CHAR ;從文件中讀一個字符 JC READ_ERROR ;如讀出錯,則轉(zhuǎn)CMP AL,EOF ;讀到文件完畢符嗎? JZ TYPE_OK CALL PUTCH JMP GOREAD_ERROR:MOV SI,OFFSET ERROR2 C

22、ALL DMESS ; TYPE_OK:MOV AH,3EH INT 21H CALL ENDLINE CALL SHOW OVER: MOV AH,07;為了顯示 INT 21H ;為了顯示MOV AH,4CH INT 21H ; READ_CHAR PROC MOV C*,1 MOV D*,OFFSET BUFFER ;置緩沖區(qū)地址MOV AH,3FH ;置功能調(diào)用號 INT 21H ;讀 JC R2 ;讀出錯,轉(zhuǎn)CMP A*,C* ;判文件是否完畢MOV AL,EOF ;設(shè)文件已經(jīng)完畢,置文件完畢符 R1 ;文件確已完畢,轉(zhuǎn)MOV AL,BUFFER ;文件未完畢,取所讀字符R1:CLC

23、 R2:RET READ_CHAR ENDP ; DMESS PROC DMESS1:MOV DL,SI INC SI OR DL,DL JZ DMESS2 MOV AH,2 INT 21H JMP DMESS1 DMESS2:RET DMESS ENDP PUTCH PROC PUSH D* MOV DL,AL MOV AH,2 INT 21H POP D* mov CL,41HLEA DI,ARRAYMOV CH,AL CMP CH,CL ;假設(shè)IF5AH(Z),跳轉(zhuǎn)繼續(xù)比擬 JA HIGHER2 H1:CMP CH,CL JE CHAR ;假設(shè)IF=41H(A),CHAR0+ JA LO

24、OP1 ; 假設(shè)IF41H(A),跳L1比擬42H(B) LOOP1:INC CL ADD DI,1 JMP H1HIGHER2:mov CL,61HLEA DI,ARRAYCMP CH,CL ;假設(shè)IF7AH(Z),跳轉(zhuǎn)繼續(xù)比擬 JA OTHERH2:CMP CH,CL JE CHAR ;假設(shè)IF=61H(a),CHAR0+ JA LOOP2 ; 假設(shè)IF61H(a),跳L02比擬62H(b) LOOP2:INC CL ADD DI,1 JMP H2 CHAR:*OR CH,CHMOV CH,DI INC CHmov DI,CH OTHER: INC OTHERS ;OTHERS+ ;比擬完

25、畢 RET PUTCH ENDP SHOW PROC LEA SI,ARRAYMOV DI,41HLOOP3:LEA D*,STRING1 ;字符串的輸出Number of MOV AH,09H INT 21H MOV D*,DIMOV AH,02H INT 21HLEA D*, STRING2 ;字符串的輸出MOV AH,09H INT 21H *OR A*,A* MOV Al,SI ;將統(tǒng)計的數(shù)字送A* ADD SI,1 CALL DISPLAY ;調(diào)用輸出兩位數(shù)字的子程序 CALL ENDLINE INC DI CMP DI,5BH LOOP3 MOV AH,4CH INT 21H RET SHOW ENDP ENDLINE PROC NEAR;控制輸出格式,輸出回車換行子程序MOV AH,02H MOV DL,0AH ; INT 21H ;輸出換行符MOV AH,02H MOV DL,0DH ; INT 21H ;輸出回車符 RET ENDLINE ENDP DISPLAY PROC NEAR;輸出兩位數(shù)字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論