如何在汇编中实现数据类型(例如堆栈)?

发布于 2024-12-07 20:35:57 字数 102 浏览 3 评论 0原文

我需要在汇编中实现自定义数据结构。最好,它需要是动态的。类似于 C++/Java 中的链表,其中每个元素都指向下一个元素。请注意,每个元素的大小可能会有所不同。

我该怎么做?

I need to implement a custom data structure in assembly. Preferably, it needs to be dynamic. Something like a linked list in C++/Java where each element points to the next element. Please note that the size of each element may vary.

How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流绪微梦 2024-12-14 20:35:57

与 C 中的情况相同。汇编具有函数和地址空间。从基础开始:您的堆栈需要具备哪些功能?把实际的数据结构放在一边,关注大局。

您所需要的只是一个push() 函数和一个pop() 函数、一个将这些项目粘贴到内存中的位置,以及一个计数器来告诉您已经使用了多少空间。

哦,您可能应该在开始之前检查您的数据结构,因为在 C++ 和 Java(事实上,或任何其他语言)中,推送到堆栈上的对象都不会指向堆栈上的下一个对象。这就是所谓的链表。

The same you would in C. Assembly has functions and address spaces. Start with the basics: what functions does your stack need to have? Put the actual datastructures aside and focus on the big picture.

All you need is a function to push() and a function to pop(), a place to stick these items in the memory, and a counter to tell you how much of that space you've used up.

Oh, you should probably review your data structures before starting, as in neither C++ nor Java (or any other language, as a matter of fact) does an object pushed onto a stack point to the next object on the stack. That's called a linked list.

无语# 2024-12-14 20:35:57

尝试使用 C 实现数据结构,然后查看生成的程序集。然而,对于您的内存需求,可能需要一些更仔细的考虑(例如使用非易失性内存与易失性内存来存储不同大小的元素)。

Try implementing your data structure using C and then look at the assembly generated. For your memory needs, however, it might require some more careful considerations (such as using non-volatile vs. volatile memory for storage for the varying sized elements).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文