【问题标题】:Using syscall 30 in MIPS assembly language在 MIPS 汇编语言中使用 syscall 30
【发布时间】:2018-12-01 01:34:28
【问题描述】:

您好,我想知道系统调用 30 到底是做什么的,它是如何工作的,以及它可以应用在哪里。

我正在做一个用户有一定时间输入字符串的项目。如何使用 syscall 30 设置时间限制?

谢谢!

【问题讨论】:

  • Syscall 30 是一种调用操作系统或其他监控软件的方式。这是一个通用术语,与任何特定机器没有太大关系。 您的操作系统是什么?答案将回答系统调用的作用,这是任何人回答“如何从程序集中使用该系统调用?”之前的起点。

标签: mips system-calls mips32


【解决方案1】:

MIPS 中的syscall 功能实际上是一种轻松调用某种形式的系统软件的方法,操作系统就是一个例子。

例如,this page 详细说明了MARS 的系统调用,而this one 用于SPIM,这是教育机构提供的毫无疑问许多系统环境中的两个。

syscall 30 的作用完全取决于您使用的系统软件。 可能您可能正在使用 MARS,因为该系统上的 syscall 30 会为您提供当前时间。如果是这种情况,您可以使用以下伪代码对操作设置时间限制:

syscall 30 to get current time
set start time to current time
while (current time - start time) is less than time limit:
    do something intelligent
    syscall 30 to get current time

当然,您需要将其转换为 MIPS 汇编代码(作为您教育的一部分),能够理解自然语言的汇编器很少 :-)

【讨论】:

  • 我正在使用 MARS。存储在 $a0 中的低 32 位只是作为一个大数字出现?我如何将其解释为时间值?
  • 塞巴斯蒂安,它在我给的链接中:服务 30 - 系统时间来自 java.util.Date.getTime() 自 1970 年 1 月 1 日以来的毫秒数。
猜你喜欢
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多