主题:求救
这个程序实现删除附加段中LIST字数组中与AX相同的内容
其中一句lea di,list
我用debug中的-t调试,怎么这句是di 指向的是数据段的啊
即:
这句翻译为 lea di, [0000] ds:0000=20cd
为什吗?0000不应该是附加段的吗,怎么是数据段的啊
es_seg segment
list dw 5,1,2,3,4,5
es_seg ends
prognam segment
main proc far
assume cs:prognam,es:es_seg
start:
push es
mov ax,0
push ax
mov ax,es_seg
mov es,ax
mov ax,2
lea es:[di],list //这句
cld
push di
mov cx,es:[di]
add di,2
repne scasw
je delet
pop di
jmp short exit
delet:
jcxz dec_cnt
next_el:
mov bx,es:[di]
mov es:[di-2],bx
add di,2
loop next_el
dec_cnt:
pop di
dec word ptr es:[di]
exit:
ret
main endp
prognam ends
end start
其中一句lea di,list
我用debug中的-t调试,怎么这句是di 指向的是数据段的啊
即:
这句翻译为 lea di, [0000] ds:0000=20cd
为什吗?0000不应该是附加段的吗,怎么是数据段的啊
es_seg segment
list dw 5,1,2,3,4,5
es_seg ends
prognam segment
main proc far
assume cs:prognam,es:es_seg
start:
push es
mov ax,0
push ax
mov ax,es_seg
mov es,ax
mov ax,2
lea es:[di],list //这句
cld
push di
mov cx,es:[di]
add di,2
repne scasw
je delet
pop di
jmp short exit
delet:
jcxz dec_cnt
next_el:
mov bx,es:[di]
mov es:[di-2],bx
add di,2
loop next_el
dec_cnt:
pop di
dec word ptr es:[di]
exit:
ret
main endp
prognam ends
end start