为什么代码第一行AX得到的是SS的值而不是DS的值?
本帖最后由 jellyfish 于 2013-8-2 11:27 编辑新人求助:hug:
assume cs:codesg, ds:datasg
datasg segment
db '1. file '
datasg ends
codesg segment
start: mov ax,datasg ????
mov ds,ax
mov bx,0
...
mov ax,4c00h
int 21h
codesg ends
end start
为什么datasg的地址是SS而不是DS?求回答。。
搜到一个相同的问题http://bbs.csdn.net/topics/350072469
有人回答:
需要先运行2步,即执行两次 T 命令,将你自己的数据段地址赋予DS后才行。DS的初始值是程序段前缀(PSP)的段地址。
不知道是不是这样?{:7_154:} 数据段在 代码段的前边~~~。而我们使用ax作为桥梁给ds重新指明代码段我们还未娶执行,因此楼主再执行两次t命令之后ds段就是0b81了。 Crazy迷恋. 发表于 2013-8-1 22:07 static/image/common/back.gif
数据段在 代码段的前边~~~。而我们使用ax作为桥梁给ds重新指明代码段我们还未娶执行,因此楼主再执行两次t命 ...
谢谢版主热心帮助~~~{:7_157:}
页:
[1]