您的位置:首页 > 其它

二进制转换成十进制显示输出

2005-11-11 22:32 260 查看
调用子程序,将BUF中的二进制数转换成十进制显示输出

STACK SEGMENT STACK
DB 128 DUP(0)
STACK ENDS
DATA SEGMENT
BUF DW 0025H,0389H
N = ($-BUF)/2
STR DB 9 DUP(' ')
CHE DW 10000,1000,100,10,1
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA SI,BUF
MOV CX,N
L: MOV AX,[SI]
LEA DI,STR
CALL CBD
ADD SI,2
LOOP L
MOV AH,4CH
INT 21H

;入口:AX中存放待转换的二进制数
;出口:DI寄存器存放字符串的首地址
CBD PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH DI
LEA SI,CHE
OR AX,AX
JNS PLUS
MOV BYTE PTR [DI],'-'
INC DI
NEG AX
PLUS: MOV CX,5
L1: MOV BX,[SI]
MOV DX,0
DIV BX
ADD AL,30H
MOV [DI],AL
INC DI
ADD SI,2
MOV AX,DX
OR AX,AX
JZ L2
LOOP L1
L2: MOV BYTE PTR[DI],13
INC DI
MOV BYTE PTR[DI],10
INC DI
MOV BYTE PTR[DI],'$'
POP DX
MOV AH,9
INT 21H
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
RET
CBD ENDP

CODE ENDS
END START
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: