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

inc instruction changes next one value in an array

我声明这个数组:

array dw 10 dup(0) 

但是当我想用这个增加一个值时:

mov bx, 5
inc array[bx] 

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

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

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

说明

mov bx, 5
inc array[bx] 

将数组更改为

0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0

因为 BX 用作从数组开头开始测量的偏移量。

您发布的屏幕截图很容易通过尝试可视化数组 中的 word-sized 元素创建,但将算法中使用的指针递增 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:

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