计算段长度的问题

ProgrammingRing 2012-03-30 05:30:24
今天碰到一个计算段长度的问题有点晕,举例:

code segment
……
……
……
……
……
codelen = $ - code
code ends

$我知道是当前是字节计数,可是减去段名就是段长度了?段名拉出来用不是段值嘛?
还有我发现用offset code,也就是 offset 段名 也是段的长度……这是怎么回事,好晕……
...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
e379278011 2012-06-01
  • 打赏
  • 举报
回复
$ 表示当前地址

今天也遇到楼主的问题了。。。
offset 段名 返回的是段长度。

按理解是应该返回的偏移。。。。继续摸索中
ProgrammingRing 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

$ 表示当前地址

今天也遇到楼主的问题了。。。
offset 段名 返回的是段长度。

按理解是应该返回的偏移。。。。继续摸索中
[/Quote]
offset 段名返回段结尾是masm的事……看下这个:http://support.microsoft.com/kb/75276/zh-cn#appliesto
ProgrammingRing 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

别的问题就不说了。光说说段长度。
汇编地址和偏移地址要搞清楚。编译期间,哪来的0cbc?
[/Quote]
晕……忘了$和offset是编译期间的了,编译好才是一个值了……

可是那用$-段名怎么会得到段长度?还有offset 段名也是……编译器做了什么?
均陵鼠侠 2012-03-30
  • 打赏
  • 举报
回复
别的问题就不说了。光说说段长度。
汇编地址和偏移地址要搞清楚。编译期间,哪来的0cbc?
masmaster 2012-03-30
  • 打赏
  • 举报
回复
这里,段的长度是从code segment到code ends的长度。而不是从code到codelen的长度。$和offset的解释楼上几位都说啦。
ProgrammingRing 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

$表示的是当前行的地址,不是字节计数。段名不就是一个标记吗?有这么复杂?
[/Quote]
$知道啥意思了……可是脑子现在就是转不过这弯,比如$当前等于7,段名code,也就是段值等于0cbc

那codelen = $ - code不就是codelen = 7 - 0cbc吗?怎么会是等于7,也就是段的长度的?

还有,为啥offset 段名就是这个段的长度?offset不是取偏移吗,怎么段名是段的结尾吗?
guizeyanhua2 2012-03-30
  • 打赏
  • 举报
回复
$返回当前地址
offset返回操作数的偏移地址
屌絲來襲 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

$表示的是当前行的地址
[/Quote]

按这个理解,我想你就懂了
yh_no_code 2012-03-30
  • 打赏
  • 举报
回复
$表示的是当前行的地址,不是字节计数。段名不就是一个标记吗?有这么复杂?

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧