2016-05-04 15 views
0

Ich weiß, dass alle 4 Bit in BCD eine Ziffer in Dezimalzahl ist, aber ich habe ein Problem, zum Beispiel, wenn ich einen BCD-Wert in CH gespeichert drucken möchte ich dies tun:BCD in ASCII-Konvertierung

add ch, 30h 

aber, wenn der Wert 12 ist, druckt es "C", ich möchte "12" drucken. Wie kann ich Operationen mit 4 Bit Daten durchführen?

+2

12 in BCD ist 12h, wenn Sie 30h Sie 42h erhalten hinzufügen, die B, nicht C. Sie müssen nur verwenden 'und' und verschiebt aufzuspalten es und gehe von dort. –

Antwort

-1
mov al,ch  ; if ch has 12h 
aam   ; ax will now be 0102h 
or ax,3030h ; converting into ascii - ax will now become 3132h 
; you can now print the value in ax 
mov cx,ax 
mov dl,ch  ; to print on screen 
mov ah,02h 
int 21h 
mov dl,cl 
int 21h 
ret 

8086 AAM Instruction

8086 INT 21h function to print a character

+1

Der Code ist falsch! Diese 'AAM'-Anweisung teilt sich durch ** 10 **, aber um von 12h in 0102h umzurechnen, müssen Sie durch ** 16 ** teilen. –

Verwandte Themen