From 9b6f94a410333c65d9151c5ff50a0a51fcb94327 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Mon, 5 Nov 2018 12:09:33 +0300 Subject: [PATCH] test: nasm-t -- Add bintest Signed-off-by: Cyrill Gorcunov --- travis/test/bintest-o0.bin.t | Bin 0 -> 69 bytes travis/test/bintest-ox.bin.t | Bin 0 -> 65 bytes travis/test/bintest.asm | 56 +++++++++++++++++++++++++++++++++++ travis/test/bintest.json | 20 +++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 travis/test/bintest-o0.bin.t create mode 100644 travis/test/bintest-ox.bin.t create mode 100644 travis/test/bintest.asm create mode 100644 travis/test/bintest.json diff --git a/travis/test/bintest-o0.bin.t b/travis/test/bintest-o0.bin.t new file mode 100644 index 0000000000000000000000000000000000000000..dffd8c99135888f149e68eadcaeb0bf378851d95 GIT binary patch literal 69 zcmaFK%CLjM=d9u}HV;OfZaI6#F7|FYN5&5JolFe73>dd?2A)-neDt+j&YAK5V+IC> ZjMSW*d|6MpH&+MgRu+6!8E6 literal 0 HcmV?d00001 diff --git a/travis/test/bintest-ox.bin.t b/travis/test/bintest-ox.bin.t new file mode 100644 index 0000000000000000000000000000000000000000..9758ff8ca6c117336e24781f532d986a21d37cc1 GIT binary patch literal 65 zcmaFOx`V;ztl}{?7e<|KIcvr)_HH>_#t!zKObokp7`Jc+o>h!|^tD^gp7H|EMngs>MgY^+6xIL$ literal 0 HcmV?d00001 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" } + ] + } +]