主题:[讨论]最后调试好了,后面出现乱码,大虾帮忙改一下
显示日期的程序,运行后显示:
date:2006 11 18
几番周折终于显示了,但为啥总在后面出现乱码啊,大虾帮忙改一下,感激不尽
data segment
ddd db 'date:','$'
DBUFFER1 DB 20 DUP (' ')
data ends
stack segment
sss dw 200 dup(?)
stack ends
code segment
assume cs:code,ds:data,ES:DATA,ss:stack
start:
mov ax,data
mov ds,ax
mov es,ax
MOV AH,2AH
INT 21H
MOV SI,0
MOV AX,CX
MOV BX,100
DIV BL
MOV BL,AH
CALL BCDASC1
MOV AL,BL
CALL BCDASC1
INC SI
MOV AL,DH
CALL BCDASC1
INC SI
MOV AL,DL
CALL BCDASC1
mov dx,offset ddd
mov ah,9
int 21h
MOV bp,OFFSET DBUFFER1
mov dx,bp
mov ah,9
int 21h
MOV AH,4CH
INT 21H
BCDASC1 PROC NEAR
PUSH BX
CBW
MOV BL,10
DIV BL
ADD AL,'0'
MOV DBUFFER1[SI],AL
INC SI
ADD AH,'0'
MOV DBUFFER1[SI],AH
INC SI
POP BX
RET
BCDASC1 ENDP
CODE ENDS
END START
date:2006 11 18
几番周折终于显示了,但为啥总在后面出现乱码啊,大虾帮忙改一下,感激不尽
data segment
ddd db 'date:','$'
DBUFFER1 DB 20 DUP (' ')
data ends
stack segment
sss dw 200 dup(?)
stack ends
code segment
assume cs:code,ds:data,ES:DATA,ss:stack
start:
mov ax,data
mov ds,ax
mov es,ax
MOV AH,2AH
INT 21H
MOV SI,0
MOV AX,CX
MOV BX,100
DIV BL
MOV BL,AH
CALL BCDASC1
MOV AL,BL
CALL BCDASC1
INC SI
MOV AL,DH
CALL BCDASC1
INC SI
MOV AL,DL
CALL BCDASC1
mov dx,offset ddd
mov ah,9
int 21h
MOV bp,OFFSET DBUFFER1
mov dx,bp
mov ah,9
int 21h
MOV AH,4CH
INT 21H
BCDASC1 PROC NEAR
PUSH BX
CBW
MOV BL,10
DIV BL
ADD AL,'0'
MOV DBUFFER1[SI],AL
INC SI
ADD AH,'0'
MOV DBUFFER1[SI],AH
INC SI
POP BX
RET
BCDASC1 ENDP
CODE ENDS
END START