回 帖 发 新 帖 刷新版面

主题:请教符号地址

最近看到关于符号地址:
    mov al,【2000h】
    mov ax,buf
  后面的意思好像说 这的mov ax,buf就表示一个地址为buf的连续两单元内容送到
ax中    
      我不理解,这里的buf是如何定义的,这里的buf怎么就能代表一个地址呢??
  按其他语言里面这些符号(buf)要先定义了它表示什么才能用的嘛
麻烦各位大哥给解释下哈!! thank you !!

回复列表 (共7个回复)

沙发

buf通常是这样定义的:

buf dw ?

板凳

[quote]buf通常是这样定义的:

buf dw ?
[/quote]
是不是  只要前面 写上  ×× dw ? 
  就表示定义了一个符号??   
 还有 : mov ax, offset buf   上说这里的offset是调出buf 表示的偏移地址, 调用符号地址一定要用offset吗??
   C语言大哥请教。。。。

3 楼

buf dw ?
表示定义buf为一个字,占内存2字节,?代表未赋初值,一般都是00 00
MOV AX,OFFSET BUF
表示把BUF所在的偏移地址送到AX寄存器中,其中送的是低字节的地址

4 楼

我觉得可以根据需要,而定义是可以的.比如:
    BUF  LABEL   BYTE
          ORG   $+8
相当于(其功能一样)
BUF  DB  8 DUP(?)
也是可以这样定义的

5 楼

正确

6 楼

MOV AX,OFFSET BUF

老兄,好象只有立即数前面才加上OFFSET属性操作符

7 楼

错误

我来回复

您尚未登录,请登录后再回复。点此登录或注册