OLD | NEW |
1 ; Standard macro set for NASM -*- nasm -*- | 1 ; Standard macro set for NASM -*- nasm -*- |
2 | 2 |
3 ; Note that although some user-level forms of directives are defined | 3 ; Note that although some user-level forms of directives are defined |
4 ; here, not all of them are: the user-level form of a format-specific | 4 ; here, not all of them are: the user-level form of a format-specific |
5 ; directive should be defined in the module for that directive. | 5 ; directive should be defined in the module for that directive. |
6 | 6 |
7 ; These two need to be defined, though the actual definitions will | 7 ; These two need to be defined, though the actual definitions will |
8 ; be constantly updated during preprocessing. | 8 ; be constantly updated during preprocessing. |
9 %define __FILE__ | 9 %define __FILE__ |
10 %define __LINE__ | 10 %define __LINE__ |
11 | 11 |
12 %define __SECT__ [section .text] ; it ought to be defined, even if as nothing | 12 %define __SECT__ [section .text] ; it ought to be defined, even if as nothing |
13 | 13 |
14 %imacro section 1+.nolist | 14 %imacro section 1+.nolist |
15 %define __SECT__ [section %1] | 15 %define __SECT__ [section %1] |
16 __SECT__ | 16 __SECT__ |
17 %endmacro | 17 %endmacro |
18 %imacro segment 1+.nolist | 18 %imacro segment 1+.nolist |
19 %define __SECT__ [segment %1] | 19 %define __SECT__ [segment %1] |
20 __SECT__ | 20 __SECT__ |
21 %endmacro | 21 %endmacro |
22 | 22 |
23 %imacro absolute 1+.nolist | 23 %imacro absolute 1+.nolist |
24 %define __SECT__ [absolute %1] | 24 %define __SECT__ [absolute %1] |
25 __SECT__ | 25 __SECT__ |
26 %endmacro | 26 %endmacro |
27 | 27 |
28 %imacro struc 1.nolist | 28 %imacro struc 1-2.nolist 0 |
29 %push struc | 29 %push struc |
30 %define %$strucname %1 | 30 %define %$strucname %1 |
31 [absolute 0] | 31 [absolute %2] |
32 %$strucname: ; allow definition of `.member' to work sanely | 32 %$strucname: ; allow definition of `.member' to work sanely |
33 %endmacro | 33 %endmacro |
34 %imacro endstruc 0.nolist | 34 %imacro endstruc 0.nolist |
35 %{$strucname}_size: | 35 %{$strucname}_size EQU $ - %$strucname |
36 %pop | 36 %pop |
37 __SECT__ | 37 __SECT__ |
38 %endmacro | 38 %endmacro |
39 | 39 |
40 %imacro istruc 1.nolist | 40 %imacro istruc 1.nolist |
41 %push istruc | 41 %push istruc |
42 %define %$strucname %1 | 42 %define %$strucname %1 |
43 %$strucstart: | 43 %$strucstart: |
44 %endmacro | 44 %endmacro |
45 %imacro at 1-2+.nolist | 45 %imacro at 1-2+.nolist |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 %imacro cpu 1+.nolist | 100 %imacro cpu 1+.nolist |
101 [cpu %1] | 101 [cpu %1] |
102 %endmacro | 102 %endmacro |
103 | 103 |
104 %imacro default 1+.nolist | 104 %imacro default 1+.nolist |
105 [default %1] | 105 [default %1] |
106 %endmacro | 106 %endmacro |
107 | 107 |
108 ; NASM compatibility shim | 108 ; NASM compatibility shim |
109 %define __OUTPUT_FORMAT__ __YASM_OBJFMT__ | 109 %define __OUTPUT_FORMAT__ __YASM_OBJFMT__ |
OLD | NEW |