Initall commit
This commit is contained in:
66
fasmw172/INCLUDE/MACRO/MASM.INC
Normal file
66
fasmw172/INCLUDE/MACRO/MASM.INC
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
; Simulate MASM's syntax
|
||||
|
||||
struc struct
|
||||
{ struct .
|
||||
name@struct equ . }
|
||||
|
||||
struc ends
|
||||
{ match =.,name@struct \{ ends \} }
|
||||
|
||||
struc proc [params]
|
||||
{ common define@proc .,<params>
|
||||
name@proc equ . }
|
||||
|
||||
struc endp
|
||||
{ match =.,name@proc \{ endp \} }
|
||||
|
||||
macro option setting
|
||||
{ match =prologue:macro, setting \{ prologue@proc equ macro \}
|
||||
match =epilogue:macro, setting \{ epilogue@proc equ macro \} }
|
||||
|
||||
macro none procname,flag,parmbytes,localbytes,reglist { }
|
||||
|
||||
macro assume params
|
||||
{
|
||||
local expr
|
||||
define expr params
|
||||
match reg:struct, expr
|
||||
\{
|
||||
match assumed, reg\#@assumed \\{ irp name, assumed \\\{ restore name \\\} \\}
|
||||
macro label . \\{ local def
|
||||
define def .
|
||||
match =reg =at label, def \\\{ define def \\\}
|
||||
match name at,def \\\{ def@assumed reg,name,label at
|
||||
define def \\\}
|
||||
match name,def \\\{ def@assumed reg,.,: \\\} \\}
|
||||
struc db [val] \\{ \common def@assumed reg,.,<db val> \\}
|
||||
struc dw [val] \\{ \common def@assumed reg,.,<dw val> \\}
|
||||
struc dp [val] \\{ \common def@assumed reg,.,<dp val> \\}
|
||||
struc dd [val] \\{ \common def@assumed reg,.,<dd val> \\}
|
||||
struc dt [val] \\{ \common def@assumed reg,.,<dt val> \\}
|
||||
struc dq [val] \\{ \common def@assumed reg,.,<dq val> \\}
|
||||
struc rb cnt \\{ def@assumed reg,.,rb cnt \\}
|
||||
struc rw cnt \\{ def@assumed reg,.,rw cnt \\}
|
||||
struc rp cnt \\{ def@assumed reg,.,rp cnt \\}
|
||||
struc rd cnt \\{ def@assumed reg,.,rd cnt \\}
|
||||
struc rt cnt \\{ def@assumed reg,.,rt cnt \\}
|
||||
struc rq cnt \\{ def@assumed reg,.,rq cnt \\}
|
||||
reg\#@assumed equ
|
||||
virtual at reg
|
||||
reg struct
|
||||
end virtual
|
||||
purge label
|
||||
restruc db,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq \} }
|
||||
|
||||
macro def@assumed reg,name,def
|
||||
{ match vars, reg#@assumed \{ reg#@assumed equ reg#@assumed, \}
|
||||
reg#@assumed equ reg#@assumed name
|
||||
local ..label
|
||||
name equ ..label
|
||||
..label def }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
struc none { label . }
|
||||
Reference in New Issue
Block a user