3
以下是我的代碼。 hex2dec中的塊可成功將單個十六進制數轉換爲十進制數。如果有人能夠指出我在使用陣列時出錯的地方,那將會非常有幫助。謝謝。將十六進制數組轉換爲十進制數Intel 8086彙編語言
DATA SEGMENT
NUM DW 1234H,9H,15H
RES DB 3*10 DUP ('$','$','$')
SIZE DB 3
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA, CS:CODE
START:
MOV AX, DATA
MOV DS,AX
MOV DI,0
LOOP3:
MOV AX,NUM[DI]
LEA SI,RES[DI]
CALL HEX2DEC
LEA DX,RES[DI]
MOV AH,9
INT 21H
INC DI
CMP DI,3
JL LOOP3
MOV AH,4CH ; end program
INT 21H
CODE ENDS
HEX2DEC PROC NEAR
MOV CX,0
MOV BX,10
LOOP1:
MOV DX,0
DIV BX
ADD DL,30H
PUSH DX
INC CX
CMP AX,9
JG LOOP1
ADD AL,30H
MOV [SI],AL
LOOP2:
POP AX
INC SI
MOV [SI],AL
LOOP LOOP2
RET
HEX2DEC ENDP
END START
我更換了INC DI與地址由你的建議也改變RES,使其始終像緩衝區一樣運行。它仍然給出了錯誤的答案。 – Anurag
您是否以每個輸出的** $ **字符結束字符串? –
你確定你的彙編器不需要你寫'MOV AX,@ DATA''MOV DS,AX'嗎?所以加入** @ **。 –