10、计算机编程中的数值运算与分支循环

大数运算与跳转指令详解

计算机编程中的数值运算与分支循环

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值