| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1060 人关注过本帖
标题:王爽汇编第二版实验5有些疑问。。。。。!~~
只看楼主 加入收藏
ganbikai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2011-8-24
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:18 
王爽汇编第二版实验5有些疑问。。。。。!~~
图片附件: 游客没有浏览图片的权限,请 登录注册

这道题目的 a segment  b segment c segment  看不懂他把这些数据定义到那个段中了
搜索更多相关主题的帖子: 疑问 数据 
2011-08-26 16:15
ganbikai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2011-8-24
收藏
得分:0 
刚才想了想 不知道是不是这个意思    a ,b,c  就是定义了3个不同的段  一个段定义了8个字节(16*(n/16+1))=16 所以他的实际空间应该还是16个字节     
所以他们的数据才这么显示:  
                 这是a定义的 CS-3        CS:0000  01 02 03 04 05 06 07 08 00 00 00 00 00 00 00 00
                 这是b定义的 CS-3        CS: 0010  01 02 03 04 05 06 07 08 00 00 00 00 00 00 00 00
                 这是c定义的 CS-3        CS:0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

因为他们是3行伪指令      从CS+3这里才是代码的真正开始   我也不知道说的对不对 请各位告诉下答案  我试过在加上个:
e segment   
     db 1,2,3,4,5,6,7,8
e ends
debug加载程序后 CS加了4
DS=13E1 SS=13F1 CS=13F5        

越打字 越感觉不对劲了  我还是不懂 a segment   b segment   segment   他们定义的数据在那个段中 为什么
                                                                              
                          

[ 本帖最后由 ganbikai 于 2011-8-26 17:36 编辑 ]
2011-08-26 17:23
ganbikai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2011-8-24
收藏
得分:0 
希望有朋友能帮我解答下问题  我怕在往后面学 会看不懂
2011-08-26 17:39
ganbikai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2011-8-24
收藏
得分:0 
刚才看看了别人补充的代码   是不是那个a b c  CPU不认识  在start:那里 mov ax,a  然后 mov ds,ax  那么他就定义在数据段   mov ss,ax  那么那个a就定义在栈段  是这样理解吗
2011-08-26 20:37
ganbikai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2011-8-24
收藏
得分:0 
大哥们  我自己胡思乱想的  我真不敢把他当正确的 求解释啊
2011-08-26 20:38
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
16位不懂。。

一般是 数据在数据段里 代码在代码段里呗

至于

e segment

这只不过是告诉编译器的东东罢了 实际在内存/CPU中是体现不出来的
2011-08-26 21:43
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
以下是引用ganbikai在2011-8-26 20:37:04的发言:

刚才看看了别人补充的代码   是不是那个a b c  CPU不认识  在start:那里 mov ax,a  然后 mov ds,ax  那么他就定义在数据段   mov ss,ax  那么那个a就定义在栈段  是这样理解吗

不知所云
2011-08-26 21:43
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用ganbikai在2011-8-26 17:23:30的发言:

刚才想了想 不知道是不是这个意思    a ,b,c  就是定义了3个不同的段  一个段定义了8个字节(16*(n/16+1))=16 所以他的实际空间应该还是16个字节     
所以他们的数据才这么显示:  
                 这是a定义的 CS-3        CS:0000  01 02 03 04 05 06 07 08 00 00 00 00 00 00 00 00
                 这是b定义的 CS-3        CS: 0010  01 02 03 04 05 06 07 08 00 00 00 00 00 00 00 00
                 这是c定义的 CS-3        CS:0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

因为他们是3行伪指令      从CS+3这里才是代码的真正开始   我也不知道说的对不对 请各位告诉下答案  我试过在加上个:
e segment   
     db 1,2,3,4,5,6,7,8
e ends
debug加载程序后 CS加了4
DS=13E1 SS=13F1 CS=13F5        

越打字 越感觉不对劲了  我还是不懂 a segment   b segment   segment   他们定义的数据在那个段中 为什么
                                                                              
                          

你可以试着编译一下 debug u 一看就知道了。。


2011-08-26 21:46
iamsky1981
Rank: 2
等 级:论坛游民
帖 子:20
专家分:76
注 册:2009-10-23
收藏
得分:10 
(16*(n/16+1))=16 搞不懂你这个16怎么算出来的
这里定义的a, b,c三个段每个段占16个字节,是因为段定义的默认定位类型是PARA,也就是说段起始位置位于可用的第一个节(每节为16个字节)

“在start:那里 mov ax,a  然后 mov ds,ax  那么他就定义在数据段   mov ss,ax  那么那个a就定义在栈段  是这样理解吗”

这个地方不是说定义在哪个段,a段已经定义好了, mov ds, ax只是把a的段地址赋给ds或者ss,让段寄存器指向a段

“从CS+3这里才是代码的真正开始” 此言差矣  CS才是代码的真正开始

总的来说,楼主的基础差那么一点点,建议楼主把基础再复习一下
2011-08-26 22:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我搞了一个 但是编译参数不同对这个有影响的 做个参考罢

代码

0B91:0000 B8B20B        MOV     AX,0BB2
0B91:0003 B401          MOV     AH,01
0B91:0005 CD21          INT     21
0B91:0007 B44C          MOV     AH,4C
0B91:0009 CD21          INT     21

我写的是 mov ax,seg a

a的定义和你上面的一样

0BB2:0000  01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00   ................
0BB2:0010  01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00   ................
0BB2:0020  01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00   ................

可知 数据段分别是这样的 至于你那个什么从哪开始什么的 没看懂。。


[ 本帖最后由 zklhp 于 2011-8-26 22:14 编辑 ]
2011-08-26 22:09
快速回复:王爽汇编第二版实验5有些疑问。。。。。!~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029928 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved