Base64 Konvertierung mit MASM



  • Hallo zusammen,

    ich möchte in meinem Programm mit einer Base64 Konvertierung ausstatten.
    Das umwandeln von "normalen" ASCII Zeichen nach Base64 klappt wunderbar und das habe ich in 4 Stunden geschafft 🙂

    Jedoch funktioniert meine Rückkonvertierung von Base64 nach ASCII überhaupt nicht richtig. Ich scheitere schon an folgendem Code:

    xor eax, eax
    		mov al, 00011011b
    		rol eax, 6d
    		or al, 00110110b
    		rol eax, 6d
    		or al, 00110001b
    		rol eax, 6d
    		or al, 00101001b
    		rol eax, 14d
    

    zur Erklärung. Ich habe die Buchstaben "o", "l" und "i".
    (Drei ASCII Buchstaben ergeben 24bit Daten, diese teile ich auf 4x 6Bit auf)

    Ich versuchen oben diese 4x 6Bit aneinander zu reihen und dann in einem Buffer mit stosd zu befördern und auszugeben.

    wenn ich 3x 8 Bit und jeweils rol eax, 8 nutze funktioniert das ganze wie es soll. Er gibt mir dann "oli" in der Textbox zurück.
    Der folgende Codeabschnitt funktioniert.

    xor eax, eax
    		mov al, 01101111b
    		rol eax, 8d
    		or al, 01101100b
    		rol eax, 8d
    		or al, 01101001b
    		rol eax, 8d
    

    Ich hoffe jemand versteht was ich vorhabe und kann mit sagen woran es liegt.

    Gruß, Nicky



  • supernicky schrieb:

    Ich hoffe jemand versteht was ich vorhabe und kann mit sagen woran es liegt.

    Du shiftest zu weit. Statt rol eax,14d muss es rol eax,8d heißen.

    viele grüße
    ralph



  • rkhb schrieb:

    supernicky schrieb:

    Ich hoffe jemand versteht was ich vorhabe und kann mit sagen woran es liegt.

    Du shiftest zu weit. Statt rol eax,14d muss es rol eax,8d heißen.

    viele grüße
    ralph

    Hallo Ralph,

    habe mich von den 3x 6Bit verleiten lassen.. nun läufts aber..
    Ganz schöner Aufwand für eine Base64 Konvertierung 🙂

    Gruß, Nicky


Anmelden zum Antworten