似乎我无法获得足够好的组装文档,至少没有一个是可以理解的。
有人可以发布一个关于如何在程序集中声明数组和矩阵的简单示例吗?以及如何修改其中的项目。这对我很有帮助,可能对许多其他人也有很大帮助。
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