[cpl] [Tema 4] Task-ul 4, partea 1

Alexandru Guduleasa alexandru.guduleasa at gmail.com
Wed Dec 30 17:26:01 EET 2015


Pentru acest task puteți considera că imediatul încape în 8 biti și să
dați eroare (cu report_fatal_error) în caz contrar.
Pe caz general, dacă imediatul nu încape in 8 biți, trebuie folosită o
pseudo-instrucțiune de MOV_I32 care să inițializeze un registru cu
acest imediat.
SP-ul va fi apoi modificat cu acest registru, nu direct cu imediatul.
Folosind această abordare, un registru trebuie rezervat pentru a putea
fi folosit ca destinație a pseudo-instrucțiunii MOV_i32.
Conform calling convention-ului, un singur registru este valid pentru
această rezervare. :)

Spor
Alex


2015-12-30 16:23 GMT+02:00 Georgiana Diana via cpl <cpl at cursuri.cs.pub.ro>:
> Buna,
> Ne-ati putea da un hint pentru rezolvarea primei parti din task-ul 4 :D ?
>
> O idee de rezolvare ar fi urmatoarea: sa ma folosesc de un
> MachineInstrBuilder si de instructiunea ADDI, iar DestReg si SrcReg sa fie
> ambele SP si imm=Amount.
>
> Totusi, nu cred ca este corect, pentru ca ADDI foloseste ca operand imediat
> o valoare pe 8 biti, iar deplasamentul este pe 64 de biti.
>
> Este corecta aceasta abordare ? Daca nu, cum am putea face altfel ?
>
> Georgiana
>
> --
> Georgiana Diana Ciocirdel
> Polytechnic University of Bucharest,
> Computer Science
>
> _______________________________________________
> cpl mailing list
> cpl at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl
>


More information about the cpl mailing list