inc指令更改数组中的下一个值

问题描述

我声明了这个数组:

array dw 10 dup(0) 

但是当我想以此增加价值时:

mov bx,5
inc array[bx] 

将下一个更改为256,将正确的值更改为1: Like this

enter image description here

解决方法

您的数组会初始化内存中的这20个字节:

0,0

说明

mov bx,5
inc array[bx] 

会将数组更改为

0,1,0

因为BX用作从数组开始到字节的偏移量。

您发布的屏幕截图很容易通过尝试可视化数组中单词大小的元素来创建,但是将算法中使用的指针增加1而不是将该指针增加2正确

0,0                         0:
  0,0                       0:
    0,0                     0:
      0,0                   0:
        0,1               256: 
          1,0               1:
            0,0             0:
              0,0           0:
                0,0         0:
                  0,0       0:
                    0,0     0:

验证是否是这种情况...