算术运算与浮点数运算的深入解析
逻辑系统与布尔表达式
在编程中,存在两种逻辑系统。一种是算术逻辑系统,它使用非零值表示真,0 表示假;另一种是布尔逻辑系统,使用像 0 和 1 这样的两个不同值分别表示假和真。你可以根据方便选择使用这两种系统。
例如,对于布尔表达式 b = ((x == y) and (a <= d)) || ((z - a) != 5); ,可以将其转换为如下简单表达式:
mov eax, x
cmp eax, y
sete al ; AL = x == y;
mov ebx, a
cmp ebx, d
setle bl ; BL = a <= d;
and bl, al ; BL = (x = y) and (a <= d);
mov eax, z
sub eax, a
cmp eax, 5
setne al
or al, bl ; AL = ((x == y) && (a <= d)) ||
mov b, al ; ((z - a) != 5);
在处理布尔表达式时,不要忘记可以通过代数变换简化它们来优化代码。
机器和算术惯用法
在编写汇编语言代码时,一些算术运算和 x86 - 64 指令有其独特之处,我们可以利用这些特点。虽然有些人认为使用机器和算术惯用法是一种“技巧编程”,在编写良好的程序中应尽量避免,但很多这样的惯用法是广为人知且常见于汇编语言程序中的。 <
超级会员免费看
订阅专栏 解锁全文
64

被折叠的 条评论
为什么被折叠?



