首页
社区
课程
招聘
[求助]MASM的静态数组如何定义?
发表于: 2007-4-8 22:33 7829

[求助]MASM的静态数组如何定义?

2007-4-8 22:33
7829
难道用

pCode dw 256 dup(xxxx,xxxx,xxxx,.....)

我希望可以象VC那样
unsigned long pCode[256]=
{

}

masm要怎么做?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
2
.data?

pCode dw 256 dup(?)

全部初始化为0
2007-4-9 12:52
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
unsigned long pCode[256]=
{
         xxxxxxxx,
         xxxxxxxx,
}

"xxxxxxxx"是任意常量,256个元素都不重复的。我希望写成这种格式,方便为每一个常量写注释。
2007-4-9 13:32
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
4
这样好象MASM实现不了,

高级编程语言是通过把"数据的地址"写到数组来实

现这个功能的,汇编要手动实现
2007-4-9 13:43
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
举例:
定义
unsigned long pCode[256] = {0, 1, 2, 3, 0};

前4个数依次是0, 1, 2, 3, 其余用0填充
方法:
pCode    DWORD    1    ;注释
         DWORD    2    ;注释
         DWORD    3
         DWORD    4
         ;这一句的作用是让其余空间用给定数填充,这里填0
         DWORD    (256 * SIZEOF DWORD - ($ - OFFSET pCode)) / SIZEOF DWORD DUP (0)
2007-4-9 13:43
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
6


你说的是数据数组啊,没看明白
2007-4-9 13:49
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7
对于字符串数组, 例如
LPCSTR strList[2] = {"abc", "def"};

实现比较麻烦, 如下所示
strabc    BYTE    "abc", 0
strdef    BYTE    "def", 0
strList   DWORD   OFFSET strabc
          DWORD   OFFSET strdef

或者可以写一个宏来方便实现
例如,我以前修改过Four-F的字符串宏,用它可以这样定义
strList   DWORD   $CTA0("abc")
          DWORD   $CTA0("def")

$CTA0是Four-F的字符串定义宏
2007-4-9 13:52
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
8
感谢两位热心帮助
2007-4-9 20:21
0
游客
登录 | 注册 方可回帖
返回
//