Code: Alles auswählen
$t
Code: Alles auswählen
$t7
Code: Alles auswählen
$t1
Code: Alles auswählen
$t2
Code: Alles auswählen
$t0
Dann sind das bei
Code: Alles auswählen
$t 8
Dann gibt es
Code: Alles auswählen
$s0
Code: Alles auswählen
$s7
Code: Alles auswählen
$t8
Code: Alles auswählen
$t9
Code: Alles auswählen
10 $t
Code: Alles auswählen
$t
Code: Alles auswählen
AX, BX, DX, CX, SP, BP, SI, DI
Und -
Code: Alles auswählen
$t0
Code: Alles auswählen
$t9
Dann was auch noch wichtig ist -
Code: Alles auswählen
$s0
Code: Alles auswählen
$s7
Das sind einfach gesicherte Variablen. Ob es das bringt, weiss ich nicht. Sind halt gesicherte Variablen.
Meinetwegen. Was heisst, das schon. also kann man
Code: Alles auswählen
$t0 bis $t9
Code: Alles auswählen
$s0 bis $s7
Was man nicht verwenden kann, sind die letzten 4. Dazu gehört, die muss man nicht wissen, was das ist
Code: Alles auswählen
$gp - Data Segment Pointer
$sp - Stack Pointer
Code: Alles auswählen
$fp
Code: Alles auswählen
$ra
Also
Code: Alles auswählen
$sp
Code: Alles auswählen
$gp - Data Segment Pointer
$sp - Stack Pointer
$fp
$ra
Code: Alles auswählen
$a
Code: Alles auswählen
$a
Code: Alles auswählen
$s
Code: Alles auswählen
$t
Code: Alles auswählen
$v
Code: Alles auswählen
$a
Code: Alles auswählen
$v
Der Rest ist egal
Dann gibt es
Code: Alles auswählen
$zero
Die Befehle zunächst kriege ich hin - was ich halt nie hinschreibe, ist halt move
Ja, laden und speichern. Speichern heisst, vom Register im RAM und Laden heisst, vom RAM ins Register
Und dann fehlt das MOVE vom Register ins Register
Also
Code: Alles auswählen
lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
Code: Alles auswählen
move
Code: Alles auswählen
and, andi
or, ori
xor, xori
not*, abs*, neg*, rem*
Code: Alles auswählen
add, addi, addiu
sub
mult, multu
div, divu
Code: Alles auswählen
jal
jalr
j, b*, jr
jal
jalr
beq, bne
beqz*, bnez*
blt*, ble*
bltz, blez*
bgt*, bge*
bgtz, bltz.
Bei Intel, sind das ja zwei Sachen. Sie
Code: Alles auswählen
CMP Compare
Und JE, JNE, JG, JNG, ...
Dann haben wir
Code: Alles auswählen
seq, sne
sgt
sge
sle
slt
Code: Alles auswählen
sll, srl
Code: Alles auswählen
Shift Left Logical
Shift Right Logical
Das ist, weiss ich nicht, nobel eine Rotation
Code: Alles auswählen
rol und ror
Ausser natürlich gleitkomma, aber das können wir nachher immer noch machen. Jetzt steht hier aber eine Addresse und das ist gut
http://courses.missouristate.edu/kenvol ... Intro.html
Das ist der MARS Simulator. Die schlagen MARS vor. Ich denke auch, das ist besser.
Was ich nicht weiss, da muss man halt, das muss man im Vorbei fliegen lernen. das ist natürlich das A und O
Also, die Segmente, die gibt man ja mit dem entsprechenden Label
an. Also bei TASM 8086, halt .DATA, moderne Schreibweise und .CODE und sonst heissen die halt
Code: Alles auswählen
.text
.data
Da muss man sich halt merken, da steht
Code: Alles auswählen
.data
Code: Alles auswählen
l1:
Dann
Code: Alles auswählen
.byte
Code: Alles auswählen
.word
Eben
Code: Alles auswählen
byte
word
halfword wahrscheinlich
doubleword
Dann
Code: Alles auswählen
.text
Code: Alles auswählen
main:
Dann können wir anfangen. Als erstes hole ich mir
Code: Alles auswählen
MARS