内核如何在 MIPS 中存储用户输入的读取字符串?
How does the kernel stores the read string input from the user in MIPS?
从键盘读取和存储字符串输入的指令在 MIPS 中不明确。读取的字符串如何放入标签命名空间?
.data
namespace: .space 20
.txt
li $v0,8
la $a0,namespace
li $a1,20
syscall
内核可以使用 user-space 内存映射和地址,您将 $a0
中的地址传递给它。您还在 $a1
中传递了缓冲区长度,因此它知道允许存储多少字节。
因此内核从I/O设备获取数据,然后使用sw
或sb
指令将其存储到您传递的缓冲区中。
(或者,如果您使用的是 MARS / SPIM,syscall
会陷入解释器/仿真器/模拟器代码,并且根本不是 运行 MIPS 指令。与真正的 MIPS 机器不同运行 Linux 或其他。)
从键盘读取和存储字符串输入的指令在 MIPS 中不明确。读取的字符串如何放入标签命名空间?
.data
namespace: .space 20
.txt
li $v0,8
la $a0,namespace
li $a1,20
syscall
内核可以使用 user-space 内存映射和地址,您将 $a0
中的地址传递给它。您还在 $a1
中传递了缓冲区长度,因此它知道允许存储多少字节。
因此内核从I/O设备获取数据,然后使用sw
或sb
指令将其存储到您传递的缓冲区中。
(或者,如果您使用的是 MARS / SPIM,syscall
会陷入解释器/仿真器/模拟器代码,并且根本不是 运行 MIPS 指令。与真正的 MIPS 机器不同运行 Linux 或其他。)