版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)九 數(shù)碼轉(zhuǎn)換一、實(shí)驗(yàn)?zāi)康?、掌握計(jì)算機(jī)常用數(shù)據(jù)編碼之間的相互轉(zhuǎn)換方法。2、進(jìn)一步熟悉DEBUG軟件的使用方法。二、實(shí)驗(yàn)內(nèi)容1. ACSII碼轉(zhuǎn)換為非壓縮型BCD碼編寫并調(diào)試正確的匯編語言源程序,使之實(shí)現(xiàn):設(shè)從鍵盤輸入一串十進(jìn)制數(shù),存入DATA1單元中,按回車停止鍵盤輸入。將其轉(zhuǎn)換成非壓縮型(非組合型)BCD碼后,再存入DATA2開始的單元中。若輸入的不是十進(jìn)制數(shù),則相應(yīng)單元中存放FFH。調(diào)試程序,用D命令檢查執(zhí)行結(jié)果。2. BCD碼轉(zhuǎn)換為十六進(jìn)制碼編寫并調(diào)試正確的匯編語言源程序,使之將一個(gè)16位存儲(chǔ)單元中存放的4位BCD碼DATA1,轉(zhuǎn)換成十六進(jìn)制數(shù)存入DATA2字單元中。調(diào)試程序,用D命
2、令檢查執(zhí)行結(jié)果。3. 十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼編寫并調(diào)試正確的匯編語言源程序,使之將內(nèi)存DATA1字單元中存放的4位十六進(jìn)制數(shù),轉(zhuǎn)換為ASC碼后分別存入DATA2為起始地址的4個(gè)單元中,低位數(shù)存在低地址的字節(jié)中,并在屏幕上顯示出來。三、實(shí)驗(yàn)預(yù)習(xí)1.復(fù)習(xí)材料中有關(guān)計(jì)算機(jī)數(shù)據(jù)編碼部分的內(nèi)容。2.按要求編寫程序。四、實(shí)驗(yàn)步驟1.編輯源文件,經(jīng)匯編連接產(chǎn)生EXE文件。2.用DEBUG調(diào)試、檢查、修改程序。五、實(shí)驗(yàn)內(nèi)容1. ACSII碼轉(zhuǎn)換為非壓縮型BCD碼STACK SEGMENT PARA STACK STACK DB 256 DUP(?) ; 為堆棧段留出256個(gè)字節(jié)單位 STACK ENDS
3、 DATA SEGMENT PARA DATA ;定義數(shù)據(jù)段 DATA1 DB 32 ; 緩沖區(qū)最大長度DB ? DB 32 DUP(?) DATA2 DB 32 DUP(?) DATA ENDS CODE SEGMENT ; 定義代碼段ASSUME SS:STACK ASSUME CS:CODE ASSUME DS:DATA START:MOV AX,DATA MOV DS,AX LEA DX,DATA1 ; 規(guī)定:DX存放輸入字符串的緩沖區(qū)首地址 MOV AH,0AH INT 21H ; 字符串輸入 AL=鍵入的ASCII碼 LEA SI,DATA1 LEA DI,DATA2 ; DI存放
4、DATA2首地址 INC SI MOV CH,0 MOV CL,SI ; 取輸入字符串長度 INC SI ; 指向第一個(gè)輸入字符 LP1:MOV AL,SI SUB AL,30H ; 輸入的字符存為ASCII碼,將其轉(zhuǎn)換成十進(jìn)制數(shù) CMP AL,0 ; 若AL0(AL-09(AL-90),跳轉(zhuǎn)到LP2 JG LP2 MOV BL,AL ; 將AL-BL MOV DI,BL ; 將結(jié)果存到DATA2開始的單元中 INC DI INC SI DEC CL JMP LP1 LP2: MOV AL,0FFH ; 若輸入的不是十進(jìn)制數(shù),在相應(yīng)的單元存放FFH ; 以字母開頭的十六進(jìn)制數(shù)前面需加0 MOV
5、 BL,AL ; 將AL-BL MOV DI,BL INC DI INC SI CMP CL,0 JNZ LP1 ; CL=0,執(zhí)行LP3中的語句 LP3: MOV AH,4CH INT 21H CODE ENDS END START 2. BCD碼轉(zhuǎn)換為二進(jìn)制碼DATA SEGMENT DATA1 DW 2497H DATA2 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ASSUME DS:DATA START: MOV AX,DATA MOV DS,AX XOR BX,BX ;累加單元清0(BX=0) MOV SI,0AH ;設(shè)置乘數(shù)10 MOV
6、CL,4 ;指4位BCD碼 MOV CH,3 ;循環(huán)次數(shù)=3 MOV AX,DATA1 ;取十進(jìn)制數(shù) LP: ROL AX,CL ;取數(shù)字 MOV DI,AX ;保存當(dāng)前AX值 AND AX,0FH ;屏蔽高位 ADD AX,BX ;累加 MUL SI MOV BX,AX MOV AX,DI DEC CH ;循環(huán)次數(shù)減1 JNZ LP ;以上完成循環(huán)三次,個(gè)位不用再*10,所以不用最后不用放入循環(huán)中去 ROL AX,CL ;取個(gè)位數(shù)字 AND AX,0FH ;屏蔽高位 ADD AX,BX ;進(jìn)行累加,直接將最后的累加結(jié)果放到AX中 MOV DATA2,AX MOV AH,4CH INT 21H
7、 CODE ENDS END START 3. 十六進(jìn)制數(shù)轉(zhuǎn)換為ACSII碼STACK SEGMENT DB 256 DUP(?) STACK ENDS DATA SEGMENT DATA1 DB 24H,06DH DATA2 DB 4 DUP(?) ; 存放ASCII碼 JUMP DB 4 DUP(?) ; 4位十六進(jìn)制數(shù)分別存放在DATA3的4個(gè)字節(jié)中 DATA ENDS CODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 LEA DI,JUMP MOV CH,2 ;
8、循環(huán)2次,取兩次兩位十六進(jìn)制數(shù) LP0: MOV AL,SI ; 取2位十六進(jìn)制數(shù) AND AL,0F0H ; 低四位為零 MOV CL,4 ROR AL,CL ; 右移4位 相當(dāng)于除以16 MOV DI,AL ; 高位數(shù)存放在高地址字節(jié)中 INC DI MOV AL,SI ; 取2位十六進(jìn)制數(shù) AND AL,0FH ; 高四位為零 MOV DI,AL ; 低位數(shù)存放在低地址字節(jié)中 INC SI INC DI DEC CH JNZ LP0 LEA SI,JUMP ; SI=JUMP的首地址偏移量 LEA DI,DATA2 ; DI=DATA2的首地址偏移量 MOV CH,4 ; 因?yàn)槭撬奈皇?/p>
9、進(jìn)制數(shù),所以設(shè)置為循環(huán)4次 LP1: MOV AL,SI ; 取JUMP中的十六進(jìn)制數(shù) CMP AL,9 JG LP2 ; 若AL9(AL-90),跳轉(zhuǎn)到LP2 ADD AL,30H ; 09H+30H=ASCII JMP LP3 LP2: ADD AL,37H ; AFH+30H=ASCII LP3: MOV DI,AL ; 將ASCII碼依次存入DATA2中 INC DI INC SI DEC CH JNZ LP1 MOV AH,09H INT 21H MOV DX,OFFSET DATA2 MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS E
10、ND START六、實(shí)驗(yàn)習(xí)題與思考1. 編程實(shí)現(xiàn):從鍵盤上輸入兩位十六進(jìn)制數(shù),轉(zhuǎn)換成十進(jìn)制數(shù)后顯示在屏幕上。STACK SEGMENT DB 256 DUP(?) STACK ENDS DATA SEGMENT DATA1 DB 5,?,2 DUP(?) DATA2 DB 2 DUP(?) DATA3 DB 2 DUP(?) DATA ENDS CODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX LEA DX,DATA1 MOV AH,0AH INT 21H ;輸入字符串 LEA SI,DATA1+2
11、 LEA DI,DATA2 MOV CL,2 ;將ASC碼轉(zhuǎn)換為十六進(jìn)制數(shù) LP1: MOV AL,SI SUB AL,30H CMP AL,9 JA LP2 MOV DI,AL INC DI INC SI DEC CL JZ LP3 JNZ LP1 LP2: SUB AL,7 MOV DI,AL INC DI INC SI DEC CL JNZ LP1 ;將十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),并保存 LP3: LEA DI,DATA2 MOV AL,DI MOV BL,DI+1 MOV CL,4 SHL AL,CL ADD AL,BL MOV DI,AL LEA SI,DATA3 XOR AH,AH
12、MOV CL,100 DIV CL ;AH=AX%100,AL=AX/100 MOV SI,AL ;保存百位數(shù) MOV AL,AH XOR AH,AH MOV CL,10 DIV CL MOV SI+1,AL ;保存十位數(shù) MOV SI+2,AH ;保存?zhèn)€位數(shù) ;屏幕顯示十進(jìn)制數(shù) LP4: MOV DL,SI ;取百位數(shù)送顯 OR DL,30H MOV AH,02H INT 21H MOV DL,SI+1 ;取十位數(shù)送顯 OR DL,30H MOV AH,02H INT 21H MOV DL,SI+2 ;取個(gè)位數(shù)送顯 OR DL,30H MOV AH,02H INT 21H MOV AH,4C
13、H INT 21H CODE ENDS END START2. 十進(jìn)制數(shù)轉(zhuǎn)換為七段碼。 為了在七段顯示器上顯示十進(jìn)制數(shù),需要把十進(jìn)制數(shù)轉(zhuǎn)換為七段代碼。轉(zhuǎn)換可采用查表法。設(shè)需要轉(zhuǎn)換的十進(jìn)制數(shù)已存放在起始地址為DATA1區(qū)域中,七段代碼轉(zhuǎn)換表存放在起始地址為TABLE表中,轉(zhuǎn)換結(jié)果存放到起始地址為DATA2區(qū)域。若待轉(zhuǎn)換的數(shù)不是十進(jìn)制數(shù),則相應(yīng)結(jié)果單元內(nèi)容為00H。STACK SEGMENT DB 256 DUP(?) STACK ENDS DATA SEGMENT DATA1 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,A,B,C,$ TABLE DB 00
14、H,40H,01H,79H,02H,24H,03H,30H,04H,19H,05H,12H,06H,02H, 07H,78H,08H,00H,09H,18H,0AH,08H,0BH,03H,0CH,46H,0DH,21H, 0EH,06H,0FH,0EH ;實(shí)際數(shù)據(jù)定義必須在同一行 DATA2 DB 16 DUP(0) COUNT EQU 2 DATA ENDS CODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 LEA BX,DATA2 LEA DI,TABLE XOR AH,AH LP1: MOV AL,SI ;外循環(huán)DATA1指向下一個(gè) INC SI MOV CX,16 ;內(nèi)循環(huán)TABLE 16次 LP2: CMP DI,AL JE LP3 ADD DI,COUNT ;內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 14283-2008點(diǎn)焊機(jī)器人 通 用技術(shù)條件》專題研究報(bào)告
- 《GBT 5121.7-2008銅及銅合金化學(xué)分析方法 第7部分:砷含量的測(cè)定》專題研究報(bào)告
- 2026版咨詢《決策》章節(jié)習(xí)題 第六章建設(shè)方案與比選
- 2026年九年級(jí)語文上冊(cè)期末試題(附答案)
- 2025-2026年蘇課新版八年級(jí)英語上冊(cè)期末考試題庫(附含答案)
- 2026年公務(wù)員時(shí)政考試題庫試題解析及答案
- (2026)學(xué)校食堂食材采購管理制度(3篇)
- 銀行內(nèi)部控制管理制度
- 市場競爭申請(qǐng)報(bào)告(3篇)
- 2026年智能按摩枕項(xiàng)目評(píng)估報(bào)告
- 2025年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬試卷
- 2025年六年級(jí)上冊(cè)道德與法治期末測(cè)試卷附答案(完整版)
- 雨課堂在線學(xué)堂《西方哲學(xué)-從古希臘哲學(xué)到晚近歐陸哲學(xué)》單元考核測(cè)試答案
- IPC7711C7721C-2017(CN)電子組件的返工修改和維修(完整版)
- 學(xué)堂在線 雨課堂 學(xué)堂云 研究生學(xué)術(shù)與職業(yè)素養(yǎng)講座 章節(jié)測(cè)試答案
- 生理學(xué)期中考試試題及答案
- 京張高鐵現(xiàn)場觀摩會(huì)整體策劃方案
- 安捷倫1200標(biāo)準(zhǔn)操作規(guī)程
- 合伙人合同協(xié)議書電子版
- 離婚協(xié)議書下載電子版完整離婚協(xié)議書下載三篇
- 磨床設(shè)備點(diǎn)檢表
評(píng)論
0/150
提交評(píng)論