这是个二进制转十六进制的程序:
;FILENAME 592.ASM
.486
DATA SEGMENT USE16
BNUM DW 0001001000110100B
DW 0101011001111000B
DW 0001101000101011B
DW 0011110001001101B
BUF DB 4 DUP (?),'H $'
COUNT DB 4
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG:MOV AX,DATA
MOV DS,AX
MOV CX,4
MOV BX,OFFSET BNUM
AGAIN:MOV DX,[BX]
SAL EDX,16
CALL N2_16ASC
MOV AH,9
MOV DX,OFFSET BUF
INT 21H
ADD BX,2
LOOP AGAIN
MOV AH,4CH
INT 21H
;---------------------------------
N2_16ASC PROC
MOV SI,OFFSET BUF
MOV COUNT,4
LAST:ROL EDX,4
AND DL,0FH
CMP DL,10
JC NEXT
ADD DL,7
NEXT:ADD DL,30H
MOV [SI],DL
INC SI
DEC COUNT
JNZ LAST
RET
N2_16ASC ENDP
CODE ENDS
END BEG
我想知道为什么那段MOV COUNT,4不能删??不是COUNT顶一顶时候已经给它一个值4了么,为什么这里还要把4传送给COUNT??求尽快解决,谢谢!(代码已调试,无错)
------解决方案--------------------------------------------------------
应该是MOV COUNT,4在子程序中的原因,子程序中count值不定,不知道对不对