如何修改2x2矩阵中的行和列?

时间:2013-06-26 03:44:39

标签: assembly x86-16

我无法理解如何在装配中指向2x2矩阵中的坐标。

这是我的代码:

matrix     db '0','0','0'   ; I define 3x3 matrix
row1       db '0','5','0'
row2       db '0','0','0'

; I modify item "A1"
mov bx, 0
mov si, 0
mov matrix[BX][SI], 'x'

我注意到增加bx,指向下一列/字节,但我不明白我必须将什么值与SI对齐,以便我可以指向另一行。

例如,如何修改矩阵(5)中间的字节?

1 个答案:

答案 0 :(得分:1)

如果要使用SI选择行,则需要将其设置为rowIndex * 3。注意,语法“matrix [BX] [SI]”并不像在更高级语言中那样表示二维数组。它与“matrix [BX + SI]”同义。矩阵中的中间元素的偏移量为4,因此您可以通过将BX设置为1并将SI设置为3来访问它,尽管使用BX选择行会更常规。