首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

新手提问?该如何处理

2012-03-18 
新手提问?Assembly codeassume ds:data,cs:codedata segmentdb unIXdb foRKdata endscode segmentstar

新手提问?

Assembly code
assume ds:data,cs:codedata segment    db 'unIX'    db 'foRK'data endscode segment    start:    mov al,'a'        mov bl,'b'        mov ax,4c00h        int 21hcode endsend start

在debug中ds的地址为146C,为什么data段和段地址是147C呢?

[解决办法]
操作系统决定的,加载可执行程序时会有一些初始设定
[解决办法]
楼主疑惑的应该是这个吧,debug 这个程序刚载入后,看 ds 为 146C 但看内容 data 段又是在 147C 段?这中间有个 10h 段即 100h 自己的空间,这个空间是程序的 PSP (Program Segment Prefix),DOS 给每个程序都会建立这么个空间用来存放些信息,其具体内容可用参看书上的介绍;载入程序时,DS/ES 即指向程序的 PSP,所以需要程序自己将 DS 设置到 data 段。

热点排行