From 52c9ad7b3c0842b24b30e75a8b3b9679c36086a3 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 22 May 2002 23:01:06 +0000 Subject: Add %elif preprocessor test --- test/elif.asm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 test/elif.asm diff --git a/test/elif.asm b/test/elif.asm new file mode 100644 index 0000000..057ce5f --- /dev/null +++ b/test/elif.asm @@ -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 -- cgit v1.2.3