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

问题描述

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


如果 p 是素数,

a 是整数并且 gcd(a,p)=1 那么,

a**(p-1) mod p = 1


在 python 中,它被计算得像一个魅力,没有额外的努力它会回馈很多,但是像 2^332200000-1 这样的非常普通的整数速度很慢,我决定制作自己的操作系统外壳,当我的计算机启动时触发。原因是要充分利用我虔诚的计算机系统,而无需任何降低计算速度的系统调用。我有以下问题:

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

  • 如果是或否,您能否给我一个提示,如何在非常短而快速的组装中有效地做到这一点?

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

4 字节整数在汇编中不起作用。所以决定从文件中读取长十六进制整数到分配的内存(40Mbyte)。当我使用这个很长的整数进行计算时,例如乘以 2,然后我将每 4 个字节整数滚动到第二个无内存位置。如果有剩余进位,这将被添加到第二个 4 字节计算中,依此类推。可以为这些长整数使用内存。一切都已准备就绪,但在组装中发挥作用的关键只是在研究阶段。你能以某种方式帮助或通知我吗。

再次,如何在汇编中使用非常非常长的数字进行计算,以及如何使用指数和模数制作类似于 python 的幂函数。这在代码形式中看起来如何。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...