微機原理課程設(shè)計

微機原理課程設(shè)計

ID:9935609

大小:160.50 KB

頁數(shù):9頁

時間:2018-05-16

微機原理課程設(shè)計_第1頁
微機原理課程設(shè)計_第2頁
微機原理課程設(shè)計_第3頁
微機原理課程設(shè)計_第4頁
微機原理課程設(shè)計_第5頁
資源描述:

《微機原理課程設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、《微機原理與接口技術(shù)》課程設(shè)計院系:計算機學(xué)院通信工程專業(yè)班級:姓名:指導(dǎo)教師:日期:2012.02.25一、設(shè)計任務(wù)1、編寫一匯編語言程序,要求從鍵盤接收一個四位的十六進(jìn)制數(shù),并在終端上顯示與它等值的二進(jìn)制數(shù)和十進(jìn)制數(shù)。2、掌握接受鍵盤數(shù)據(jù)的方法,了解將鍵盤數(shù)據(jù)顯示時須轉(zhuǎn)換為ASCII碼的原理。二、設(shè)計方案(1)實現(xiàn)十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換第一步:實現(xiàn)十六進(jìn)制數(shù)的輸入和對應(yīng)二進(jìn)制數(shù)的轉(zhuǎn)換。利用DOS系統(tǒng)功能中的1號輸入字符的功能,接收輸入的十六進(jìn)制數(shù),將其轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù)(若是0-9之間的數(shù)直接屏蔽高4位,若

2、是A-F之間的數(shù)在屏蔽高4位后還要加9)。BX中存放的是二進(jìn)制數(shù)的結(jié)果,利用算數(shù)左移指令使BX左移4位,然后與下一次轉(zhuǎn)換后的數(shù)相加。如此循環(huán)4次,得到對應(yīng)的二進(jìn)制數(shù)。第二步:實現(xiàn)顯示轉(zhuǎn)化后的二進(jìn)制數(shù)。利用ROL和RCL指令,從最高位起循環(huán)取出每位二進(jìn)制數(shù),將其轉(zhuǎn)換成對應(yīng)的ASSCII碼,調(diào)用DOS系統(tǒng)功能調(diào)用中2號功能顯示。(2)實現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。第一步:從十六進(jìn)制向二進(jìn)制轉(zhuǎn)換,由于十六進(jìn)制和二進(jìn)制的特殊關(guān)系,它們之間的轉(zhuǎn)換非常簡單。第二步:從二進(jìn)制轉(zhuǎn)換為十進(jìn)制,方法是將要轉(zhuǎn)換的二進(jìn)制預(yù)先放到AX寄存器

3、中,判斷AX中數(shù)的符號,若為負(fù)數(shù),則將負(fù)號送入輸出緩沖區(qū),并求AX的絕對值;若AX中的數(shù)為正數(shù),則不做其他處理,此時AX中即為無符號二進(jìn)制數(shù)。然后將無符號二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制,可采用將AX除以10,得到第一個商和第一個余數(shù),第一個余數(shù)就是所求十進(jìn)制的個位,將第一個余數(shù)除以10,得到第二個商和余數(shù),第二個余數(shù)就是十進(jìn)制的十位數(shù),重復(fù)以上過程,一直循環(huán)到商為零時,得到的余數(shù)就是所求十進(jìn)制的最高位數(shù),這就是數(shù)制轉(zhuǎn)換中常用的“除模留余倒排列”法則。開始三、流程圖段寄存器和堆棧初始化顯示“請輸入十六進(jìn)制數(shù)”調(diào)用GETNUM子程

4、序,接收鍵入數(shù)值,保存在BX中計數(shù)值16送CXBX中內(nèi)容循環(huán)左移1位BL送DL,屏蔽掉DL高7位DL加30H,變成二進(jìn)制數(shù)位對應(yīng)字符的ASCII碼顯示CX減1為零返回DOS主程序框圖保存寄存器DX清零讀鍵入字符的ASCII碼送AL中是回車鍵?(AL)<30H?N是數(shù)字0~9?N是字母A~F?NN是字母a~f?將本次鍵入的數(shù)字加進(jìn)DX中顯示“輸入出錯”信息回車換行恢復(fù)寄存器返回GETNUM子程序框圖四、程序運行結(jié)果截圖通過設(shè)計和編寫程序代碼,運行程序后,其結(jié)果先為顯示開始界面幾位菜單界面,而后隨意輸入一個小于4位的十六

5、進(jìn)制數(shù),打完字敲回車,馬上出現(xiàn)所對應(yīng)的十進(jìn)制數(shù)。當(dāng)連續(xù)輸入4位的十六進(jìn)制數(shù)直接輸出十進(jìn)制數(shù),同時,再打回車,可以再輸入十六進(jìn)制數(shù),并且可以循環(huán)運行。五、附錄(程序源代碼,要求有必要的注釋)(1)十六進(jìn)制轉(zhuǎn)換為二進(jìn)制CRLFMACROMOVAH,02HMOVDL,ODHINT21HMOVAH,02HMOVDL,0AHINT21HENDMDATASEGMENTMESSDB‘INPUTHEXNUMBER:$’ERRORDB‘INPUTERROR!’,0DH,0AH,‘$’DATAENDSSTACKSEGMENTSTADW3

6、2DUP(?)TOPDW?STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSP,TOPMOVAH,09HMOVDX,OFFSETMESSINT21H;顯示提示輸入的信息CALLGETNUM;接收鍵入數(shù)值送DXMOVCX,0010H;16位MOVBX,DXTTT:ROLBX,1;循環(huán)左移1位MOVDL,BLANDDL,01H;屏蔽掉高7位ADDDL,30HMOVAH,02HINT21

7、H;顯示二進(jìn)制數(shù)位對應(yīng)的ASCII字符LOOPTTTMOVAX,4C00HINT21HGETNUMPROCNEAR;子程序,接收鍵入數(shù)值送DXPUSHCXXORDX,DXGGG:MOVAH,01HINT21HCMPAL,0DHJZPPPCMPAL,30HJZKKKSUBAL,30HCMPAL,0AHJBGETSCMPAL,11HJBKKKSUBAL,07HCMPAL,0FHJBEGETSCMPAL,2AHJBKKKCMPAL,2FHJAKKKSUBAL,20HGETS:MOVCL,04HSHLDX,CLXORAH,A

8、HADDDX,AXJMPGGGKKK:MOVAH,09HMOVDX,OFFSETERRORINT21HPPP:PUSHDXCRLFPOPDXPOPCXRETGETNUMENDPCODEENDSENDSTART(2)十六進(jìn)制轉(zhuǎn)換為十進(jìn)制DATASEGMENTCREQU0DH;回車LFEQU0AH;換行DAT1DB'Qingshurushiliuj

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。