2009-10-28 89 views
0

我正在为使用MIPS架构的程序集编写一个程序,而且我很难弄清楚如何获取用户的输入字符并将其存储在寄存器中以进行处理。程序集编程和中断处理

该程序将打开一个控制台,输出一条消息,然后用户可以输入一个字符,然后这决定了程序中接下来应该发生的事情。

就像我说的,我很难找出如何抓住角色,以便我可以在程序中采取行动。

感谢

+0

这是什么都与中断处理呢?你的问题有点含糊...... – Artelius 2009-10-28 01:43:28

+0

我的理解是,程序将处于无限循环,然后当用户按下一个键时,这将导致中断,更改寄存器,然后说中断将不得不被处理并控制回到现场发生的循环。 对不起,我的问题含糊不清。我不确定如何进一步澄清。 谢谢 – ihtkwot 2009-10-29 01:54:02

+0

我想我的问题是使用MIPS架构,我需要修改哪些寄存器,以便识别,存储和处理来自键盘的输入。 希望这更清楚。 – ihtkwot 2009-10-29 01:58:30

回答

0

这是一个非常好的起点:MIPS Quick Tutorial

下面是本教程

li $v0, 5   # load appropriate system call code into register $v0; 
        # code for reading integer is 5 
syscall   # call operating system to perform operation 
sw $v0, int_value # value read from keyboard returned in register $v0; 
        # store this in desired location 

你会不会直接与中断,带你任意组装工作的一个片段写在用户空间。

0

编写异常代码。中断(例外)服务例程从0x80000180开始(在QtSpim,PCSpim上) 读取键盘寄存器。数据在0xFFFF0004。抓住字符。然后从异常中返回。

或者,您可以在0xFFFF0000处轮询键盘状态。当就绪位打开时,读取数据。

jjc.hydrus.net/cs61c/handouts/interrupts2.pdf