《計算機硬件基礎(chǔ)實驗報告3》由會員分享,可在線閱讀,更多相關(guān)《計算機硬件基礎(chǔ)實驗報告3(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、遼寧工程技術(shù)大學(xué)上機實驗報告
課程名稱
計算機硬件基礎(chǔ)
實驗題目
綜合程序設(shè)計(一)
院系
軟件學(xué)院
專業(yè)
軟件工程
班級
姓名
學(xué)號
實驗日期
2014-11-19
實驗
目的
1.熟練掌握子程序的結(jié)構(gòu)。
2.掌握子程序設(shè)計的思想、方法及上機調(diào)試過程。
3.熟練掌握系統(tǒng)功能調(diào)用的作用。
4.掌握系統(tǒng)功能調(diào)用的思想、方法。
實驗
準備
1.8086/8088匯編語言指令及偽指令的用法
2.子程序設(shè)計的思想和方法
3.DOS和BIOS中斷調(diào)用是機器及操作系統(tǒng)提供的中斷調(diào)用功能
4.系統(tǒng)功能調(diào)用的步驟:
5.DOS利用21H號中
2、斷提供給用戶近百個系統(tǒng)功能,主要包括設(shè)備管理、目錄管理和文件管理三個方面的功能
6.BIOS也以中斷服務(wù)程序的形式,向程序員提供系統(tǒng)的基本輸入輸出程序BIOS功能更加基本,且與操作系統(tǒng)無關(guān),當DOS沒有啟動或不允許使用DOS功能調(diào)用時,可以使用BIOS功能調(diào)用
實驗
進度
本次共有 2 個練習(xí),完成 2 個。
實驗
內(nèi)容
【練習(xí)1】編寫主程序調(diào)用一個過程,實現(xiàn)將兩個非壓縮BCD碼轉(zhuǎn)換為一個壓縮BCD碼,并用字符顯示功能和字符串顯示功能完成在屏幕上顯示一個字符串“Hello World!”的功能
3、。
程序框圖
開始
DI、SI初始化
調(diào)用子程序
顯示 字符串STRING內(nèi)容
結(jié)束
源程序清單:
DATA SEGMENT
BCD1 DB 03H
BCD2 DB 07H
STRING DB Hello World!,$
DATA ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
CALL CHANGE
MOV AH,4CH
INT 21H
CHANGE PROC
MOV AL,BCD2
MOV CL,4
SHL AL,CL
4、
ADD BCD1,AL
MOV AX,SEG STRING
MOV DS,AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
RET
CHANGE ENDP
CODES ENDS
END START
MOV AX,DAtA
MOV DS,AX
MOV SI,OFFSET TABLE
MOV CX,20
MOV DX,OFFSET BUFFER
MOV AH,0AH
INT 21H
A: MOV Bl,[SI]
XOR AL,Bl
TEST AL,01H
JE B
INC SI
LOOP A
MOV
5、 AL,-1
MOV RESULT,AL
JMP OVER
B: MOV AX,1
MOV RESULT,AL
OVER: MOV AH,4CH
INT 21H
CODE ENDS
END START
【練習(xí)2】在內(nèi)存建立一個表TABLE,其中存放20個字節(jié)型無符號數(shù),從鍵盤輸入一個數(shù)X(一位數(shù)),查找該數(shù)X在TABLE中是否存在,若存在,則在RESULT單元存入1,否則存入-1
程序框圖
開始
SI、DI、CX初始化
DI-1
D送AL
DI+1
AL+[DI]
CX=0
1送RESULT
N
-1送RESULT
Y
源程序清單:
DA
6、TAS SEGMENT
TABLE DB 1,2,3,5,5,6,7,8,9,10, 1, 2,5,6,8,7,4,9,3,0
RESULT DB ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODE,ES:DATAS
START:
MOV AX,DATAS
MOV ES,AX
MOV DI,OFFSET TABLE
CLD
MOV AH,01H
INT 21H
MOV CX,20
SUB AL,48
7、 REPNE SCASB
CMP CX,0
JG L
MOV RESULT,-1
JMP LAST
L:MOV RESULT,1
LAST:MOV AH,4CH
INT 21H
CODES ENDS
END START
實驗
分析
日
【練習(xí)1】
(1)保存運行生成exe文件
(2)進行調(diào)試,反匯編命令U查看,DS=0770
(3)用D指令查看數(shù)據(jù)段的內(nèi)容,BCD1 =03H BCD2= 07H.
(4)結(jié)束程序
(5)用D指令查看數(shù)據(jù)段的內(nèi)容,壓縮后
8、為73
【練習(xí)2】
(1)保存運行生成exe文件
(2)進行調(diào)試,用反匯編命令U進行反匯編
3)用D指令查看數(shù)據(jù)段的內(nèi)容,20個字節(jié)型無符號數(shù)為01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
3)輸入一個字符
(4)結(jié)束程序
4)用D指令查看數(shù)據(jù)段的內(nèi)容,查找數(shù)字4存在在21位顯示01
實驗
總結(jié)
【實驗1】
1.存在的問題
HELLO WORD 在輸入P后顯示
2.實驗結(jié)論
通過匯編語言,基于DOS系統(tǒng)完成了兩個非壓縮BCD改為一個壓縮BCD
3.收獲和體會
通過這次實驗,掌握了DOS系統(tǒng)共功能調(diào)用的方法,學(xué)會了基于DOS系統(tǒng)完成了兩個非壓縮BCD改為一個壓縮BCD的方法
【實驗2】
1.存在的問題
出現(xiàn)INT 21H 就以為程序結(jié)束,忽略 MOV AH 01H,以為程序出錯后來發(fā)現(xiàn)了問題
2.實驗結(jié)論
實現(xiàn)了數(shù)值比較REPNE SCASB
3.收獲和體會
學(xué)會查看寄存器和存儲器,學(xué)會了REPNE SCASB的使用,對匯編語言的了解更進一步。
教師
評語