计算机编程中的数值运算与分支循环
1. 大数的加减法运算
在计算机编程里,常规的 add 和 sub 指令适用于字节、字或双字长度的操作数。不过,双字所能存储的值范围虽大(从 -2,147,483,648 到 2,147,483,647),有时仍需对更大的数进行算术运算。对于大数的加减法,可按位分组进行操作。
以两个 64 位长的数相加为例,具体步骤如下:
1. 先取每个数的低 32 位,使用普通的 add 指令相加。若最高位有进位,进位标志 CF 会置为 1,否则为 0。
2. 接着使用特殊的加法指令 adc (带进位加法)来加接下来的 32 位。在相加两个高 32 位数时,若之前的加法使 CF 置为 1,则在结果存入目标位置前,会额外加 1。 adc 指令同样会设置 CF ,此过程可对更多位组持续进行。
以下是示例代码,假设要相加的两个数存于数据段的四个双字中:
Nbr1Hi DWORD ? ; High order 32 bits of Nbr1
Nbr1Lo DWORD ? ; Low order 32 bits of Nbr1
Nbr2Hi DWORD ? ; High order 32 bits of Nbr2
Nbr2Lo DWORD ? ; Low order 32 bits of Nb
大数运算与跳转指令详解
超级会员免费看
订阅专栏 解锁全文
1256

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



