Frage zu Assembler aufgabe ?



  • Hallo , ich bin ganz neu in Assembler und habe folgende Frage.

    wir haben folgende Aufgabe in unserem Grundstudium in Informatik bekommen.

    Schreiben Sie in Assembler eine Funktion
    typedef struct mac_t { usigned char mac[8]; } mac_t;

    usigned computeMAC (mac_t *mac ,usigned char * data, usigned data_len);

    die aus den übergebenen daten ein Kartenkomando zur Mac berechnung zusammenbaut , die so gewonnene Datenstruktur an die Funktion.

    void handleAPDU (usigned char *rapdu, usigned char *capdu); übergibt und den ermittelten MAC nach *mac kopiert . Der rückgabewert von computeMac sei das im RAPDU enthaltene Statuswort.

    so irgenwie hab ich probleme das ganze zu verstehen was macht die handleAPDU dann eigendlich hab mal so angefangen und mein code sieht so aus:

    .text
    .global handleAPDU

    handleAPDU:

    pushl %ebp
    movl %esp,%ebp
    movl 8(%ebp),%ebx
    movl 12(%ebp)%ebx

    .text
    .globl computeMAC

    computeMAC:

    pushl %ebp
    movl %esp,%ebp
    movl (%ebp),%eax
    movl 4(%ebp),%eax #rücksprungadresse
    movl 8(%ebp),%eax #mac
    movl 12(%ebp),%eax #data
    movl 16(%ebp),%eax #data_len
    subl 16,%eax # platz reservieren
    subl 16(%ebp),%eax # grösse von data_len
    call handleAPDU

    leave
    ret

    vielleicht kann mir jemand tips geben und dqa helfen vielen dank

    wolfram


Log in to reply