[cpl] [Tema 4] Task 1
Grigore Silviu Cătălin
grigore.silviu.catalin at gmail.com
Fri Jan 1 22:37:06 EET 2016
Salut Alex,
>De ce def ORR_RET : InstCplALUdss<"orr", 0b1100>;?
>mai exact de ce si cum s-a ajuns la acel opcode 0b1100. Si noi cum generam
opcode's if we need them.
Opcode-urile sunt folosite pentru a genera direct ELF, iar valorea pentru
ORR_RET a fost obținută din definiția setului de instrucțiuni de ARM
32-bit. Această temă a fost gândită inițial cu scopul de genera atât
asamblare, cât și ELF. Pe parcurs am renunțat la ideea generării de ELF,
însă am eșuat în a actualiza și arhiva de start.
Puteți folosi 0 în cazul câmpului opcode și ignora warning-urile legate de
existența mai multor instrucțiuni care au același opcode.
>Sa zicem ca definim ADDR - cautam in CplInstrFormat si gasim ALU ceeace ar
merge ca definesti ins si outs cum trebuie si stringul >instructiunii si
totul e ok. Dar apoi m-am gandit ca poti avea si situatii gen add rd, rs
care este ALUds dar poate fi si ALUdss, cum se >procedeaza aici?
Setul de instrucțiuni conține o singură versiune pentru ADDR, și anume "add
rd, rs1, rs2" [1].
>Ajungem la SUBR - cautam in CplInstrFormat si nu gasim nimic. Nu am gasit
nici macar ceva care sa nege valoarea cum facem in cazul >asta?
Clasele din CplInstrFormat definesc doar sintaxa instrucțiunilor, nu și
semantica acestora. Nu este nevoie să negi valoarea atât timp cât folosești
mnemonica (șirul în asamblare) corespunzătoare.
Toate cele bune,
Silviu
[1] http://ocw.cs.pub.ro/courses/cpl/teme/tema4#setul_de_instructiuni
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/cpl/attachments/20160101/dbbf3bfd/attachment.html>
More information about the cpl
mailing list