首页
社区
课程
招聘
汇编问题:没有类型名如何定义一个该类型的变量
发表于: 2006-3-16 11:02 5087

汇编问题:没有类型名如何定义一个该类型的变量

2006-3-16 11:02
5087
3)、struct  CELLREC {
      char attrib;
      union {char text[201];
         long value;
         struct {long fvalue;
             char formula[201];
            } f;
         } v;
     };

要用汇编实现,但由于结构体中的结构体和联合类型没有类型名,它们的变量
f,v应该怎么样定义????

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
F struct
        fvalue        LONG ?
        formula        CHAR 201        dup(?)
F ends

CELLREC struct
        attrib CHAR        ?
        union        v
                text        CHAR        201        dup(?)
                value        LONG ?
                f        F        <?>
        ends
CELLREC ends
2006-3-16 11:35
0
雪    币: 260
活跃值: (259)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
谢谢小虾.不过你的定义中出现了一个类型名
但是那个C语言中没有F这个类型名嘛.
2006-3-16 13:45
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
各种语言的定义语法不可能完全相同,只要效果能达到一样就行了。
汇编中不能和C语言一样在结构中直接内嵌结构,只能先定义一个结构才能内嵌一个结构。
2006-3-16 14:06
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
据我试验, 汇编语言的结构是可以嵌套定义的, 例如:
EEE        STRUCT
        STRUCT        BBB
                a        DD         ?
                b        DD         ?       
        ENDS
        d        DD        ?
EEE        ENDS

.........
.........

.data
q      EEE      <<5, 6>, 7>

.........
.code
......
mov    eax, q.BBB.b

我用的ML为8.00.50727.42版

如果可以的话, 楼主的结构可以定义如下:
CELLREC        STRUCT
        attrib        BYTE        ?
        UNION        v
                text        BYTE        201 DUP (?)
                value        DWORD        ?
                STRUCT        f
                        fvalue        DWORD        ?
                        formula        BYTE        201 DUP (?)       
                ENDS
        ENDS
CELLREC        ENDS
2006-3-16 16:21
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
我这里不行,可能你的ml版本比较高,我的ml版本是6.14.8444。
2006-3-16 16:26
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7
最初由 小虾 发布
我这里不行,可能你的ml版本比较高,我的ml版本是6.14.8444。

应该是吧,6.14版我没有试过
新版的ml.exe兼容性很不好,编译时居然说windows.inc文件中某结构声明有错误,没办法,只好自己把那个结构重写一下
2006-3-16 16:38
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
我刚才又试了一下,这一次即然又通过编译了,晕。。。
2006-3-16 16:40
0
雪    币: 260
活跃值: (259)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
多谢两位高手
2006-3-20 19:53
0
游客
登录 | 注册 方可回帖
返回
//