1. 程式人生 > >數碼轉換程式實驗

數碼轉換程式實驗

一、實驗目的:

掌握不同進位制數及編碼相互轉換的程式設計方法。

 

二、實驗環境:

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