将带有数组的whileloop从Python转换为程序集

2024-05-19 08:37:10 发布

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

为了备战下学期,我正在努力学习汇编语言,这是一门我根本不熟悉的语言。我已经知道了计算机代码和汇编代码的基础知识,而且我以前在汇编中做过while循环。但是,这次我想使用数组。在

我试图将Python中的一个简单while循环转换为汇编代码,但需要一些帮助。在

i = 2
numbers = []
while i <= 255:
    i -= 1
    numbers.append(i)
    i *= 3
    if i < 255:
        numbers.append(i)
    else:
        break

我该怎么做?一旦我有了它应该是什么样子的想法,我就可以开始研究代码并开始理解它。在

我使用的计算机架构是AVR ATMEGA328P

这是我之前做的for循环。这很随意,可能效率不高,我只是在练习:

^{pr2}$

Tags: 代码语言if架构计算机数组elsenumbers
1条回答
网友
1楼 · 发布于 2024-05-19 08:37:10

这个问题远远超出了我们通常可以在问题中回答的范围。Python是一种非常高级的语言,所以一个好的开始可能是学习一些C语言,尤其是关于指针的内容。C基本上是计算机自身语言之上的一层。它允许以更跨平台的方式编写程序。

像数组和引用这样的东西并不像它们的高级对应项、列表和变量那样表现。数组背后的思想是存储一个连续的数据区域。在非常简单的实现中,它们是使用地址指针存储的,并通过对该指针执行数学运算来查找附近的地址来建立索引。在边界检查的实现中,NULL终止符值或指示大小的头可用于防止读取数组外的数据。

高级语言和低级语言之间的层通常比语言本身更难研究,因为它需要理解这两个部分的设计,以便理解它们之间的联系。通过简单的google搜索,您可以找到各种asm教程,例如How to make an assembly array。请注意,asm是一系列相互连接的语言的广义术语,这些语言在其体系结构中是唯一的。

祝您旅途好运,可以在聊天室(如我们的HCF)、irc或discord服务器中提出类似这样的广泛问题。如果有什么特别的事情给你带来麻烦,来这里写一个问题。

相关问题 更多 >

    热门问题