Files
CMLeonOS/docs/cmleonos/docs/syscall.md
2026-03-27 21:32:18 +08:00

1.3 KiB
Raw Blame History

MSE Syscall 文档

本文档说明 runbin 命令当前支持的系统调用syscall约定。

前置条件

  • 指令集初始化已在内核完成(FGMSECInstructionSet.Install()
  • 使用 runbin <file> 运行二进制程序

调用约定

  • 当前可用 syscall 数量:3
  • 索引范围:012

syscall 0输出字符串

功能: 将内存中的以 \0 结尾字符串输出到控制台。

参数:

  • R3:字符串起始地址

行为:

  • R3 指向地址开始逐字符读取
  • 遇到 \0 终止输出
  • 不自动换行

syscall 1读取一行输入

功能: 从控制台读取一行文本,并写入可执行程序内存。

行为:

  • 调用 Console.ReadLine()
  • 自动在末尾追加 \0
  • 将结果写入程序内存

返回值:

  • R3:写入字符串的起始地址

syscall 2清屏

功能: 清空控制台屏幕。

行为:

  • 调用 Console.Clear()

最小流程示例

  1. 准备符合 FGMSEC 指令集的二进制文件
  2. 在 Shell 执行 runbin <file>
  3. 程序通过 syscall 与控制台交互(输出、输入、清屏)

注意事项

  • 如果程序调用了未实现的 syscall会导致运行失败
  • 输入输出行为与控制台一致,建议程序自行处理提示文本与换行