資源描述:
《將鍵盤(pán)上輸入的十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、將鍵盤(pán)上輸入的十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),在屏幕上顯示.已通過(guò)調(diào)試,運(yùn)行OK.獻(xiàn)給同樣為微機(jī)原理的題目苦苦搜索的同學(xué)們~DATASEGMENT???????????????;懶人,關(guān)于ERROR提示和輸入提示和各處回車(chē)略???NUM16DB16???DB????DB8DUP(?)???NDB?DATAENDS???????????????;FROM唐如!CODESEGMENT??????????????????MAINPROCFARSTART:???ASSUMECS:CODE,DS:DATA???MOVAX,DATA???MOVDS,AX???LEADX,NUM16???MOVAX,0A
2、00H???INT21H???LEASI,NUM16???MOVCL,[SI+1]????????????;實(shí)際輸入的位數(shù)N2:???MOVAH,0????????????;AH清0???MOVN,CL????????????;當(dāng)前N值轉(zhuǎn)移給N???MOVAL,[SI+2]????????????;依次一位一位取數(shù)???CMPAL,'A'????????????;與下三行一起轉(zhuǎn)為數(shù)值???JBN1???SUBAL,07HN1:???SUBAL,30H???CMPN,0???????????????;N為0時(shí)已全轉(zhuǎn)為2進(jìn)制???JZTEN???????????????;跳轉(zhuǎn)至二進(jìn)制轉(zhuǎn)十進(jìn)
3、制部分???INCSI???????????????;取數(shù)完后指針加一???DECN???????????????;取數(shù)完后N減一???MOVCL,N????????????;余下的數(shù)的位數(shù)入CL保存N3:???CMPN,0???????????????;判斷當(dāng)前數(shù)的位數(shù)???JZN4???????????????;累乘完后當(dāng)前數(shù)的二進(jìn)制值保存在AX???MOVDX,16???MULDX???DECN???JMPN3N4:???ADDBX,AX????????????;把各位的二進(jìn)制值加起來(lái)放到BX???JMPN2TEN:???MOV?AX,BX????????????;復(fù)制到AX,做
4、除法???????MOV?DX,0???????MOV?CX,10000???????DIV?CX???????????????;AX存商,DX存16位余數(shù)???????CALLPLAY??????????????;displayonebitindecimal???????MOV?CX,1000???????DIV?CX???????CALLPLAY??????????????;displayonebitindecimal???????MOV?CX,100???????DIV?CX???????CALLPLAY??????????????;displayonebitindecimal?
5、??????MOV?CX,10???????DIV?CX???????CALLPLAY?????????????;displayonebitindecimal???????CALLPLAY??????????????;displayonebitindecimal???MOVAH,4CH???INT21HPLAY???PROCNEAR????????????;逐位顯示???????XCHGAX,DX???PUSHAX???????????????;余數(shù)入棧保護(hù)???????ADD?DL,30H????????????;十進(jìn)制數(shù)轉(zhuǎn)ASC碼???????MOV?AH,02H???????IN
6、T?21H????????????;顯示???????POP?AX???????????????;余數(shù)入AX除???????MOV?DX,0???????RETPLAY???ENDPMAINENDPCODEENDS???ENDSTART