Python的pow函数:如何将pow函数集成到汇编语言中

2024-06-09 08:44:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设计一个用Nasm编写的操作系统。目的是在不进行多任务处理的情况下,在受保护的mod中计算低级别系统上的Fermat素性测试。我在DPMI中使用DOS级别的系统调用。代码是标准的,我不认为用长代码来解释这个问题是个好主意。 问题是关于python的pow(int,index,module)函数。很明显,我会计算非常长的数字,长度约为10^100000000。(示例:2**332200000-1)代码从用户处获取输入或从文件中读取。将这个大整数缓存到文件或内存中大约需要40Mb。 这意味着我只需在protected mod中为40Mb大小分配一个内存。 正如你所知,费马的小定理正在发挥作用:


如果p是素数

a是整数,gcd(a,p)=1

a**(p-1)模型p=1


在python中,它的计算就像一个符咒,没有付出任何额外的努力,但像2^332200000-1这样的普通整数速度很低,我决定制作自己的操作系统外壳,在计算机启动时启动。原因是要最大限度地利用我的计算机系统,而不需要任何系统调用,这会降低我的计算速度。我有以下问题:

  • 有没有一个网站可以让我观察和计算python幂函数的汇编代码

  • 如果是或否,您能给我一个提示,如何在极短的时间内快速有效地完成这项工作

这个想法非常基本和简单:

4字节整数在程序集中不起作用。因此,决定将长十六进制整数从文件读入分配的内存(40MB)。当我用这个非常长的整数进行计算时,例如乘以2,然后我将每4字节的整数向右滚动到第二个内存空闲的位置。如果有进位rest,这将添加到第二个4字节计算中,依此类推。可以对这些长整数使用内存。所有的东西都已经设计好了,但在装配中有意义的关键还在研究阶段。你能以某种方式帮助或通知我吗

同样,如何在汇编中使用非常非常长的数字进行计算,以及如何制作一个幂函数python,里面有指数和模。这在代码形式中看起来是什么样的


Tags: 内存代码目的mod字节系统情况数字