assembly - LC3:TRAP x21 在简单程序中无法正常工作。在模拟器中显示为 TRAP xD0
问题描述
我正在编写一个程序,它从 0-9 中获取一个输入数字 (n) 并输出它的双精度数 (2n)。
但是,一旦模拟器到达 TRAP x21 指令,如此处所示,它就不起作用。您可以看到我在该指令之前输入 5 和 10 是如何在 R0 中的。它没有打印 10,而是什么都不打印并显示错误A trap was executed with an illegal vector number.
我在这里做错了什么?
谢谢!
我的代码:
.ORIG x3000
LD R1, ASCII
TRAP x23
ADD R1, R1, R0
AND R0, R0, #0
ADD R0, R1, R1
TRAP x21
ASCII .FILL #-48
.END
解决方案代码:
.ORIG x3000
LD R6, ASCII
LD R5, NEGASCII
TRAP x23
ADD R1,R0,x0
ADD R1,R1,R5
ADD R2,R1,R1
ADD R0,R2,R6
TRAP x21
ASCII .FILL x30
NEGASCII .FILL xFFD0
.END
解决方案
推荐阅读
- ruby - 如何处理来自外部文件的 Sinatra 错误?
- python - 解析 XML 并转换为 CSV python
- julia - 情节.vline!在新的 Plots 版本中无法识别函数
- flutter - 如何在构造时在状态类中使用有状态的小部件参数而不将小部件添加到树中?
- javascript - 地图上没有出现点的图层 OpenLayers
- asp.net-core - 如何在发送响应之前获取防伪令牌?
- c - 将类型 int 乘以 struct 时出错
- network-programming - 去中心化点对点
- flutter - 约束定位小部件的堆栈区域
- google-cloud-platform - 在 BigQuery 中的多个表上运行更新