今天碰到一个计算段长度的问题有点晕,举例:
- Assembly code
code segment…………………………codelen = $ - codecode ends
$我知道是当前是字节计数,可是减去段名就是段长度了?段名拉出来用不是段值嘛?
还有我发现用offset code,也就是 offset 段名 也是段的长度……这是怎么回事,好晕……
------解决方案--------------------------------------------------------
$表示的是当前行的地址,不是字节计数。段名不就是一个标记吗?有这么复杂?
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
$返回当前地址
offset返回操作数的偏移地址
------解决方案--------------------------------------------------------
这里,段的长度是从code segment到code ends的长度。而不是从code到codelen的长度。$和offset的解释楼上几位都说啦。
------解决方案--------------------------------------------------------
别的问题就不说了。光说说段长度。
汇编地址和偏移地址要搞清楚。编译期间,哪来的0cbc?