简单问题

expresion 2003-07-12 10:32:51

buf1 dw ?,834h
buf2 db 16 dup(1,2)
buf3 dd ?
plet equ $-buf1 $-buf1是什么意思啊
wlet equ buf2-buf1


wlet的结果为什么是4
谢谢
...全文
54 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luobo029 2003-07-13
  • 打赏
  • 举报
回复
前面的兄弟把话都说完了。
zxy1492 2003-07-13
  • 打赏
  • 举报
回复
$ 是汇编地址计数器,他用来记录正在被汇编程序翻译的语句的地址,也就是说
其内容标出了汇编程序当前的工作位置.
一个程序中,每遇到 一个新的段,就为该段分配一个初值为零的汇编地址计数器,
然后再对该段中的语句汇编,在汇编过程中,对凡是需要申请分配存储单元的语句和
产生目标代码的语句,汇编地址计数器则按该语句 目标代码的长度增值.
所以, 段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值.

buf1 dw ?,834h
buf2 db 16 dup(1,2)
buf3 dd ?
plet equ $-buf1 这里的$就是地址计数器,其值为当前偏移地址36,plet=36-0=36
wlet equ buf2-buf1

buf1是字变量,每个字数据占两个字节,有两个字数据所以 wlet =4





紫郢剑侠 2003-07-13
  • 打赏
  • 举报
回复
$代表程序计数器,即当前内存的地址

$-buf1 : 计算buf1,buf2和buf3占用的内存空间大小(以字节为单位)

wlet equ buf2-buf1 是将buf1所占用的内存空间大小(以字节为单位)作为常量用wlet来表示

buf1 dw ?,834h
buf2 db 16 dup(1,2)
可见buf1占用了两个字的内存空间, 一个字是两个字节, 两个字就是四个字节了。
醉马不肖 2003-07-12
  • 打赏
  • 举报
回复
$-buf1 : buf1 buf2 buf3空间 ,$当前程序计数器

wlet的结果为什么是4
buf1 dw ?,834h
buf2 db 16 dup(1,2)
之间的地址偏移为两个字(4:buf1的空间)

21,499

社区成员

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

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