您的位置:首页 > 其它

汇编语言的码制转换小问题--求指教

2012-06-19 00:11 253 查看
这是一段将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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: