. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
主题 : :  栈段的位置不同 占用空间也不同?  [已解决] 回复[ 5次 ]   点击[ 487次 ]  
huangbeidu
[帖 主] [ 发表时间:2009-04-01 21:42 ] 
荣誉值:0
信誉值:3
注册日期:2009-03-10 11:22
就是这个问题了 从实验5(3)引发的
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1007&qkSg=2&qID=31302&readSg=1 问过很久也没有人解决

又有了新发现:

数据段是dw 123h,456h  栈段是dw 0,0

顺序:数据 代码 栈时的debug:
17D9:0100  23 01 56 04 00 00 00 00-00 00 00 00 00 00 00 00   #.V.............
17D9:0110  B8 ED 17 8E D0 BC 10 00-B8 E9 17 8E D8 FF 36 00   ..............6.
17D9:0120  00 FF 36 02 00 8F 06 02-00 8F 06 00 00 B8 00 4C   ..6............L
17D9:0130  CD 21 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .!..............
17D9:0140  00 00 00 00 75 10 8A 05-38 46 06 75 09 B8 FF FF   ....u...8F.u.... 
顺序:代码 栈 数据时的debug:
17D9:0100  B8 EC 17 8E D0 BC 10 00-B8 ED 17 8E D8 FF 36 00   ..............6.
17D9:0110  00 FF 36 02 00 8F 06 02-00 8F 06 00 00 B8 00 4C   ..6............L
17D9:0120  CD 21 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .!..............
17D9:0130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
17D9:0140  23 01 56 04 75 10 8A 05-38 46 06 75 09 B8 FF FF   #.V.u...8F.u....
顺序:数据 栈 代码时的debug:
17D9:0100  23 01 56 04 00 00 00 00-00 00 00 00 00 00 00 00   #.V.............
17D9:0110  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
17D9:0120  B8 EA 17 8E D0 BC 10 00-B8 E9 17 8E D8 FF 36 00   ..............6.
17D9:0130  00 FF 36 02 00 8F 06 02-00 8F 06 00 00 B8 00 4C   ..6............L
17D9:0140  CD 21 56 04 75 10 8A 05-38 46 06 75 09 B8 FF FF   .!V.u...8F.u....
也就是说 如果哪个段在程序的最后 而且大小不是16B的倍数 那么它剩余的最后一行空间会被充分利用 不会都是0 这样内存就不会浪费了 

我这样理解对吗 如果是这样 那么实验5(2)的第四问:
对于如下定义的段:
name segment
……
name ends
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为________

应该这样答:如果N为16的倍数
            或N不为16的倍数但该段在程序的最后 答案为N Byte
            其他情况答案为([N/16]+1)*16 Byte
huangbeidu
[第3楼] [ 回复时间:2009-04-02 16:22 ] 
荣誉值:0
信誉值:3
注册日期:2009-03-10 11:22
不好意思啊 我现在才学到第十章 不是太懂你的意思啊 我往后面翻翻看看什么是para
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved