汇编程序中关联数组或散列表的类似物

时间:2014-01-11 22:46:15

标签: assembly hashtable masm

我是PHP程序员。现在我需要在masm中创建简单的脚本,我需要使用key =>值对(即按键快速选择值 - 一对一)。主要思想是键可以是字符串。 masm中是否存在这种特征(关联数组,哈希表等)的类似物?正确执行此操作的最佳方法是什么?非常感谢!

1 个答案:

答案 0 :(得分:1)

@Igor:欢迎来到Assembler,你必须在生铁的基础上自己构建它,或者找到一个可以为你实现的链接库。

大多数进入汇编程序的人都有一些事情需要做,他们希望没有现有的库(通常是一个有趣的任务的高性能代码)。

但是如果您的汇编程序代码的大小合理,那么您只想编写高性能部分。大多数其他类似的程序都是非常普通的东西(打开文件,读取记录),...只是你被困在汇编程序中。

以下是Linkage Editors是您的朋友。许多更高级的语言(C,C ++,Fortran,Ada,COBOL :)实际上编译为本机汇编代码。这几乎意味着如果你能找到你想要的例程,用这种语言编码,你就可以找到一种从汇编代码中调用它的方法。其细节取决于高级语言的编译器约定以及计算机的精确指令集。您可以非常依赖核心接口来使用汇编程序确实知道的CALL子程序机器指令。最后,您必须向汇编程序解释您希望它与已编译的代码链接,并学习如何使用链接编辑器将代码拼接到所需的库中。

对于像文件I / O等标准活动,总是有可用的库,它为汇编语言程序员提供所有操作系统功能。 (否则会有更高级别的编程语言?)

那么,你应该做的就是去实现哈希表的C库,然后找出如何从汇编程序中调用它们。

或者,您可以成为一名优秀的汇编语言程序员,并自行编写这些代码。 取决于您是否想花费大量时间学习,或者您是否只想完成工作。

PS:如果你没有必须非常快的东西,你可能最好用C编码而不是用汇编编码。您仍然可以使用这些库: - }

PPS:考虑到你是一名PHP程序员并且因为它们可用而每天都使用哈希值,可能是因为你使用PHP的方式污染了你的想法。你的计算真的是否需要哈希值,或者其他数据结构是否有效?