assembly - 如何在 ARMv7 Thumb-2 程序集中读取条件标志?
问题描述
我正在使用带有 Thumb-2 指令的 ARMv7 处理器。
我已经执行了ADD
,SUB
或CMP
. 现在我想将条件标志移动LE
到r2
. 在此之后,r2
应包含0
或1
。
我一直在查看 Thumb-2 手册,但没有找到条件 MOV 指令或读取标志的特殊指令。
最有效的方法是什么?提前致谢!
解决方案
您需要使用ite
(if-then-else) 指令开始一个条件块,然后只使用条件赋值:
ite le @ if-then-else (le)
movle r2, #1 @ if (le) then r2 = #1
movgt r2, #0 @ else r2 = #0
通常,如果您在 Thumb-2 中使用适当的 IT 指令作为前缀,则可以使用任意条件指令。阅读手册了解详情。
推荐阅读
- javascript - React 转换服务器响应(向对象添加额外字段)
- java - 如何知道 runtime.exec() 应用程序窗口是否处于活动状态(在 java 中)
- c# - 如何在 ASP.NET Core 中添加 Mime 类型
- c# - ASP.NET MVC C# Web App - 从数据库中过滤/搜索得到错误
- selenium-webdriver - Firefox 驱动程序未导航到新选项卡
- python - 无法使用 Ctrl C 命令在 Python 脚本中杀死 Greenlets
- spring-boot - 构建 Jnuit 测试时无法加载应用程序上下文异常
- python - Spinnaker 管道即代码
- java - 在我的模型中引入分支
- reactjs - 在 React 中进行倒计时