Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly PSR[15]-LC-3-中断_Assembly_Interrupt_Lc3 - Fatal编程技术网

Assembly PSR[15]-LC-3-中断

Assembly PSR[15]-LC-3-中断,assembly,interrupt,lc3,Assembly,Interrupt,Lc3,据我所知,陷阱在PSR中设置了特权位。我的问题是,是否可以手动更改PSR权限 例如,我创建并调用我自己制作的陷阱,假设陷阱x30获取一个字符,这使我处于特权模式,在该陷阱中,我将PC和PSR保存在内存位置,然后用另一个程序的保存的PC和PSR替换管理堆栈中的当前PC和PSR,这是一段代码,位于操作系统之外。现在,不能使用RTI指令返回陷阱,因为我没有处于特权模式,所以我想更改PSR的[15]位,可能吗?谢谢大家! 您可以使用另一个陷阱返回到特权代码,以执行您希望返回到最初中断的进程的操作。陷阱可

据我所知,陷阱在PSR中设置了特权位。我的问题是,是否可以手动更改PSR权限


例如,我创建并调用我自己制作的陷阱,假设陷阱x30获取一个字符,这使我处于特权模式,在该陷阱中,我将PC和PSR保存在内存位置,然后用另一个程序的保存的PC和PSR替换管理堆栈中的当前PC和PSR,这是一段代码,位于操作系统之外。现在,不能使用RTI指令返回陷阱,因为我没有处于特权模式,所以我想更改PSR的[15]位,可能吗?谢谢大家!

您可以使用另一个陷阱返回到特权代码,以执行您希望返回到最初中断的进程的操作。陷阱可能是一个简单的“让渡时间给他人”或更复杂的陷阱。从某种意义上说,这是操作系统的典型特征:它们处理一个进程的中断,但恢复另一个进程,只是在稍后恢复第一个中断的进程。明白了,谢谢,这很有意义。但一般来说,是否可以在不进入操作系统的情况下手动更改PSR的特权或优先级状态?再次感谢!依我看,用户代码不应该拥有提升自身权限的权限。其想法是操作系统是可信的,而用户代码则不那么可信。因此,询问操作系统是提高权限的方法。更具体地说,对于LC-3,没有mov到PSR指令,如果有,它将像RTI一样具有特权(否则,它将只更新条件代码,而不影响特权位)。