Zitat von Benedikt Huber <benedikt@xxxxxxxxxxxxxxxxxx>:
Hello,
auch hallo, Der Assembler ist jetzt endlich fertig. Ich hab auch einigen Maschinencode erzeugt und kontrolliert. Habs aber nicht bei allen gemacht. Nach wie vor ist meine Frage im Bezug auf "PREDSET/PREDAND" noch nicht beantwortet worden.
ich hab mit dem binsim angefangen, werd ihn aber erst am Sonntag fertigmachen koennen.
Hm, ist okay.
@josip: falls du am code weiterhacken willst, einfach aendern (aber vielleicht mir bescheidgeben, damit wir uns nicht ueberschneiden). Ein paar Fragen: @sim: Koennte jemand die 8 Felder des p Parameter kommentieren bitte? Ich nehm an meine Struktur (Anhang) mapt irgendwie darauf.
p[x].t .. type p[x].v .. value p[x].s .. label-name Die Reihenfolge ist meist von hinten nach vorne. Also p[0] = rd usw. Bei den LD/ST Befehlen ist es ein bisschen anders, da hab ich es im assembler bei den funktionen dokumentiert.
@asm: Kompiliert bei mir (noch) nicht: asmopcode.c: In function ‘add_instr’: asmopcode.c:489: warning: implicit declaration of function ‘SWAPEND3’ asmopcode.c: In function ‘nop’: asmopcode.c:569: warning: implicit declaration of function ‘SIGT_0’
Versuchs mal jetzt :)
@ISA: Eventuelle Aenderungen bitte unbedingt in isa_final.{excel,pdf} eintragen
@gcc Irgendeine Ahnung, welches Flag man fuer binary constants (e.g. 0b0010) gcc uebergeben muss? Oder kann das der mit Leopard geshipte nicht?
keine Ahnung @Martin: Ich kann keinen SHA1 code nicht assemblieren, weil zu großen Konstanten darin vorkommen. Kannst du das nachbessern? Ich werde morgen jedenfalls meine Examples fertig machen. Und alle Änderungen die ich an der Syntax vorgenommen habe, befinden sich, wie gesagt, im "inttxt" (interpreter text). @all: Momentan sind unsere Adressen für Sprünge so berechnet, dass die erste Instruktion an Adresse 0 liegt. D.h. alle Programme müssten dort beginnen. Wenn wir das nicht wollen, müssen wir eine Möglichkeit der Adressmanipulation zur Verfügung stellen. [a] im Assembler. Mit einer ".org" Anweisung, sagt ich, ab welcher Adresse sich die nächsten Befehle befinden sollen. Bsp: ".org 0x100" Die Adressen sind Instruktionsweise. [b] Der "Uploader" passt die Adressen beim Übertragen zum FPGA an. Bsp: "upld asm.hex 0x200". Bei allen B/CALL wird 0x200 addiert. Hier liegt der Vorteil darin, dass man im voraus noch nicht die Adresse wo sich das Programm mal befinden wird, nicht wissen muss. Vote: [a]: [b]: Günther gute nacht Günther p.s. hab jetzt das "inttxt" auf "txtsim" umbenannt, damit die verwandtschaft zum "binsim" besser sichtbar wird. p.p.s. @Martin: hab im "txtsim" Textsimulator noch ein paar kleinigkeiten Ausgebessert.