數碼轉換程式實驗
阿新 • • 發佈:2019-01-05
一、實驗目的:
掌握不同進位制數及編碼相互轉換的程式設計方法。
二、實驗環境:
PC 微機一臺、TD-PITD 實驗系統一套。
三、實驗內容:
1.將 ASCII 碼錶示的十進位制數轉換為二進位制數
本實驗要求將緩衝區中的一個五位十進位制數 00012 的 ASCII 碼轉換成二進位制數,並將轉換結果顯示在螢幕上。轉換過程的參考流程如圖 2-3-2 所示,根據流程圖編寫程式程式碼。
十進位制數可以表示為:Dn×10n+Dn-1×10n-1+…+D0×100=Di×10i 其中 Di 代表十進位制數 1、2、3…9、0。
上式可以轉換為:ΣDi×10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×
10+D0。
由上式可歸納十進位制數轉換為二進位制的方法:從十進位制數的最高位 Dn 開始作乘 10 加次位的操作,依次類推,則可求出二進位制數結果。
圖 2-3-2 十進位制 ASCII 轉換為二進位制數參考流程
DATA SEGMENT SHUZI DB 12 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV DI,OFFSET SHUZI MOV AL,[DI] XOR BH,BH MOV BL,AL AND AL,0F0H MOV CL,4 SHR AL,CL CMP AL,0AH JB C1 ADD AL,07H C1:ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AL,BL AND AL,0FH CMP AL,0AH JB C2 ADD AL,07H C2:ADD AL,30H MOV DL,AL MOV AH,2 INT 21H CODE ENDS END START
2.將十六進位制數的 ASCII 碼轉換為十進位制數
本實驗要求將緩衝區中存放的 000CH 的 ASCII 碼轉換成十進位制數,並將轉換結果顯示在螢幕上。
DATA SEGMENT SHUZI DB 0CH SHUZI1 DB 2 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DI,OFFSET SHUZI MOV SI,OFFSET SHUZI1 MOV BX,0 MOV CX,2 INC SI INC SI MOV AX,[DI] C2: CMP AX,0AH JB C1 INC BX SUB AX,10 JMP C2 C1: MOV [SI],AX DEC SI DEC SI CMP BX,0AH JB C3 MOV AX,BX MOV BX,0 JMP C2 C3: MOV [SI],BX MOV SI,OFFSET SHUZI1 C4: MOV AL,[SI] ADD AL,30H MOV DL,AL MOV AH,2 INT 21H INC SI INC SI LOOP C4 CODE ENDS END START