好的,为了使事情尽可能简单,假设我有一个基本循环,我想使用它来修改标记为 a 的数组的一些元素。在下面的示例代码中,我尝试将 a 的所有元素替换为 1,但这并没有真正起作用。
assume cs:code ,ds:data
data segment
a db 1,2,3,4
i db 0
data ends
code segment
start:
mov ax,data
mov ds,ax
lea si,a
the_loop:
mov cl,i
cmp cl,4
jae the_end
mov ds:si[i],1 ; this is the part that i don't really understand since
inc i ; i'm expecting i=0 and ds:si[i] equiv to ds:si[0] which
loop the_loop ; is apparently not the case here since i actually receives the
; the value 1
the_end:
mov ax,4c00h
int 21h
code ends
end start
我知道我可以通过修改指令al
后存储的元素来简单地做到这一点,然后存储它。lodsb
但我想知道是否有可能做我上面尝试过的事情。