+ -
当前位置:首页 → 问答吧 → 帮忙解释几句代码

帮忙解释几句代码

时间:2011-01-17

来源:互联网

PARTNO DW ?
PNAME DB 16DUP(?)
COUNT DD ?
PLENTH EQU $-PADTNO

前三句好像都是定义,第四句不明白?

作者: buqitianxie   发布时间: 2011-01-17

PARTNO DW ? PARTNO是一个字类型变量 值不确定
PNAME DB 16 DUP (?) PNAME 是一个字节型变量 占16字节 值不确定
COUNT DD ? COUNT就是双字变量 值不确定
PLENTH EQU $-PADTNO PLENTH的值=当前偏移-PADTNO的偏移 也就是说存放的是PADTNO到当前的长度


 最后一个例子:
 WOTE DB '12345678'
 count EQU $-WOTE 如果要一个一个输出字符的话就不用数个数了 在COUNT里存放的就是字符的个数
  

WOTE DB '12345678'
 count EQU $-WOTE

 
WOTE DB '12345678'
 count DB $-WOTE

count EQU $-WOTE 定义了一个常量,不占用内存单元,代码段中使用它,等价于使用一个立即数。

count DW $-WOTE 定义了一个变量,占用2个字节的内存单元,代码段中使用它,就变成一个[偏移地址]。

(引用SHZHFU)
  

作者: znxllyuan   发布时间: 2011-01-17

equ是masm的一个伪指令, 用于将其后表达式的结果同前面的变量联系起来。在这里,就是把PLENTH的偏移地址($)到PARTNO的偏移地址的距离差(字节)复制给变量PLENTH。

作者: masmaster   发布时间: 2011-01-17

那PLENTH的值应该是22(2+16+14)对吧

作者: buqitianxie   发布时间: 2011-01-17