MIPS — print einen Wert in eine variable

Folgenden code:

.text
.ent    main
.type   main, @function
main:
.frame  $fp,24,$31      # vars= 8, regs= 1/0, args= 0, gp= 8

addiu   $sp,$sp,-24
sw  $fp,20($sp)
move    $fp,$sp
li  $2,1            # 0x1
sw  $2,12($fp)
li  $2,1            # 0x1
sw  $2,8($fp)

    # now print -------------------------------------
    li      $2,1
    li      $a0,10
    syscall

move    $2,$0
move    $sp,$fp
lw  $fp,20($sp)
addiu   $sp,$sp,24
j   $31
nop

Wie habe ich generieren, diese durch das schreiben eines einzigen Programm:

int main(){
  int i = 1;
}

Und dann einfach Hinzugefügt, die syscall-Aussagen selbst. Ich bin nicht sicher, ob dies richtig oder falsch ist.

  • Funktioniert es wie erwartet? Sonst wirst du angeben müssen, die Umgebung, die Sie versuchen zu kompilieren/diesen code ausführen, und die Fehler, die Sie hier bekommen.
  • Ich meine, es ordnungsgemäß kompiliert und läuft ohne Fehler. Was Sie nicht tun — ist, drucken Sie das verdammte Ding!
  • Und was sind Sie mit diesem? SPIM/MARS? Was ist, wenn Sie ein Programm ausführen, druckt nur ein integer ist und nichts anderes (also keine, die stack-frame setup-code ein, die Sie vom compiler)?
InformationsquelleAutor p0lAris | 2013-04-16
Schreibe einen Kommentar