mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-17 17:19:35 +08:00
Add %elif preprocessor test
This commit is contained in:
parent
0c60815d91
commit
52c9ad7b3c
36
test/elif.asm
Normal file
36
test/elif.asm
Normal file
@ -0,0 +1,36 @@
|
||||
%macro DosPrintMsg 1+
|
||||
%ifnid %1
|
||||
section .data
|
||||
%%str_to_print:db %1
|
||||
section .text
|
||||
mov dx,%%str_to_print
|
||||
mov ah,9
|
||||
int 0x21
|
||||
%else
|
||||
mov dx,(%1)
|
||||
mov ah,9
|
||||
int 0x21
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
%macro DosExit 1
|
||||
%if (%1) == 0
|
||||
;use short-form return 0 exit
|
||||
int 0x20
|
||||
%elif ((%1) < 256) && ((%1) > 0)
|
||||
mov ax,0x4C00 | (%1)
|
||||
int 0x21
|
||||
%else
|
||||
%error Invalid return value
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
org 0x100
|
||||
DosPrintMsg predefined_str
|
||||
DosPrintMsg "Using string with macro-defined label",10,0
|
||||
DosExit 0
|
||||
DosExit 1
|
||||
DosExit 256
|
||||
|
||||
section .data
|
||||
predefined_str:db "Using string with predefined label",10,0
|
Loading…
Reference in New Issue
Block a user