0

我们可以使用 syscall 用 spim 打印一些东西,比如:

    la, $a0, mes
    li, $v0, 4
    syscall

但是在我之后tftp 0 file.binboot并没有在串口上打印任何东西。

而在 X86int 10h工作。

4

1 回答 1

2

您必须知道目标系统上的串行端口接口是什么样的。例如,如果Write ControlWrite Data寄存器位于SPIM 中0xFFFF00080xFFFF000C您可以执行以下操作(未经测试):

la $a0, my_asciiz_string
li $a1, 0xFFFF0008

loop:
  lw $t0, ($a1)  # check if the serial port is ready to be written to
  beq $t0, $zero, loop
  nop

  lbu $t0,($a0)  # load one character from the string
  beq $t0,$zero,done
  nop

  addiu $a0,$a0,1
  sw $t0, 4($a1) # write the character to the serial port
  j loop
done:
于 2013-06-19T08:42:57.477 回答