彙編語言的碼制轉換小問題--求指教

 

這是一段將ASCII碼十進制數轉換爲二進制數的彙編程序,運行出來結果不對啊,求指點一下。

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

 

DATA SEGMENT

MES1 DB 'The ascii code of decimal code are:$'

BUF DB 31H,32H,33H

DB 10H DUP(0)

DATA ENDS

 

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

 

START: MOV AX,DATA

MOV DS,AX

 

MOV SI,OFFSET BUF

MOV BX,000AH

MOV CX,0002H

MOV AH,00H

MOV AL,[SI]

SUB AL,30H

A1: IMUL BX

ADD AL,[SI+01]

SUB AL,30H

INC SI

LOOP A1

MOV [SI],AX

MOV DX,OFFSET MES1

MOV AH,09H

INT 21H

INC SI ;顯示高字節

CALL SHOW

DEC SI ;顯示低字節

CALL SHOW

 

MOV AX,4C00H

INT 21H

 

SHOW PROC NEAR

MOV AL,DS:[SI]

AND AL,0F0H ;取高4位

SHR AL,4

CMP AL,0AH ;是否是A以上的數

JB C2

ADD AL,07H

C2: ADD AL,30H

MOV DL,AL ;show character

MOV AH,02H

INT 21H

MOV AL,DS:[SI]

AND AL,0FH ;取低4位

CMP AL,0AH

JB C3

ADD AL,07H

C3: ADD AL,30H

MOV DL,AL ;show character

MOV AH,02H

INT 21H

RET

ENDP

CODE ENDS

END START

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章