给个检测点16.2的答案呗
{:10_277:} mov ax,datamov es,ax
assume那里已经将data段和es寄存器挂钩,但是那种挂钩只是编译器做的,程序并不知道,所以你要将data的段地址给es,以后的数据就默认是段地址是es了。
兰陵月 发表于 2016-6-14 21:07
mov ax,data
mov es,ax
我觉得既然和b都是默认ds,第二句仍应为mov ds,ax啊。。 BellXu 发表于 2017-8-8 15:54
我觉得既然和b都是默认ds,第二句仍应为mov ds,ax啊。。
我错了!ASSUME把DATA段和ES关联,故默认段改为ES。 还是不明白啊。。。 BellXu 发表于 2017-8-8 16:01
我错了!ASSUME把DATA段和ES关联,故默认段改为ES。
为什么会这样啊,不是si的默认就是ds嘛~~~ assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start: mov ax,data
mov es,ax ;data段要和es段关联
mov si,0
mov cx,8
s: mov al,a
mov ah,0
add b,ax
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start
页:
[1]