[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