flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
mzabcdefgchina 11 Jan 2016, 06:39
我想把喜欢Fasm编程的中国朋友都约到一起,大家共同讨论,共同研究,共同进步,QQ群:328681673(我爱编程)
|
|||
![]() |
|
fasmnewbie 11 Jan 2016, 07:38
mzabcdefgchina wrote: 我想把喜欢Fasm编程的中国朋友都约到一起,大家共同讨论,共同研究,共同进步,QQ群:328681673(我爱编程) I don't know what to say. hehehe xD |
|||
![]() |
|
jiangfasm 11 Jan 2016, 12:58
mzabcdefgchina wrote: I define the following structure:(我定义了以下的结构:) 你应该这样写: Code: struct OVERRIDE lpszParam dd ? lpszRetType dd ? ends struct TOOLTIP lpszType dd ? lpszLine dd ? lpszApi dd ? nPos dd ? novr dd ? union ovr OVERRIDE rb sizeof.OVERRIDE*32 ends ends 用的时候 Code: tooltip TOOLTIP mov eax,[tooltip.ovr.lpszParam + sizeof.OVERRIDE*???] |
|||
![]() |
|
jiangfasm 11 Jan 2016, 13:10
fasmnewbie wrote:
We come from China, he is a Chinese friend! QQ is a social software in China, equivalent to Facebook |
|||
![]() |
|
jiangfasm 19 Jan 2016, 14:10
To compile the following statement
ovr OVERRIDE 32 dup(<>) Code: macro define@struct name,[field,type,def] { common virtual db `name load initial@struct byte from 0 if initial@struct = '.' display 'Error: name of structure should not begin with a dot.',0Dh,0Ah err end if end virtual local list list equ forward if ~ field eq . name#field type def sizeof.#name#field = $ - name#field else label name#.#type rb sizeof.#type end if local value match any, list \{ list equ list, \} list equ list <value> common local count@struc,dup@struc sizeof.#name = $ restruc name match values, list \{ struc name value \\{ \\local \\..base match , @struct \\\{ define field@struct .,name,<values> \\\} match no, @struct \\\{ label \\..base define dup@struc match cnt=dup, value \\\\{ restore dup@struc define dup@struc TRUE count@struc = cnt \\\\} match cnt=dup any, value \\\\{ restore dup@struc define dup@struc TRUE count@struc = cnt \\\\} match =TRUE, dup@struc \\\\{ rb sizeof.#name*count@struc \\\\} match , dup@struc \\\\{ forward match , value \\\\\{ field type def \\\\\} match any, value \\\\\{ field type value if ~ field eq . rb sizeof.#name#field - ($-field) end if \\\\\} common \\\\} restore dup@struc label . at \\..base \\\}\\} macro name value \\{ match , @struct \\\{ \\\local anonymous define field@struct anonymous,name,<values> \\\} match no, @struct \\\{ define dup@struc match cnt=dup, value \\\\{ restore dup@struc define dup@struc TRUE count@struc = cnt \\\\} match cnt=dup any, value \\\\{ restore dup@struc define dup@struc TRUE count@struc = cnt \\\\} match =TRUE, dup@struc \\\\{ rb sizeof.#name*count@struc \\\\} match , dup@struc \\\\{ forward match , value \\\\\{ type def \\\\\} match any, value \\\\\{ \\\\\local ..field ..field = $ type value if ~ field eq . rb sizeof.#name#field - ($-..field) end if \\\\\} common \\\\} restore dup@struc \\\} \\} irpv lists,list \{ restore list \} \} }
Last edited by jiangfasm on 19 Jan 2016, 14:56; edited 3 times in total |
|||||||||||
![]() |
|
revolution 19 Jan 2016, 14:21
Your diff shows no changes except for some indenting differences and the addition of the last six lines. Is that deliberate?
|
|||
![]() |
|
jiangfasm 19 Jan 2016, 14:47
revolution wrote: Your diff shows no changes except for some indenting differences and the addition of the last six lines. Is that deliberate? No, I'm sorry, command me wrong, I was too careless |
|||
![]() |
|
jiangfasm 20 Jan 2016, 12:32
jiangfasm wrote: To compile the following statement Fixed some bug Code: --------------------------- include/macro/struct.inc --------------------------- index 31350a8..f36eafe 100644 @@ -125,7 +125,9 @@ macro define@struct name,[field,type,def] restore dup@struc define dup@struc TRUE count@struc = cnt \\\\} - match =TRUE, dup@struc \\\\{ rb sizeof.#name*count@struc \\\\} + match =TRUE, dup@struc \\\\{ + forward field type def + common rb sizeof.#name*(count@struc-1) \\\\} match , dup@struc \\\\{ forward match , value \\\\\{ field type def \\\\\} @@ -134,7 +136,7 @@ macro define@struct name,[field,type,def] rb sizeof.#name#field - ($-field) end if \\\\\} common \\\\} restore dup@struc - label . at \\..base \\\}\\} + label . at \\..base \\\}\\} macro name value \\{ match , @struct \\\{ \\\local anonymous define field@struct anonymous,name,<values> \\\} test!!! Code: include 'macro/struct.inc' struct AAA x db ? y db ? ends struct AAA1 x db ? y AAA ? AAA ? y1 AAA 2 dup ends pint1 AAA 66,67 db 3 pint2 AAA 2 dup () db 3 db pint1.x db pint2.x db 3 db AAA.y db 3 AAA 4,5 AAA 2 dup () db 3 pint3 AAA1 67,68 db 4 AAA1 67,68 db 4 AAA1 2 dup db 4 db pint3.y.y db 4 output: Quote:
There should be no problem!
|
|||||||||||
![]() |
|
mzabcdefgchina 23 Jan 2016, 01:43
Thank you very much!
|
|||
![]() |
|
l4m2 25 Aug 2016, 10:38
mzabcdefgchina wrote: 我想把喜欢Fasm编程的中国朋友都约到一起,大家共同讨论,共同研究,共同进步,QQ群:328681673(我爱编程) |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.