- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在此 question ,一些答案显示了如何在不使用“if”语句的情况下做出决定,但是我怀疑这是可能的,因为“if”不是生成 jump
的唯一语句。指示。
给定一种固定的编译语言(例如 C++),生成的程序集是否可以在不使用 jump
的情况下进行某种决策?和 goto
指示?
请给出一个简单的 if/else 语句的替代示例,该语句在肯定回答的情况下不使用此类说明。
最佳答案
ARM 架构有一个有趣的条件执行特性。在全 ARM 模式下运行,几乎每条指令都可以附加一个条件。这些条件与 B
上使用的条件相同。牧场指示。一条指令,如 add r0, r0, #15
会一直执行,但是像 addeq r0, r0, #15
这样的指令只有在设置了零标志时才会执行。一个等效的使用分支是:
beq afteradd ; skip add if equal
add r0, r0, #15 ; add 15 to R0
afteradd:
IT
操作说明。该指令将在不使用分支的情况下创建“if-then”结构。
IT
构造实际上是 ARM 统一汇编语言的一部分,无论您是为 ARM 还是 Thumb-2 编写代码,都应该使用它。这是上面的条件添加的 UAL 版本。
it eq ; if equal
addeq r0, r0, #15 ; then add 15 to r0
IT
构造可以包含不止一条指令。使用系列
T
和
E
在指令中,您可以添加更多条件指令。在下面的例子中,我们将 15 添加到
R0
如果设置了零标志,否则我们将从
R0
中减去 15 .
ITE
字面意思是,如果-那么-其他。下面的第一条指令应该有一个与您的
ITE
匹配的条件条件,然后第二条指令将成为“else”并且应该具有与
ITE
相反的条件健康)状况。
ite eq ; if equal
addeq r0, r0, #15 ; then add 15 to r0
subne r0, r0, #15 ; else subtract 15 from r0
关于assembly - 是否可以在不使用 `jump` 和 `goto` 的情况下在汇编中做出决定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39289549/
我创建了一个库项目,然后构建它,获取 .aar 并解压缩它。获取包含库的 classes.jar 文件,并将其添加到另一个项目中。该项目识别我的文件,我可以从中调用方法和函数。我的问题是我尝试从我的库
这不是现实世界的问题,我只是想了解如何创建 promise 。 我需要了解如何为不返回任何内容的函数做出 promise ,例如 setTimeout。 假设我有: function async(ca
我是 Promise 的新手。我写了两个例子: 第一个是: new RSVP.Promise(function (resolve, reject) { setTimeout(function
我有一个 nodejs (express) 作为服务器端,一个 angular 6 作为客户端。在服务器中我有中间件功能,可以进行 session 检查。如果 session 无效或不存在,我想向客户
我有一个 nodejs (express) 作为服务器端,一个 angular 6 作为客户端。在服务器中我有中间件功能,可以进行 session 检查。如果 session 无效或不存在,我想向客户
我有四个 I/O 操作:A、B、C 和 D。它们中的每一个都应该使用 vertx.executeBlocking 来执行。我应该有以下行为: //PSEUDOCODE waitForExecuteBl
我是一名优秀的程序员,十分优秀!