汇编语言用DEBUG 运行前后数据段地址发生变化为什么
发布网友
发布时间:2022-04-22 17:31
我来回答
共1个回答
热心网友
时间:2023-10-23 05:26
不带命令行参数运行debug时,码段、数据段、附加数据段、堆栈段的段地址均相同。
当加载com格式的执行文件时仍然如此(但运行的代码中有改变数据段地址的指令时,数据段地址当然会改变);
当加载exe格式的文件时,CS:IP指向程序开始执行的第一条指令,SS:SP指向堆栈段,DS和ES并不是指向程序数据段,而是指向程序前100H位置(这部分是该程序的段前缀
PSP),所以,DS和ES应该在程序当中进行设置(通常用mov ax,data 和mov ds,ax指令所完成)。