aboutsummaryrefslogtreecommitdiffstats
path: root/travis/test
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2018-11-05 12:09:33 +0300
committerCyrill Gorcunov <gorcunov@gmail.com>2018-11-11 21:43:46 +0300
commit9b6f94a410333c65d9151c5ff50a0a51fcb94327 (patch)
tree4be0e95252ff18a79eca76c29fb7d31bf0b02ad3 /travis/test
parent824d0f00ad82ed6b42dbb30521ac1ec232695013 (diff)
downloadnasm-9b6f94a410333c65d9151c5ff50a0a51fcb94327.tar.gz
nasm-9b6f94a410333c65d9151c5ff50a0a51fcb94327.tar.xz
nasm-9b6f94a410333c65d9151c5ff50a0a51fcb94327.zip
test: nasm-t -- Add bintest
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Diffstat (limited to 'travis/test')
-rw-r--r--travis/test/bintest-o0.bin.tbin0 -> 69 bytes
-rw-r--r--travis/test/bintest-ox.bin.tbin0 -> 65 bytes
-rw-r--r--travis/test/bintest.asm56
-rw-r--r--travis/test/bintest.json20
4 files changed, 76 insertions, 0 deletions
diff --git a/travis/test/bintest-o0.bin.t b/travis/test/bintest-o0.bin.t
new file mode 100644
index 00000000..dffd8c99
--- /dev/null
+++ b/travis/test/bintest-o0.bin.t
Binary files differ
diff --git a/travis/test/bintest-ox.bin.t b/travis/test/bintest-ox.bin.t
new file mode 100644
index 00000000..9758ff8c
--- /dev/null
+++ b/travis/test/bintest-ox.bin.t
Binary files differ
diff --git a/travis/test/bintest.asm b/travis/test/bintest.asm
new file mode 100644
index 00000000..94d2bf7f
--- /dev/null
+++ b/travis/test/bintest.asm
@@ -0,0 +1,56 @@
+; 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]
diff --git a/travis/test/bintest.json b/travis/test/bintest.json
new file mode 100644
index 00000000..2791d6ba
--- /dev/null
+++ b/travis/test/bintest.json
@@ -0,0 +1,20 @@
+[
+ {
+ "description": "Test com generation (-Ox)",
+ "id": "bintest",
+ "format": "bin",
+ "source": "bintest.asm",
+ "option": "-Ox",
+ "target": [
+ { "output": "bintest-ox.bin" }
+ ]
+ },
+ {
+ "description": "Test com generation (-O0)",
+ "ref": "bintest",
+ "option": "-O0",
+ "target": [
+ { "output": "bintest-o0.bin" }
+ ]
+ }
+]