. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->自由讨论区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  完整段定义和简化断定义格式下数据段的内存分配不同,原因?  [已解决] 回复[ 3次 ]   点击[ 455次 ]  
study_soft
[帖 主]   [ 发表时间:2008-04-16 17:28 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:18
注册日期:2008-02-20 10:20
完整段定义下: 
assume cs:code, ds:data 
data segment 
a1 db 6,8,2,4,0,1,3,6 
a2 db 5 
data ends 
code segment 
... 
a1的地址是ds:0 

简化段定义下: 
.model small 
.stack 
.data 
a1 db 6,8,2,4,0,1,3,6 
a2 db 5 
.code 
... 
a1的地址不再是ds:0,总是有个偏移,比如ds:6之类的,为什么? 

谢谢指教.
mess
[第1楼]   [ 回复时间:2008-04-17 08:59 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
简化段定义,默认是字对齐,完整段定义默认是是段对齐。即是它们的定位类型不同。

默认定位类型:
段的简化定义 WORD(.DATA )--使用下一个可用字地址
段的完整定义 PARA --使用下一个可用节地址(每节为16个字节)

段的完整定义的默认定位类型PARA可以在《汇编语言》第六章的课后实验自己得出结论。
study_soft
[第2楼]   [ 回复时间:2008-04-17 11:45 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:18
注册日期:2008-02-20 10:20
谢谢
study_soft
[第3楼]   [ 回复时间:2008-04-17 11:45 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:18
注册日期:2008-02-20 10:20
此贴由 贴主 于 [ 2008-04-17 11:45 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(mess):4分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved