Să se implementeze un program în limbaj de asamblare care efectuează conversia unui număr într-o bază dată și afișează rezultatul. Numărul ce trebuie convertit este un număr întreg pozitiv pe 32 de biți, iar baza poate să fie între 2 și 16.
Programul va include în momentul asamblării un fișier ce conține inputul format din două variabile:
Exemplu de fișier de input:
numar dd 621 baza dd 16
Acest fișier se va numi input.inc și trebuie să fie inclus în fișierul sursă ce conține implementarea temei, în secțiunea de date (imediat după section .data). Găsiți în arhiva cu resursele temei un fișier de la care puteți începe implementarea.
Programul trebuie să afișeze pe o singură linie numărul obținut sub forma unui șir de caractere. În cazul în care baza nu este una validă, se va afișa mesajul “Baza incorecta”.
Tema poate fi testată pe platforma vmchecker sau local folosind checker-ul din arhiva cu resursele temei.
Arhiva conține o serie de fișiere de intrare în directorul inputs și fișiere ce conțin rezultatele așteptate pentru fiecare test, în directorul outputs. Verificarea acestor teste este făcută automat de către checker.
Fișierul README din arhivă conține instrucțiuni despre folosirea checker-ului.
Temele vor trebui încărcate pe platforma vmchecker (în secțiunea IOCLA) și vor fi testate automat. Arhiva încărcată va fi o arhivă .zip
care trebuie să conțină:
tema1.asm
README
ce conține descrierea implementăriiPunctajul final acordat pe o temă este compus din:
Temele care nu trec de procesul de asamblare (build) nu vor fi luate în considerare.
putchar
din biblioteca standard C sau macro-ul PRINT_CHAR din SASM (găsiți aici mai multe detalii).printf
sau puts
pentru afișarea oricăror alte informații (mai puțin caracterele ce compun un număr convertit).Deîmpărțit | Împărțitor | Cât | Rest |
---|---|---|---|
AX | Registru pe 8 biți | AL | AH |
DX:AX | Registru pe 16 biți | AX | DX |
EDX:EAX | Registru pe 32 de biți | EAX | EDX |
Cu alte cuvinte, în funcție de dimensiunea deîmpărțitului și a împărțitorului, trebuie să plasăm numărul pe care dorim să îl împărțim în:
Registrul cu care dorim să împărțim este dat ca argument instrucțiunii div.
Exemple:
Arhiva ce conține checker-ul, testele și fișierul de la care puteți începe implementarea este aici.