版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
實驗九數(shù)碼轉(zhuǎn)換一、實驗?zāi)康?、掌握計算機常用數(shù)據(jù)編碼之間的互相轉(zhuǎn)換方法。2、進一步熟悉DEBUG軟件的使用方法。二、實驗內(nèi)容1.ACSII碼轉(zhuǎn)換為非壓縮型BCD碼?編寫并調(diào)試對的的匯編語言源程序,使之實現(xiàn):設(shè)從鍵盤輸入一串十進制數(shù),存入DATA1單元中,按回車停止鍵盤輸入。將其轉(zhuǎn)換成非壓縮型(非組合型)
BCD碼后,再存入DATA2開始的單元中。若輸入的不是十進制數(shù),則相應(yīng)單元中存放FFH。調(diào)試程序,用D命令檢查執(zhí)行結(jié)果。2.BCD碼轉(zhuǎn)換為二進制碼 編寫并調(diào)試對的的匯編語言源程序,使之將一個16位存儲單元中存放的4位BCD碼DATA1,轉(zhuǎn)換成二進制數(shù)存入DATA2字單元中。調(diào)試程序,用D命令檢查執(zhí)行結(jié)果。3.十六進制數(shù)轉(zhuǎn)換為ASCII碼 編寫并調(diào)試對的的匯編語言源程序,使之將內(nèi)存DATA1字單元中存放的4位十六進制數(shù),轉(zhuǎn)換為ASCⅡ碼后分別存入DATA2為起始地址的4個單元中,低位數(shù)存在低地址的字節(jié)中,并在屏幕上顯示出來。三、
實驗預(yù)習(xí)1.
復(fù)習(xí)材料中有關(guān)計算機數(shù)據(jù)編碼部分的內(nèi)容。
2.
按規(guī)定編寫程序。
四、
實驗環(huán)節(jié)
1.
編輯源文獻(xiàn),經(jīng)匯編連接產(chǎn)生EXE文獻(xiàn)。2.
用DEBUG調(diào)試、檢查、修改程序。五、實驗內(nèi)容1.ACSII碼轉(zhuǎn)換為非壓縮型BCD碼STACK
SEGMENT
PARA
STACK
'STACK'
DB
256
DUP(?)
;為堆棧段留出256個字節(jié)單位
STACK
ENDS
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存放DATA2首地址
INC
SI
MOV
CL,[SI]
;取輸入字符串長度
INC
SI
;指向第一個輸入字符
LP1:
MOV
AL,[SI]
SUB
AL,30H
;輸入的字符存為ASCII碼,將其轉(zhuǎn)換成十進制數(shù)
CMP
AL,0
;若AL<0(AL-0<0),跳轉(zhuǎn)到LP2
JL
LP2
CMP
AL,9
;若AL>9(AL-9>0),跳轉(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
;若輸入的不是十進制數(shù),在相應(yīng)的單元存放FFH
;以字母開頭的十六進制數(shù)前面需加'0'
MOV
BL,AL
;將AL->BL
MOV
[DI],BL
INC
DI
INC
SI
DEC
CL
CL=CL-1
JNZ
LP1
;CL=0,執(zhí)行LP3中的語句
LP3:
MOV
AH,4CH
INT
21H
CODE
ENDS
END
START
2.BCD碼轉(zhuǎn)換為二進制碼DATASEGMENTDATA1DW2497HDATA2DW?DATAENDSCODESEGMENTASSUMESS:STACK,CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORBX,BX;累加單元清0(BX=0)MOVSI,0AH;設(shè)立乘數(shù)10MOVCL,4;指4位BCD碼MOVCH,3;循環(huán)次數(shù)=3MOVAX,DATA1;取十進制數(shù)LP:ROLAX,CL;取數(shù)字MOVDI,AX;保存當(dāng)前AX值A(chǔ)NDAX,0FH;屏蔽高位ADDAX,BX;累加MULSIMOVBX,AXMOVAX,DIDECCH;循環(huán)次數(shù)減1JNZLP;以上完畢循環(huán)三次ROLAX,CL;取個位數(shù)字ANDAX,0FH;屏蔽高位ADDAX,BX;進行累加,直接將最后的累加結(jié)果放到AX中MOVDATA2,AXMOVAH,4CHINT21HCODEENDSENDSTART3.十六進制數(shù)轉(zhuǎn)換為ACSII碼STACKSEGMENTDB256DUP(?)STACKENDSDATASEGMENTDATA1DB24H,06DHDATA2DB4DUP(?);存放ASCII碼JUMPDB4DUP(?);4位十六進制數(shù)分別存放在DATA3的4個字節(jié)中DATAENDSCODESEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEASI,DATA1LEADI,JUMPMOVCL,2;循環(huán)2次,取兩次兩位十六進制數(shù)LP0:MOVAL,[SI];?。参皇M制數(shù)ANDAL,0F0H;低四位為零RORAL,4;右移4位相稱于除以16MOV[DI],AL;高位數(shù)存放在高地址字節(jié)中INCDIMOVAL,[SI];取2位十六進制數(shù)ANDAL,0FH;高四位為零MOV[DI],AL;低位數(shù)存放在低地址字節(jié)中INCSIINCDIDECCLJNZLP0LEASI,JUMP;SI=JUMP的首地址偏移量LEADI,DATA2;DI=DATA2的首地址偏移量MOVCL,4;由于是四位十六進制數(shù),所以設(shè)立為循環(huán)4次LP1:MOVAL,[SI];取JUMP中的十六進制數(shù)CMPAL,9JGLP3;若AL>9(AL-9>0),跳轉(zhuǎn)到LP3ADDAL,30H;0~9H+30H=ASCIIJMPLP3LP2:ADDAL,37H;A~FH+30H=ASCIILP3:MOV[DI],AL;將ASCII碼依次存入DATA2中INCDIINCSIDECCLJNZLP1MOVAH,09HINT21HMOVDX,OFFSETDATA2MOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART六、實驗習(xí)題與思考1.編程實現(xiàn):從鍵盤上輸入兩位十六進制數(shù),轉(zhuǎn)換成十進制數(shù)后顯示在屏幕上。STACKSEGMENTDB256DUP(?)STACKENDSDATASEGMENTDATA1DB5,?,2DUP(?)DATA2DB2DUP(?)DATA3DB2DUP(?)DATAENDSCODESEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEADX,DATA1MOVAH,0AHINT21H;輸入字符串LEASI,DATA1+2LEADI,DATA2MOVCL,2;將ASC碼轉(zhuǎn)換為十六進制數(shù)LP1:MOVAL,[SI]SUBAL,30HCMPAL,9JALP2MOV[DI],ALINCDIINCSIDECCLJZLP3JNZLP1LP2:SUBAL,7MOV[DI],ALINCDIINCSIDECCLJNZLP1;將十六進制數(shù)轉(zhuǎn)換成十進制數(shù),并保存LP3:LEADI,DATA2MOVAL,[DI]MOVBL,[DI+1]MOVCL,4SHLAL,CLADDAL,BLMOV[DI],ALLEASI,DATA3XORAH,AHMOVCL,100DIVCL;AH=AX%100,AL=AX/100MOV[SI],AL;保存百位數(shù)MOVAL,AHXORAH,AHMOVCL,10DIVCLMOV[SI+1],AL;保存十位數(shù)MOV[SI+2],AH;保存?zhèn)€位數(shù);屏幕顯示十進制數(shù)LP4:MOVDL,[SI];取百位數(shù)送顯ORDL,30HMOVAH,02HINT21HMOVDL,[SI+1];取十位數(shù)送顯ORDL,30HMOVAH,02HINT21HMOVDL,[SI+2];取個位數(shù)送顯ORDL,30HMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART2.十進制數(shù)轉(zhuǎn)換為七段碼。為了在七段顯示器上顯示十進制數(shù),需要把十進制數(shù)轉(zhuǎn)換為七段代碼。轉(zhuǎn)換可采用查表法。設(shè)需要轉(zhuǎn)換的十進制數(shù)已存放在起始地址為DATA1區(qū)域中,七段代碼轉(zhuǎn)換表存放在起始地址為TABLE表中,轉(zhuǎn)換結(jié)果存放到起始地址為DATA2區(qū)域。若待轉(zhuǎn)換的數(shù)不是十進制數(shù),則相應(yīng)結(jié)果單元內(nèi)容為00H。STACKSEGMENTDB256DUP(?)STACKENDSDATASEGMENTDATA1DB0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,'A','B','C','$'TABLEDB00H,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
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股權(quán)投資合同:甲方投資乙方公司的投資金額、股權(quán)比例等3篇
- 二零二五年度車輛包車保險合同規(guī)范3篇
- 二零二五版地下綜合管廊安全防護質(zhì)量保修合同3篇
- 二零二五版30萬噸礦砂船船舶維修保養(yǎng)及配件供應(yīng)長期合同3篇
- 二零二五版專業(yè)環(huán)保印刷保密合同3篇
- 二零二五年度網(wǎng)絡(luò)直播平臺運營與分成合同2篇
- 二零二五年環(huán)保搬運承包項目合同3篇
- 解除2025年度互聯(lián)網(wǎng)金融服務(wù)合同3篇
- 二零二五版文化衍生品開發(fā)及銷售合同范本3篇
- 二零二五版服裝品牌管理公司員工勞動合同范本3篇
- 2025年中國高純生鐵行業(yè)政策、市場規(guī)模及投資前景研究報告(智研咨詢發(fā)布)
- 2022-2024年浙江中考英語試題匯編:完形填空(學(xué)生版)
- 2025年廣東省廣州市荔灣區(qū)各街道辦事處招聘90人歷年高頻重點提升(共500題)附帶答案詳解
- 中試部培訓(xùn)資料
- 硝化棉是天然纖維素硝化棉制造行業(yè)分析報告
- 央視網(wǎng)2025亞冬會營銷方案
- 北師大版數(shù)學(xué)三年級下冊豎式計算題100道
- 計算機網(wǎng)絡(luò)技術(shù)全套教學(xué)課件
- 屋頂分布式光伏發(fā)電項目施工重點難點分析及應(yīng)對措施
- 胃鏡下超聲穿刺護理配合
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(原卷版)
評論
0/150
提交評論