【发布时间】:2013-06-20 01:07:22
【问题描述】:
似乎我无法获得足够好的组装文档,至少没有一个是可理解的。
有人可以发布一个关于如何在程序集中声明数组和矩阵的简单示例吗?以及如何修改其中的项目。这对我有很大的帮助,可能对其他许多人也有很大的帮助。
【问题讨论】:
似乎我无法获得足够好的组装文档,至少没有一个是可理解的。
有人可以发布一个关于如何在程序集中声明数组和矩阵的简单示例吗?以及如何修改其中的项目。这对我有很大的帮助,可能对其他许多人也有很大的帮助。
【问题讨论】:
Emu8086 语法与 MASM 语法几乎相同,因此要声明一个将容纳 3 个字节的未初始化数组:
arr1 db 3 dup (?)
【讨论】:
我使用模拟器提供的示例解决了这个问题。
汇编中的矩阵基本上与常规变量声明相同,例如 2x2 矩阵声明如下:
matrix db ?,?,?,? ; Obviously `?` can be replaced by any value
or
matrix db dup('?')
然后用户决定他认为“行”在哪里结束,另一个开始。例如,如果我们有一个字节为 1,2,3,4 的变量,用户可能会认为 1,2 是一行,3,4 是另一行。
这是您指向矩阵中的项目的方式:
mov bx,0
lea si,matrix
mov matriz[si][bx],0 ; [si][bx] holds the value of the first cell
现在,如果每行包含 2 个项目,则只需执行此操作即可转到第二行:
add bx,2
mov matriz[si][bx],1 ; Now [si][bx] points to cell 0x1
【讨论】: