版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 西 安 郵 電 大 學(xué) (計(jì)算機(jī)學(xué)院)課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱: 專業(yè)名稱:班 級: 學(xué)生姓名:學(xué)號(8位):指導(dǎo)教師:實(shí)驗(yàn)日期: *年*月*日 實(shí)驗(yàn)一 兩個(gè)多位十進(jìn)制數(shù)相加一. 實(shí)驗(yàn)?zāi)康募皩?shí)驗(yàn)環(huán)境1、學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行匯編語言程序過程。二. 實(shí)驗(yàn)內(nèi)容將兩個(gè)多位十進(jìn)制數(shù)(如四位)相加,要求被加數(shù)、加數(shù)以ASCII碼形式按順序存放在以DATA1和DATA2為首的5個(gè)內(nèi)存單元中(低位在前)。結(jié)果顯示在屏幕上。三方案設(shè)計(jì)四測試數(shù)據(jù)及運(yùn)行結(jié)果五總結(jié)1、通過實(shí)驗(yàn),學(xué)會(huì)了使用匯編語言實(shí)現(xiàn)多位十進(jìn)制數(shù)的相加運(yùn)算。2、實(shí)驗(yàn)中應(yīng)注意,在聲明data的部
2、分?jǐn)?shù)字的順序和實(shí)際中數(shù)字的順序是相反的,因?yàn)榇鎯ζ魇菑牡臀坏礁呶淮鎯Φ摹?、要為DATAS段指定兩個(gè)段寄存器DS和ES分別存放加數(shù)和被加數(shù),同時(shí)相加結(jié)果也存放在ES段中。4、了解LODSB的用法,每次循環(huán)后SI都會(huì)自動(dòng)加一,與此類似的STOSB使用時(shí),寄存器DI指向的地址也會(huì)自動(dòng)后移一位。5、通過實(shí)驗(yàn),我還了解了ASCII碼到BCD碼運(yùn)算的轉(zhuǎn)變,以及運(yùn)算結(jié)果的BCD碼通過調(diào)整轉(zhuǎn)變成ASCII碼存儲和顯示。六實(shí)驗(yàn)源程序?qū)嶒?yàn)程序如下:DATAS SEGMENTnum1 db 3,2,4,5,0 ;被加數(shù)num2 db 2,6,7,1,0 ;加數(shù)s db 5423+1762=$ ;顯示的公式形式,$
3、表示輸出結(jié)束DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:DATASSTART: MOV AX,DATAS MOV DS,AX ;DS指向數(shù)據(jù)段 mov ES,AX ;ES指向數(shù)據(jù)段 mov cx,5 ;5次循環(huán) lea dx,s ;要顯示的字符串的首偏移地址 mov ah,9h ;9號DOS功能調(diào)用顯示字符串s int 21h mov si,offset num1 ; si指向num1首地址 mov di,offset num2 ; di指向num2首地址 clc ;清零進(jìn)位寄存器CFadds: LODSB adc al, di ;有
4、符號加法 aaa ;調(diào)整ASCII碼加法結(jié)果指令 stosb ;所得結(jié)果以字節(jié)為單位存儲到數(shù)據(jù)段di指向的位置,di+1 loop adds ;循環(huán)知道cx為零,cx-1 mov ah,02h ;以下為輸出加法結(jié)果 mov cx,5;共有5位數(shù)循環(huán)5次adjust:mov dl,di-1 or dl,30h ;二進(jìn)制數(shù)轉(zhuǎn)換成其相應(yīng)ASCII碼 dec di ;輸出下一位 int 21h loop adjust MOV AH,4CH INT 21H ;21號功能調(diào)用程序退出CODES ENDS END START 實(shí)驗(yàn)二 兩個(gè)數(shù)相乘一實(shí)驗(yàn)?zāi)康募碍h(huán)境:掌握乘法指令的用法DOS環(huán)境二實(shí)驗(yàn)內(nèi)容:實(shí)現(xiàn)一
5、個(gè)多位十進(jìn)制數(shù)和一個(gè)一位十進(jìn)制數(shù)的乘法,被乘數(shù)和乘數(shù)均以ASCII碼形式存放在內(nèi)存中,結(jié)果顯示在屏幕上三方案設(shè)計(jì)四測試數(shù)據(jù)及運(yùn)行結(jié)果實(shí)驗(yàn)結(jié)果如下圖所示:五總結(jié)1、 通過實(shí)驗(yàn)學(xué)會(huì)了,使用匯編語言完成相乘運(yùn)算。2、 試驗(yàn)中通過設(shè)定CX的值控制循環(huán)的次數(shù)。3、 在LODSB和STOSB指令中,SI和DI會(huì)每次自動(dòng)增加1。4、 在A串中,由于數(shù)據(jù)是按從低地址到高地址的順序存放的,所以A DB 5,7,4,1,3其實(shí)表示的是31475 。5、 程序的L2 循環(huán)使得所存二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成相對應(yīng)的ASCII碼,并通過DOS 功能調(diào)用輸出。六實(shí)驗(yàn)源程序?qū)嶒?yàn)程序如下:DATA SEGMENT A DB 5,7,4
6、,1,3 ;被乘數(shù) B DB 7 ;乘數(shù) M DB 6 DUP(0) ;6位字節(jié)型存儲單元 S DB 31475*7=$ ; 輸出的公式DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATA MOV DS,AX MOV ES,AX CLD ;將方向標(biāo)志寄存器DF清零,指令LODSB和STOSB中 di,si做自增1的處理 MOV SI,OFFSET A ;A為源操作數(shù) MOV DI,OFFSET M ;B為目的操作數(shù) MOV CX,5 AND B,0FH ;將ASCII碼數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制形式 MOV BYTE
7、PTRDI,0 L1: mov al,si ;乘數(shù)與被乘數(shù)相乘 LODSB AND AL,0FH MUL B AAM ADD AL,DI AAA mov di, al inc di STOSB MOV DI,AH ; 結(jié)果的存儲 inc si LOOP L1 MOV DX,OFFSET S MOV AH,9 INT 21H MOV CX,6 L2: MOV DL,DI ADD DL,30H MOV AH,02H INT 21H ;顯示所得數(shù)據(jù) DEC DI LOOP L2 MOV AX,4CH INT 21HCODE ENDS END START 實(shí)驗(yàn)三 字符匹配程序一實(shí)驗(yàn)?zāi)康募碍h(huán)境:掌握串操
8、作指令的用法。二實(shí)驗(yàn)內(nèi)容:用串操作指令設(shè)計(jì)程序。實(shí)現(xiàn)在指定存儲區(qū)(長度:100H)中尋找匹配字符,遇空格字符(20H)結(jié)束,顯示查找結(jié)果。3 方案設(shè)計(jì)四測試數(shù)據(jù)及運(yùn)行結(jié)果五總結(jié)1、 程序中用到了三個(gè)DOS功能調(diào)用,分別是9號調(diào)用顯示字符串,1號調(diào)用從鍵盤輸入字符和4CH調(diào)用終止程序。9號使用DX指向字符串首地址,1號結(jié)果存在AL中。通過實(shí)驗(yàn),對DOS功能調(diào)有了更加深刻的認(rèn)識。2、 在對字符串的查找過程中,使用了SCASB指令,并且前面有REPNZ。該指令表示在一直查找直到ZF=0,即找到與AL寄存器相等的值為止。這個(gè)指令稍微有些復(fù)雜,再加上前綴的變化,使其可以滿足不同的查找需要。3、 程序中出
9、現(xiàn)了JMP指令。單獨(dú)的JMP指令為無條件轉(zhuǎn)移,不過JMP還常常與標(biāo)志寄存器一起使用,使其功能更強(qiáng)大。如題目中的指令表示ZF=1即相等時(shí)轉(zhuǎn)移。六實(shí)驗(yàn)源程序?qū)嶒?yàn)程序如下:DATA SEGMENT TISHI_1 DB 0dH,0AH,Please input a character to search: $ TISHI_2 DB 0DH,0AH,The string to be searched is: STRING DB 10 DUP(A),20H,15 DUP(B),$ COUNT EQU $-STRING S0 DB 0DH,0AH, FOUND! $ S1 DB 0DH,0AH,NOT F
10、OUND! $ CHAR DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA GO: MOV AX,DATA MOV DS,AX MOV ES,AX mov dx, offset TISHI_1 ;顯示字符串 mov ah,09 int 21H ; mov ah,1 ;從鍵盤輸入數(shù)據(jù) int 21H mov CHAR, al ;輸入數(shù)據(jù)保存 ; MOV DI,OFFSET STRING MOV CX,COUNT CLD ;自增 MOV AL,CHAR REPNE SCASB ;字符串字節(jié)查找直到相等 JZ FOUND ;ZF=0時(shí)跳
11、到FOUND指令 MOV DX,OFFSET S1 JMP DSPLYFOUND: MOV DX,OFFSET S0 ;找到DSPLY: MOV AH,09H ;顯示 INT 21H mov dx,offset TISHI_2 mov ah,09 int 21H ; MOV AH,4CH INT 21HCODE ENDS END GO 實(shí)驗(yàn)四 字符串匹配程序一實(shí)驗(yàn)?zāi)康募碍h(huán)境:掌握提示信息的使用方法及鍵盤輸入信息的用法。二實(shí)驗(yàn)內(nèi)容:編寫程序,實(shí)現(xiàn)兩個(gè)字符串比較。若相同,則顯示MATCH,否則顯示NO MATCH。3 方案設(shè)計(jì)四測試數(shù)據(jù)及運(yùn)行結(jié)果五總結(jié)1、 本實(shí)驗(yàn)與上一個(gè)實(shí)驗(yàn)內(nèi)容類似,不過不同之處
12、在于直接比較兩個(gè)已存在的字符串內(nèi)容是否相等。2、 程序設(shè)計(jì)中,為比較字符串是否相同,先對其長度比較,若長度不同則可以確定它們一定不相同。3、 對字符串內(nèi)容比較時(shí),使用了CMPSB指令對字符串的每個(gè)字節(jié)進(jìn)行比較??梢钥闯觯珻MPSB指令需要用SI和DI分別指向兩個(gè)字符串的首地址,并且有DF控制方向,同時(shí)比較結(jié)果影響標(biāo)志位ZF。4、 指令中實(shí)驗(yàn)的JMP和REPE指令也都是重點(diǎn)。六實(shí)驗(yàn)源程序?qū)嶒?yàn)程序如下:DATA SEGMENT STRING1 DB ABCDEFG$ COUNT1 EQU $-STRING1 STRING2 DB ABCDEDG$ COUNT2 EQU $-STRING2 S0 D
13、B MATCH$ S1 DB NOT MATCH$ SHIFT DB 0DH,0AH,$ ;回車換行DATA ENDS;CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA GO: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET STRING1 ;顯示字符串1 MOV AH,09H INT 21H MOV DX,OFFSET SHIFT ;回車換行 INT 21H MOV DX,OFFSET STRING2 ;顯示字符串2 INT 21H MOV DX,OFFSET SHIFT INT 21H MOV AL,COUN
14、T1 ;首先比較字符串長度是否相等 MOV AH,COUNT2 CMP AH,AL JNZ NMATCH MOV DI,OFFSET STRING1 ;長度相等比較內(nèi)容 MOV SI,OFFSET STRING2 MOV CX,COUNT1 CLD ;自增 REPE CMPSB ; 一直比較直到不相等 JZ MATCH ;ZF=0相等則跳轉(zhuǎn)NMATCH:MOV DX,OFFSET S1 ;NO MATCH JMP DSPLY MATCH: MOV DX,OFFSET S0 ;MATCHDSPLY: MOV AH,09H INT 21H MOV AH,4CH ;終止程序 INT 21HCODE
15、ENDS END GO實(shí)驗(yàn)五 從鍵盤輸入數(shù)據(jù)并顯示一實(shí)驗(yàn)?zāi)康募碍h(huán)境:掌握接收鍵盤數(shù)據(jù)的方法,并了解將鍵盤數(shù)據(jù)顯示時(shí)須轉(zhuǎn)換為ASCII碼的原理。2 實(shí)驗(yàn)內(nèi)容:編寫程序,將鍵盤接收到的四位十六進(jìn)制數(shù)轉(zhuǎn)換為等值的二進(jìn)制數(shù),并顯示在屏幕上。若輸入的不是0F間的數(shù)字,則顯示出錯(cuò)信息,并要求重新輸入。三方案設(shè)計(jì)四測試數(shù)據(jù)及運(yùn)行結(jié)果5 總結(jié)1、 本實(shí)驗(yàn)程序可以分為兩個(gè)部分。第一部分是對輸入數(shù)據(jù)的判斷,第二部分是將輸入的有效數(shù)據(jù)轉(zhuǎn)換成其二進(jìn)制形式并輸出。再判斷時(shí),09或是AF分開判斷,并且由于程序原因af不可以被識別,也會(huì)被當(dāng)做無效數(shù)據(jù)要求重新輸入。第二部分將16進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。2、 實(shí)驗(yàn)程序中出現(xiàn)了C
16、MP指令,并結(jié)合JMP指令的JB和JA。當(dāng)目的操作數(shù)比源操作數(shù)大時(shí),JA指令發(fā)生跳轉(zhuǎn),小時(shí)則JB跳轉(zhuǎn)。六實(shí)驗(yàn)源程序?qū)嶒?yàn)程序如下:CRLF MACRO ;回車換行 MOV AH,2 MOV DL,0DH INT 21H MOV AH,2 MOV DL,0AH INT 21H ENDM DATA SEGMENT S0 DB 4 DUP (?) S1 DB Please input Hex numbers: $ S2 DB The corresponding bin numbers: $ S3 DB Input error! Please input again.$DATA ENDSCODE SEG
17、MENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX CRLF ;回車換行 LEA DX,S1 ;顯示字符串S1 MOV AH,09H INT 21H CRLF LEA SI,S0 LLL: MOV CX,4 ;循環(huán)4次 KKK: MOV AH,1 ;從鍵盤輸入 INT 21H MOV SI,AL CMP AL,30H JB ERROR ;輸入比0小則跳到ERROR指令 CMP AL,39H JA ERROR1 ;輸入比9大則跳到ERROR1繼續(xù)判斷 JMP END1ERROR1: CMP AL,40H ;A看空間 JB ERROR ;比A小 CMP AL,46H ;F JA ERROR ; 比F大 JMP END1;ERROR: CRLF LEA DX,S3 MOV AH,09H INT 21H ; 輸入字符串S3 CRLF JMP LLL END1: INC SI ;控制16進(jìn)制數(shù)的輸入 LOOP KKK CRLF LEA DX,S2 MOV AH,09H INT 21H CRLF MOV CX,4 MOV SI,OFFS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙袋制作課件教學(xué)課件
- 防蜇課件教學(xué)課件
- 獲獎(jiǎng) 課件教學(xué)課件
- 2024年度農(nóng)產(chǎn)品收購合同
- 2024年企業(yè)安全評價(jià)與咨詢服務(wù)合同
- 2024年度空氣能設(shè)備安裝與驗(yàn)收合同
- 2024國際快遞服務(wù)全面合作協(xié)議
- 2024樁基工程施工合同范本樁基工程施工合同
- 2024年企業(yè)合并收購協(xié)議
- 2024個(gè)人租房的合同模板范本
- 分層次教學(xué)與個(gè)性化輔導(dǎo)計(jì)劃
- 基于物聯(lián)網(wǎng)的農(nóng)業(yè)無人機(jī)高效配送方案
- 毛細(xì)支氣管炎護(hù)理查房課件
- EHS(環(huán)境健康安全)管理制度
- GB/T 10476-2024尿素高壓冷凝器技術(shù)條件
- 2024-2030年中國金融BPO行業(yè)市場發(fā)展分析及投資前景與策略研究報(bào)告
- 二年級《公共安全教育》全冊教學(xué)設(shè)計(jì)
- 2024-2025學(xué)年小學(xué)科學(xué)四年級下冊青島版(六三制2024)教學(xué)設(shè)計(jì)合集
- 2024版中國血脂管理指南
- 2022下半年四川省考公務(wù)員考試行測題及解析(三十二)
- 58級14班高考倒計(jì)時(shí)200天主題班會(huì)
評論
0/150
提交評論