資源描述:
《微機(jī)原理課程設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)院系:班級(jí):姓名:指導(dǎo)教師:日期:一設(shè)計(jì)任務(wù):編寫一匯編語(yǔ)言程序,要求從鍵盤接收一個(gè)四位的十六進(jìn)制數(shù),并在終端上顯示與它等值的二進(jìn)制數(shù)和十進(jìn)制數(shù)。(課例027、017、024)二設(shè)計(jì)方案將接收到的數(shù)轉(zhuǎn)成16進(jìn)制數(shù),將這個(gè)數(shù)保存在一個(gè)通用寄存器中(如AX),然后對(duì)AX循環(huán)做16次SHL,由carry標(biāo)志寄存器的狀態(tài)來(lái)判斷顯示0/1。十六位二進(jìn)制數(shù)保存在BX中,對(duì)BX中的二進(jìn)制數(shù)循環(huán)左移,每次移一位,然后把BL中的二進(jìn)制數(shù)送給AL,再對(duì)AL的前7位進(jìn)行屏蔽,只留一位原本是最高位的
2、那位二進(jìn)制數(shù),它要么為1,要么為0。然而把AL中的這位二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),并且輸出,由于AL高7位都為0,所以轉(zhuǎn)換位十進(jìn)制后,然后要么為1,要么為0,并且與那位二進(jìn)制數(shù)相對(duì)應(yīng)。這樣循環(huán)做16次,就把整個(gè)BX中的二進(jìn)制數(shù)都顯示出來(lái)。軟件VisulASMSetup匯編程序的上機(jī)過(guò)程是:1)打開軟件建立新文件并把程序粘貼在文件上點(diǎn)擊匯編源程序2)下一步然后再點(diǎn)鏈接目標(biāo)碼3)然后點(diǎn)調(diào)試程序4)最后點(diǎn)運(yùn)行程序開始三流程圖初始化循環(huán)計(jì)數(shù)值BX循環(huán)邏輯左移一個(gè)數(shù)位N輸入一個(gè)四位的十六進(jìn)制數(shù)>9嗎?N轉(zhuǎn)換為十進(jìn)制顯示
3、二進(jìn)制數(shù)循環(huán)計(jì)數(shù)器=0?結(jié)束1.程序運(yùn)行結(jié)果截圖附錄STACKSEGMENTPARASTACK'STACK'DW200DUP(0);初始化堆棧大小為STACKENDSDATESEGMENTTRANBDB0DH,0AH,'Thetransformedbinaryis:',0DH,0AH,'$'TRANDDB0DH,0AH,'Thetransformeddemicalis:',0DH,0AH,'$'RESULTDB5DUP(?),'$'DATEENDSCODESEGMENTASSUMECS:CODE,DS:D
4、ATE,SS:STACKMAINPROCFAR;主程序入口MOVAX,DATEMOVDS,AXMOVBX,0MOVCH,4MOVCL,4INPUT:SHLBX,CLMOVAH,01HINT21HCMPAL,39H;大于則轉(zhuǎn)移JAAFANDAL,0FHJMPBINARYAF:ANDAL,0FHADDAL,09HBINARY:ORBL,ALDECCHJNZINPUT;轉(zhuǎn)換完成二進(jìn)制數(shù)在BX中PUSHBXLEADX,TRANBMOVAH,9INT21H;顯示字符串DISPB:MOVCX,10H;顯示二進(jìn)制數(shù)DI
5、SP:MOVDL,0ROLBX,1RCLDL,1ADDDL,30HMOVAH,2INT21HLOOPDISPPOPBXMOVCX,5MOVAX,BXMOVBX,10MOVDI,OFFSETRESULT+4JBY:XORDX,DXDIVBXORDL,30HMOVBYTEPTR[DI],DLDECDILOOPJBYLEADX,TRANDMOVAH,9INT21H;顯示字符串MOVDX,OFFSETRESULTMOVAH,9INT21HMOVAH,1INT21HMOVAH,4CH;程序結(jié)束,返回到操作系統(tǒng)系統(tǒng)I
6、NT21HRETMAINENDPCODEENDSENDMAIN