我们可以使用 syscall 用 spim 打印一些东西,比如:
la, $a0, mes
li, $v0, 4
syscall
但是在我之后tftp 0 file.bin
它boot
并没有在串口上打印任何东西。
而在 X86int 10h
工作。
您必须知道目标系统上的串行端口接口是什么样的。例如,如果Write Control
和Write Data
寄存器位于SPIM 中0xFFFF0008
,0xFFFF000C
您可以执行以下操作(未经测试):
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: