Frage zur Addition
-
Hallo wieso wird hier 8 ausgeben ?
Ist das so weil mov ah,02h nur 1 Zeichen ausgibt ?
High Teil
00Low Teil
38Erstes Zeichen im Low Teil = 8
.MODEL Small .STACK 100h .DATA .CODE var db ? ,"$" Start: mov ax,@data mov ds,ax xor ax,ax mov al,4 mov ah,4 add al,ah add al,30h ; ax = 0438 mov dl,al mov ah,02h ; dx = 0038 int 21h mov ah,4ch int 21h END Start
edit: code-tags gefixt
-
Verstehe die Frage nicht ganz...
Du addierst 4 und 4, wandelst das einstellige Ergebnis in einen ASCII-Code um (das add al, 30h in Zeile 21), gibst dann dieses eine Zeichen aus (Funktion 2 von DOS int 21h gibt das ASCII-Zeichen in dl aus) und wunderst dich dann, warum das korrekte, einstellige Ergebnis ausgegeben wird?
-
Hat sich schon erledigt ich hab mich nur von der Wikipedia ASCII Tabelle verwirren lassen aber jetzt hab ichs verstanden.
Wobei eine Frage habe ich noch.
ASCII 38 = 8 ?? ( In der Tabelle steht nicht aus welchem Zahlensystem nun die 8 ist. Die Tabelle: http://www.robelle.com/smugbook/ascii.html )
Ist die 38 nicht eigentlich Hex ?
8h + 30h = 38hWeil du hast geschrieben das ich das Ergebniss in ein ASCII Code umgewandelt habe.
char Octal Dec Hex Description
8 70 56 38 Eight
-
tasm schrieb:
Hat sich schon erledigt ich hab mich nur von der Wikipedia ASCII Tabelle verwirren lassen aber jetzt hab ichs verstanden.
Wobei eine Frage habe ich noch.
ASCII 38 = 8 ?? ( In der Tabelle steht nicht aus welchem Zahlensystem nun die 8 ist. Die Tabelle: http://www.robelle.com/smugbook/ascii.html )
Ist die 38 nicht eigentlich Hex ?
8h + 30h = 38hWeil du hast geschrieben das ich das Ergebniss in ein ASCII Code umgewandelt habe.
char Octal Dec Hex Description
8 70 56 38 EightDas Zahlensystem spielt doch keine Rolle, der Wert ist immer der selbe.
8 + 30h = 38h -> 56 im Dezimalen.