Frage zur Addition



  • Hallo wieso wird hier 8 ausgeben ?

    Ist das so weil mov ah,02h nur 1 Zeichen ausgibt ?

    High Teil
    00

    Low Teil
    38

    Erstes 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 = 38h

    Weil 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 = 38h

    Weil du hast geschrieben das ich das Ergebniss in ein ASCII Code umgewandelt habe.

    char Octal Dec Hex Description
    8 70 56 38 Eight

    Das Zahlensystem spielt doch keine Rolle, der Wert ist immer der selbe.

    8 + 30h = 38h -> 56 im Dezimalen.


Anmelden zum Antworten