ARMsim:输入等待环路swi 0x203 0x202

ARMsim:输入等待环路swi 0x203 0x202,arm,Arm,我正在ARMsim 1.9.1上练习手臂 我想知道如何让程序等待来自主板(蓝色键盘或黑色按钮)的输入。我注意到没有一个按钮模式是0x0,所以我想到了这个解决方案: .text 条目: 检查输入: swi0x203;0x202(相同问题) cmpr0,#0 beq检查输入 mov r0,#0 adr r2第行 swi 0x204 @内存操作数: 行:.asciz“收到输入” 如果我一步一步地执行程序,它工作得非常出色,但是如果我只是运行程序,我需要在识别输入之前按下按钮两次。显然,模拟处

我正在ARMsim 1.9.1上练习手臂

我想知道如何让程序等待来自主板(蓝色键盘或黑色按钮)的输入。我注意到没有一个按钮模式是0x0,所以我想到了这个解决方案:

    .text
条目

检查输入:

swi0x203;0x202(相同问题)

cmpr0,#0

beq检查输入

mov r0,#0

adr r2第行

swi 0x204

@内存操作数:

行:.asciz“收到输入”


如果我一步一步地执行程序,它工作得非常出色,但是如果我只是运行程序,我需要在识别输入之前按下按钮两次。显然,模拟处理器忽略了第一个输入。如何避免此问题?

这似乎是一个UI问题。从一些简短的实验来看,这并不是“模拟处理器忽略了第一个输入”,而是单击run按钮会对焦点造成一些奇怪的影响*,因此在它开始记录单击,甚至再次正确移动鼠标之前,您必须单击窗口中的任何位置(或切换到另一个窗口并返回)。这就是你第一次点击的地方


*从Win32时代起,我记得在对话框控件具有焦点时禁用它被认为是一件坏事,可能会混淆窗口管理器;这可能就是这里发生的情况。

这似乎是一个UI问题。从一些简短的实验来看,这并不是“模拟处理器忽略了第一个输入”,而是单击run按钮会对焦点造成一些奇怪的影响*,因此在它开始记录单击,甚至再次正确移动鼠标之前,您必须单击窗口中的任何位置(或切换到另一个窗口并返回)。这就是你第一次点击的地方


*从Win32时代起,我记得在对话框控件具有焦点时禁用它被认为是一件坏事,可能会混淆窗口管理器;这可能就是这里发生的事情。

就是这样!我刚刚试着按F5而不是按Run按钮来运行程序,但问题没有出现。就是这样!我刚刚试着按F5而不是点击Run按钮来运行程序,但问题没有出现。
.end