关于程序中数据段与堆栈段地址的问题
问题主要是关于,数据段和堆栈段相互覆盖干扰的问题
代码片段如下:
assume cs:codesg
datasg segment
dw 256 dup (0) ;定义数据段长度512字节
datasg ends
stacksg segment
db 64 dup (0) ;定义堆栈段长64字节
stacksg ends
codesg segment
start:
mov ax , datasg
mov ds , ax ; 将DS指向DATASG段
mov ax , stacksg
mov ss , ax ; 将SS指向STACKSG段
mov sp , 63 ; 将SP指向SS段的最后一个字节
push ax ; 在这里AX的内容将会存入DS段内
mov ax , 4c00h
int 21h
codesg ends
end start
问题:在这个程序中SS段和DS段的段地址是相同的,当DS段或SS段较长时,SS和DS中的数据很
容易相互干扰。请问:如何才能避免这种情况呢?如:DS长64K,SS长16个字的情况
在这里先谢谢大家了~~谢谢~~~