GMP ..二进制执行

时间:2010-01-27 17:09:14

标签: internals gmp

在GMP图书馆......

如何对整数上的操作进行内部执行? 像6 = 0110,4 = 0100 ..和 6 + 4 = 0110 + 0100 .. 在乘法,除法和其他操作的情况下会发生什么! 它如何控制溢出位和其他东西......

1 个答案:

答案 0 :(得分:0)

大多数基本的多精度例程都是用汇编代码编写的,并利用特定的CPU指令。

另外,基本指令是“ADD-with-Carry”。该指令将添加两个CPU寄存器的内容和进位,然后将结果保存到寄存器中,并在有溢出时设置进位。要添加两个多精度数,进位位清零,然后添加每个多精度值中的第一个字(通常为C“unsigned int”或“unsigned long”),保存结果,并设置进位为下一个循环。细节是处理不同大小的输入等。

对于乘法,基本指令“MULT”只是将两个寄存器相乘,并将结果的上半部分存储在一个CPU寄存器中,将结果的下半部分存储在另一个CPU寄存器中。

有关如何在CPU上实际完成的详细信息,您需要研究CPU的指令集。