Assembly 在程序集中声明和定义数组和矩阵?

Assembly 在程序集中声明和定义数组和矩阵?,assembly,x86-16,Assembly,X86 16,似乎我没有足够好的汇编文档,至少没有一个是可以理解的 有人能举一个简单的例子说明如何在汇编中声明数组和矩阵吗?以及可能如何修改其中的项目。这将对我和其他许多人有很大帮助。Emu8086语法与MASM语法几乎相同,因此要声明一个未初始化的数组,该数组将包含3个字节: arr1 db 3 dup (?) 我使用emulator提供的示例解决了这个问题 基本上,汇编中的矩阵声明与常规变量相同,例如2x2矩阵声明如下: matrix db ?,?,?,? ; Obviously `?` ca

似乎我没有足够好的汇编文档,至少没有一个是可以理解的


有人能举一个简单的例子说明如何在汇编中声明数组和矩阵吗?以及可能如何修改其中的项目。这将对我和其他许多人有很大帮助。

Emu8086语法与MASM语法几乎相同,因此要声明一个未初始化的数组,该数组将包含3个字节:

arr1    db 3 dup (?)

我使用emulator提供的示例解决了这个问题

基本上,汇编中的矩阵声明与常规变量相同,例如2x2矩阵声明如下:

matrix db ?,?,?,?   ; Obviously `?` can be replaced by any value

or

matrix db dup('?')
然后用户决定一行的结束位置和另一行的开始位置。例如,如果我们有一个字节为1,2,3,4的变量,用户可以认为1,2是一行,3,4是另一行。p> 这是您指向矩阵中项目的方式:

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