【问题标题】:make dynamic array in assembly在汇编中制作动态数组
【发布时间】:2012-11-06 13:01:18
【问题描述】:

如何在汇编中的程序中间制作一个动态数组? 我试过这段代码,但它不起作用

.CODE
.DATA
list DWORD <register or memory>DUP(?)

你知道解决这个问题的方法吗?

【问题讨论】:

  • 你通常不会!您要么必须在编译时保留“足够”的内存,要么调用操作系统在运行时分配更多。
  • @BoPersson 完全正确。根据操作系统,您可以使用分配函数,但如果您需要更多内存,我只建议调用 C 库中的 malloc。如果这不是一个选项,请查看您的操作系统的进程中断系统调用。在 Linux 上,这是brk
  • @BoPersson ,我想制作数组,如果它已满,想将其复制到另一个大小为 2 的数组或将其调整为更大

标签: assembly masm dynamic-arrays dynamic-allocation


【解决方案1】:

dup 不是 NASM 或 FASM 语法,而是 MASM;并且由于您不能在 *nix 上合法使用 MASM,sys_newstatsys_brk 将是不可能的。所以你的目标是 Windows?

您将使用 Heap* 内存 API 函数。您将使用HeapAllocHeapReAlloc。如果你不介意 CRT 依赖,那么你可以按照 Linuxios 的建议使用 malloc

【讨论】:

  • 如何在 MASM 中使用 malloc ?
猜你喜欢
  • 2012-11-12
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多