summaryrefslogtreecommitdiff
path: root/test/bintest.asm
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2002-04-30 21:02:01 +0000
committerH. Peter Anvin <hpa@zytor.com>2002-04-30 21:02:01 +0000
commit788e6c10e175ab4b3e67feefbffe570619ae2330 (patch)
treefdbac44f81f28b729e74ce8a8379b5211f2d6f95 /test/bintest.asm
parent4cf1748e6829f80be251b8d7d274738009f934cf (diff)
downloadnasm-788e6c10e175ab4b3e67feefbffe570619ae2330.tar.gz
nasm-788e6c10e175ab4b3e67feefbffe570619ae2330.tar.bz2
nasm-788e6c10e175ab4b3e67feefbffe570619ae2330.zip
NASM 0.98.12
Diffstat (limited to 'test/bintest.asm')
-rw-r--r--test/bintest.asm90
1 files changed, 56 insertions, 34 deletions
diff --git a/test/bintest.asm b/test/bintest.asm
index 96a1dce..94d2bf7 100644
--- a/test/bintest.asm
+++ b/test/bintest.asm
@@ -1,34 +1,56 @@
-***************
-*** 26,32 ****
-
- jmp start ; [6]
-
-- end mov ax,0x4c00 ; [1]
- int 0x21
-
- start mov byte [bss_sym],',' ; [1] [8]
---- 26,32 ----
-
- jmp start ; [6]
-
-+ endX mov ax,0x4c00 ; [1]
- int 0x21
-
- start mov byte [bss_sym],',' ; [1] [8]
-***************
-*** 49,55 ****
- datasym db 'hello world', 13, 10, '$' ; [2]
- bssptr dw bss_sym ; [2] [11]
- dataptr dw datasym+5 ; [2] [10]
-- textptr dw end ; [2] [9]
-
- SECTION .bss
-
---- 49,55 ----
- datasym db 'hello world', 13, 10, '$' ; [2]
- bssptr dw bss_sym ; [2] [11]
- dataptr dw datasym+5 ; [2] [10]
-+ textptr dw endX ; [2] [9]
-
- SECTION .bss
-
+; test source file for assembling to binary files
+; build with:
+; nasm -f bin -o bintest.com bintest.asm
+
+; When run (as a DOS .COM file), this program should print
+; hello, world
+; on two successive lines, then exit cleanly.
+
+; This file should test the following:
+; [1] Define a text-section symbol
+; [2] Define a data-section symbol
+; [3] Define a BSS-section symbol
+; [4] Define a NASM local label
+; [5] Reference a NASM local label
+; [6] Reference a text-section symbol in the text section
+; [7] Reference a data-section symbol in the text section
+; [8] Reference a BSS-section symbol in the text section
+; [9] Reference a text-section symbol in the data section
+; [10] Reference a data-section symbol in the data section
+; [11] Reference a BSS-section symbol in the data section
+
+ BITS 16
+ ORG 0x100
+
+ SECTION .text
+
+ jmp start ; [6]
+
+endX mov ax,0x4c00 ; [1]
+ int 0x21
+
+start mov byte [bss_sym],',' ; [1] [8]
+ mov bx,[bssptr] ; [7]
+ mov al,[bx]
+ mov bx,[dataptr] ; [7]
+ mov [bx],al
+ mov cx,2
+.loop mov dx,datasym ; [1] [4] [7]
+ mov ah,9
+ push cx
+ int 0x21
+ pop cx
+ loop .loop ; [5] [6]
+ mov bx,[textptr] ; [7]
+ jmp bx
+
+ SECTION .data
+
+datasym db 'hello world', 13, 10, '$' ; [2]
+bssptr dw bss_sym ; [2] [11]
+dataptr dw datasym+5 ; [2] [10]
+textptr dw endX ; [2] [9]
+
+ SECTION .bss
+
+bss_sym resb 1 ; [3]