assume cs:code
code segment
mov ax, 0ffffh
mov ds,ax
mov bx,6
mov al,[bx]
mov ah,0
mov dx,0
mov cx,3
s: add dx,ax
loop s
mov ax,4c00h
int 21h
code ends
end
和下面这段
assume cs:code
code segment
mov ax, 0ffffh
mov ds,ax
mov al,[6]
mov ah,0
mov dx,0
mov cx,3
s: add dx,ax
loop s
mov ax,4c00h
int 21h
code ends
end
这两段里面只有第五行那里有点区别,
mov bx,6
mov al,[bx]
为什么和
mov al,[6]
的结果会不一样呢?
我的理解是,反正都是赋值当前ds:6的值给al,为什么还必须要用bx做个中转呢?
------解决方案--------------------
汇编程序的个老问题吧,按照你的意思,大致是应该写成
mov al, ds:[6]否则会把那个地址的 6 作为立即数而不管是否有外面的方括号。