如何在MASM中动态分配矩阵?

时间:2017-12-08 15:59:14

标签: assembly masm

我正在尝试使用MASM构建矩阵计算器,而我却无法动态分配矩阵。

例如:

如果用户输入矩阵为3x3,我会在内存中分配一个包含3x3矩阵的空间。

我希望有人能告诉我如何。

1 个答案:

答案 0 :(得分:1)

  

如何在MASM中动态分配矩阵?

你没有在汇编程序中动态分配数组(因为在那个低级别,动态分配没有精确的意义)。

您可以在汇编程序中调用一些执行动态分配的函数。例如,您可以从某些C standard library致电malloc

如果您正在为某些(已知)操作系统编写某些user-mode应用程序,则可以考虑执行一些system call来更改virtual address space。在Linux上,可能是(例如)mmap(2)

在这两种情况下,您都需要知道并遵循被调用函数或系统调用所使用的calling conventions 。您可能需要阅读系统的Application Binary Interface。对于Linux / x86-64,请参阅here

调用约定通常是instruction set architecture特定的和操作系统特定的。如果您正在使用某个独立的库或框架,那么该事物也应记录其调用约定。

另见this

您也可以在call stack上进行分配(通过适当更改堆栈指针)。