我是靠谱客的博主 拉长冰棍,最近开发中收集的这篇文章主要介绍x86汇编_短路求值-AND / OR运算符_笔记_39,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

汇编语言很容易实现AND运算符的复合布尔表达式。考虑下面的伪代码,如果a1小于b1则不需要关心b1是否大于c1,这种思路就叫短路求值。

if (a1 > b1) AND (b1 > c1)
X = 1
end if

短路求值在汇编中有以下两种方法:

cmp a1,b1
ja L1
jmp next
L1: cmp b1, c1
ja L2
jmp next
L2:
mov X, 1
next:
cmp a1,b1
jbe next
cmp b1,c1
jbe next
mov X, 1
next:

第二种汇编方法能减少29%的代码量。

当复合表达式包含的子表达式是用 OR 运算符连接的,那么只要一个子表达式为真,则整个复合表达式就为真。也是运用短路求值的思路,只要第1个条件满足则无需理会后面有多少个条件以及它们的结果。

if (a1 > b1) OR (b1 > c1)
X = 1
cmp a1, b1
ja L1
cmp b1, c1
jbe next
L1: mov X, 1
next:

最后

以上就是拉长冰棍为你收集整理的x86汇编_短路求值-AND / OR运算符_笔记_39的全部内容,希望文章能够帮你解决x86汇编_短路求值-AND / OR运算符_笔记_39所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部