注册 登录
编程论坛 汇编论坛

汇编--包含多个段的程序,几个困惑的问题!

tudouya 发布于 2013-02-05 05:24, 596 次点击
正在看王爽的汇编,看到了第6章--包含多哥段的程序,有几个问题,希望大家能帮帮忙。
下面是我的一些理解和遇到的问题:
1.在编写不分段的程序的时候,就是只含有一个代码段的程序时
  DS和CS差10h,因为有一个PSP区,这个理解应该没错的吧。
2.在编写包含多个段的程序的时候,DS和CS的差值就不是10h了,这里有几个问题
 (1)包含多个段的程序,DS的地址是不是还是像单个段的程序那样,指向了程序申请的那段空闲内存空间的首地址?
 (2)包含多个段的程序中,王爽汇编实验5第一题的那个程序,答案中CS与DS相差2,与SS相差1,网上的很多答案也都是这样的,
     但是为什么我的不是?是不是跟自己的电脑有关?
4 回复
#2
清微御宇2013-02-06 17:20
(1)包含多个段的程序,DS的地址是不是还是像单个段的程序那样,指向了程序申请的那段空闲内存空间的首地址?
是的!
(2)包含多个段的程序中,王爽汇编实验5第一题的那个程序,答案中CS与DS相差2,与SS相差1,网上的很多答案也都是这样的,

     但是为什么我的不是?是不是跟自己的电脑有关?
实验五问题是这样说的
cpu 执行程序,程序返回前什么……?
“cpu 执行程序,程序返回前”的意思可以理解成mov ax 4c00h以后int 21h之前,这个时候程序已经执行了,
mov ax,stact
mov ss,ax
……
ss和ds的值都被修改过了!
而你想说的那个dos缓冲区问题是在程序还木有执行是观察的,实验5让你给出的是“程序返回前”(程序执行后)的段寄存器的值!

[ 本帖最后由 清微御宇 于 2013-2-6 17:23 编辑 ]
#3
meiyounichen2013-02-06 18:46
以下是引用清微御宇在2013-2-6 17:20:27的发言:

(1)包含多个段的程序,DS的地址是不是还是像单个段的程序那样,指向了程序申请的那段空闲内存空间的首地址?
是的!
(2)包含多个段的程序中,王爽汇编实验5第一题的那个程序,答案中CS与DS相差2,与SS相差1,网上的很多答案也都是这样的,
 
     但是为什么我的不是?是不是跟自己的电脑有关?
实验五问题是这样说的
cpu 执行程序,程序返回前什么……?
“cpu 执行程序,程序返回前”的意思可以理解成mov ax 4c00h以后int 21h之前,这个时候程序已经执行了,
mov ax,stact
mov ss,ax
……
ss和ds的值都被修改过了!
而你想说的那个dos缓冲区问题是在程序还木有执行是观察的,实验5让你给出的是“程序返回前”(程序执行后)的段寄存器的值!
妹纸你好,我可以认识你嘛,给你发短消息了,你看看吧
#4
zklhp2013-02-06 18:55
以下是引用meiyounichen在2013-2-6 18:46:45的发言:

妹纸你好,我可以认识你嘛,给你发短消息了,你看看吧

#5
青春无限2013-02-07 05:54
学习了
1