數(shù)碼轉(zhuǎn)換試驗報告微機原理_第1頁
數(shù)碼轉(zhuǎn)換試驗報告微機原理_第2頁
數(shù)碼轉(zhuǎn)換試驗報告微機原理_第3頁
數(shù)碼轉(zhuǎn)換試驗報告微機原理_第4頁
數(shù)碼轉(zhuǎn)換試驗報告微機原理_第5頁
免費預覽已結(jié)束,剩余3頁可下載查看

付費下載

下載本文檔

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

文檔簡介

1、實驗九數(shù)碼轉(zhuǎn)換一、實驗目的1、掌握計算機常用數(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ù),則相應單元中存放FFHo調(diào)試程序,用D命令檢查執(zhí)行結(jié)果。2. BCD碼轉(zhuǎn)換為二進制碼編寫并調(diào)試正確的匯編語言源程序,使之將一個16位存儲單元中存放的4位BCD碼DATA1轉(zhuǎn)換成二進制數(shù)存入DATA2字單元中。調(diào)試程序,用D命令檢查執(zhí)

2、行結(jié)果。3. 十六進制數(shù)轉(zhuǎn)換為ASCII碼編寫并調(diào)試正確的匯編語言源程序,使之將內(nèi)存DATA1字單元中存放的4位十六進制數(shù),轉(zhuǎn)換為ASCH碼后分別存入DATA2為起始地址的4個單元中,低位數(shù)存在低地址的字節(jié)中,并在屏幕上顯示出來。三、實驗預習1 .復習材料中有關(guān)計算機數(shù)據(jù)編碼部分的內(nèi)容。2 .按要求編寫程序。四、實驗步驟1 .編輯源文件,經(jīng)匯編連接產(chǎn)生EXE文件。2 .用DEBUG調(diào)試、檢查、修改程序。五、實驗內(nèi)容1. ACSII碼轉(zhuǎn)換為非壓縮型BCD碼STACKSEGMENTPARASTACK'STACK'DB256DUP();為堆棧段留出256個字節(jié)單位STACKENDSD

3、ATASEGMENTPARA'DATAt義數(shù)據(jù)段DATA1DB32;緩沖區(qū)最大長度DBDB32DUP()DATA2DB32DUP()DATAENDSCODESEGMENT;定義代碼段ASSUMESS:STACKASSUMECS:CODEASSUMEDS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,DATA1;規(guī)定:DX存放輸入字符串的緩沖區(qū)首地址MOVAH,0AHINT21H;字符串輸入AL處人的ASCII碼LEASI,DATA1LEADI,DATA2;DI存放DATA2首地址INCSIMOVCL,SI;取輸入字符串長度INCSI;指向第一個輸入字符LP1:MO

4、VAL,SISUBAL,30H;輸入的字符存為ASCII碼,將其轉(zhuǎn)換成十進制數(shù)CMPAL,0;若AL<0(AL-0<0),跳轉(zhuǎn)至ijLP2JLLP2CMPAL,9;若AL>9(AL-9>0),跳轉(zhuǎn)到LP2JGLP2MOVBL,AL;將AL->BLMOVDI,BL;將結(jié)果存到DATA2開始的單元中INCDIINCSIDECCLJMPLP1FFHLP2:MOVAL,0FFH;若輸入的不是十進制數(shù),在相應的單元存放;以字母開頭的十六進制數(shù)前面需加0'MOVBL,AL;將AL->BLMOVDI,BLINCDIINCSIDECCLCL=CL-1JNZLP1;C

5、L=0,執(zhí)行LP3中的語句LP3:MOVAH,4CHINT21HCODEENDSENDSTART2. BCD碼轉(zhuǎn)換為二進制碼DATASEGMENTDATA1DW2497HDATA2DWDATAENDSCODESEGMENTASSUMESS:STACK,CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORBX,BXMOVSI,0AHMOVCL,4MOVCH,3MOVAX,DATA1LP:ROLAX,CLMOVDI,AXANDAX,0FHADDAX,BXMULSIMOVBX,AX;累加單元清0(BX=0)設(shè)置乘數(shù)10指4位BCD碼;循環(huán)次數(shù)=3;取十進制數(shù)取數(shù)字保存

6、當前AX值屏蔽高位累加MOVAX,DIDECCHJNZLPROLAX,CLANDAX,0FHADDAX,BXMOVDATA2,AXMOVAH,4CHINT21H;存放ASCII碼;4位十六進制數(shù)分別存放在DATA3的4個字節(jié)中START:MOVAX,DATAMOVDS,AXLEASI,DATA1LEADI,JUMPMOVCL,2LP0:MOVAL,SIANDAL,0F0HRORAL,4MOVDI,ALINCDIMOVAL,SIANDAL,0FHMOVDI,ALINCSIINCDIDECCLJNZLP0LEASI,JUMPLEADI,DATA2MOVCL,4LP1:MOVAL,SICMPAL,9

7、JGLP3ADDAL,30H;循環(huán)次數(shù)減1;以上完成循環(huán)三次;取個位數(shù)字;屏蔽高位AX中進行累加,直接將最后的累加結(jié)果放到CODEENDSENDSTART3.十六進制數(shù)轉(zhuǎn)換為ACSII碼STACKSEGMENTDB256DUP()STACKENDSDATASEGMENTDATA1DB24H,06DHDATA2DB4DUP()JUMPDB4DUP()DATAENDSCODESEGMENTASSUMESS:STACK,DS:DATA,CS:CODE循環(huán)2次,取兩次兩位十六進制數(shù)取2位十六進制數(shù)低四位為零右移4位相當于除以16高位數(shù)存放在高地址字節(jié)中取2位十六進制數(shù):高四位為零低位數(shù)存放在低地址字節(jié)

8、中;SI=JUMP的首地址偏移量;DI=DATA2的首地址偏移量因為是四位十六進制數(shù),所以設(shè)置為循環(huán)4次;取JUMP中的十六進制數(shù);若AL>9(AL-9>0),跳轉(zhuǎn)到LP3;09H+30H=ASCIIJMPLP3LP2:ADDAL,37H;AFH+30H=ASCIIDATA2中LP3:MOVDI,AL;將ASCII碼依次存入INCDIINCSIDECCLJNZLP1MOVAH,09HINT21HMOVDX,OFFSETDATA2MOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART六、實驗習題與思考1.編程實現(xiàn):從鍵盤上輸入兩位十六進制數(shù),轉(zhuǎn)換

9、成十進制數(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,SISUBAL,30HCMPAL,9JALP2MOVDI,ALINCDIINCSIDEC

10、CLJZLP3JNZLP1LP2:SUBAL,7MOVDI,ALINCDIINCSIDECCLJNZLP1;將十六進制數(shù)轉(zhuǎn)換成十進制數(shù),并保存LP3:LEADI,DATA2MOVAL,DIMOVBL,DI+1MOVCL,4SHLAL,CLADDAL,BLMOVDI,ALLEASI,DATA3XORAH,AHMOVCL,100DIVCL;AH=AX%100,AL=AX/100MOVSI,AL;保存百位數(shù)MOVAL,AHXORAH,AHMOVCL,10DIVCLMOVSI+1,AL;保存十位數(shù)MOVSI+2,AH;保存?zhèn)€位數(shù);屏幕顯k十進制數(shù)LP4:MOVDL,SI;取百位數(shù)送顯ORDL,30HM

11、OVAH,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ù),則相應結(jié)果單元內(nèi)容為00H。STACKSEGMENTDB256DUP()ST

12、ACKENDSDATASEGMENTDATA1DB0,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;實際數(shù)據(jù)定義必須在同一行DATA2DB16DUP(0)COUNTEQU2DATAENDSCODESEGMENTSTART:MOVAX,DATAMOVDS,AXLEASI,DATA1LEABX,DATA2LEADI,TABLEXORAH,AHLP1:MOVAL,SI;外循環(huán)DATA1指向下一個INCSIMOVCX,16;內(nèi)循環(huán)TABLE16次LP2:CMPDI,ALJELP3ADDDI,COUNT;內(nèi)循環(huán)TABLE指向下一組DECCXJNZLP2MOVB

溫馨提示

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

評論

0/150

提交評論