win32 @@符号给个完整的例子
本帖最后由 u654f 于 2016-8-28 21:50 编辑win32 @@符号用法给个完整的例子 本帖最后由 航海王 于 2016-8-29 08:15 编辑
u654f 发表于 2016-8-28 21:49
书上的内容我知道,但是他说的不够详细,我测试过一些例子@F好像不能出现在@@前面,@B不能出现在@@后面, ...
mov cx,1000h
@@:
newiodelay
loop short @B
等于
mov cx,1000h
loop1:
newiodelay
loop loop1
还有一个
mov ax, 0
@@: ;标号1
inc ax
cmp ax, 0100h
je @F ;跳转到下一个 @@: 处, 也就是 标号2
jmp @B ;跳转到上一个 @@: 处, 也就是 标号1
@@: ;标号2
...
...
本帖最后由 无符号整形 于 2016-8-25 08:09 编辑
先看看格式,下面是从百科上面扒拉下来的,栗子是原创的。{:10_297:}
以“?”标识函数名的开始,后跟函数名;
函数名后面以“@@YG”标识参数表的开始,后跟参数表;
参数表以代号表示:
X--void ,
D--char,
E--unsigned char,
F--short,
H--int,
I--unsigned int,
J--long,
K--unsigned long,
M--float,
N--double,
_N--bool,
PA--表示指针,后面的代号表明指针类型,如果相同类型的指针连续出现,以“0”代替,一个“0”代
表一次重复;
参数表的第一项为该函数的返回值类型,其后依次为参数的数据类型,指针标识在其所指数据类型前
;
参数表后以“@Z”标识整个名字的结束,如果该函数无参数,则以“Z”标识结束。
比如int test()
分析一下
返回值是int
无参数
那么就是?test@@YGHXZ
上面的YG表示参数表开始
上面的H表示返回值是int
上面的X表示参数表为空
上面的Z表示名称结束
再来一个栗子
int test2(int i,int* p)
就是?test2YGHHPAHZ
YG表示参数表开始
H表示返回值为int
第二个H表示有一个类型为i的参数
PAH表示有一个类型为int*的指针
Z表示名称结束 无符号整形 发表于 2016-8-25 08:03
先看看格式,下面是从百科上面扒拉下来的,栗子是原创的。
比如int test()
这么一大堆虽然很详细,但我楞是没看懂,弱弱问一句这是Win32里面的吗?我只需要@@:标号的用法,跟常见的使用场景,给个例子就好。 u654f 发表于 2016-8-25 10:53
这么一大堆虽然很详细,但我楞是没看懂,弱弱问一句这是Win32里面的吗?我只需要@@:标号的用法,跟常见的 ...
是的。 本帖最后由 航海王 于 2016-8-28 18:54 编辑
windows环境下32位汇编程序设计 上有 航海王 发表于 2016-8-28 18:51
windows环境下32位汇编程序设计 上有
书上的内容我知道,但是他说的不够详细,我测试过一些例子@F好像不能出现在@@前面,@B不能出现在@@后面,这样感觉@@用法局限性太大了,想问它通常会用在什么地方。要完整例子。 跳转符号
书上的内容我知道,但是他说的不够详细,我测试过一些例子@F好像不能出现在@@前面,@B不能出现在@@后面,这样感觉@@用法局限性太大了,想问它通常会用在什么地方。要完整例子
页:
[1]