mirror of
https://github.com/yasm/yasm
synced 2026-08-26 22:26:05 -04:00
Merge pull request #60 from olsner/struc_base
Implement the base offset parameter for the struc macro
This commit is contained in:
commit
cc4657a134
4 changed files with 20 additions and 3 deletions
|
|
@ -25,14 +25,14 @@
|
|||
__SECT__
|
||||
%endmacro
|
||||
|
||||
%imacro struc 1.nolist
|
||||
%imacro struc 1-2.nolist 0
|
||||
%push struc
|
||||
%define %$strucname %1
|
||||
[absolute 0]
|
||||
[absolute %2]
|
||||
%$strucname: ; allow definition of `.member' to work sanely
|
||||
%endmacro
|
||||
%imacro endstruc 0.nolist
|
||||
%{$strucname}_size:
|
||||
%{$strucname}_size EQU $ - %$strucname
|
||||
%pop
|
||||
__SECT__
|
||||
%endmacro
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ EXTRA_DIST += modules/parsers/nasm/tests/strucalign.asm
|
|||
EXTRA_DIST += modules/parsers/nasm/tests/strucalign.hex
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/struczero.asm
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/struczero.hex
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/strucbase.asm
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/strucbase.hex
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/syntax-err.asm
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/syntax-err.errwarn
|
||||
EXTRA_DIST += modules/parsers/nasm/tests/uscore.asm
|
||||
|
|
|
|||
11
modules/parsers/nasm/tests/strucbase.asm
Normal file
11
modules/parsers/nasm/tests/strucbase.asm
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
struc base, -7
|
||||
.a: resb 1
|
||||
.b: resb 1
|
||||
endstruc
|
||||
|
||||
; Expect base and base.a to appear at -7, base.b at -6
|
||||
db base
|
||||
db base.a
|
||||
db base.b
|
||||
; The size should be '2' here
|
||||
db base_size
|
||||
4
modules/parsers/nasm/tests/strucbase.hex
Normal file
4
modules/parsers/nasm/tests/strucbase.hex
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
f9
|
||||
f9
|
||||
fa
|
||||
02
|
||||
Loading…
Add table
Add a link
Reference in a new issue