[Nasm-bugs] [Bug 3392826] NASM Listing address defect if [org VALUE] not zero

noreply-nasm at dev.nasm.us noreply-nasm at dev.nasm.us
Tue Dec 6 12:02:53 PST 2022


https://bugzilla.nasm.us/show_bug.cgi?id=3392826

--- Comment #9 from Erdogan Tan <erdogantan at singlix.com> ---
(In reply to Erdogan Tan from comment #4)
> ; NASM test (deneme) file
> ; MSDOS.SYS principle simulation (for testing NASM's response)
> 
> ; Erdogan Tan - 6/12/2022
> 
> ; A sample MSDOS '.COM' file
> ; nasm deneme.asm -l deneme.txt -o deneme.com -Z error.txt
> ; (DATA section is used for '.SYS' file -like MSDOS kernel- simulation) 
> 
> ; [BITS 16]	; (x86 real mode)
> 
> ; DOS CODE segment simulation
> 
> section .text	; code segment (DOSCODE)
> 
> 	[org 100h] ; 3DD0h for MSDOS 5.0 kernel (DOSCODE)
> 		   ; (BIOSCODE+BIOSDATA+DOSDATA size)
> start:
> 	jmp	short kod3
> kod1ptr:
> 	dw	kod1
> kod0:
> 	int	20h
> kod1:
> 	mov	si, [deneme3]
> 	mov	ah, 0Eh
> 	sub	bx,bx
> 	; CRLF
> 	mov	al, 0Dh
> 	int	10h
> 	mov	al, 0Ah
> 	int	10h
> kod2:
> 	; print 'DENEME.' on screen
> 	lodsb
> 	int	10h
> 	cmp	al, '.'
> 	jne	short kod2
> 	;times	130 db 90h
> 	;jmp	kod0
> 	; CRLF & exit
> 	mov	al, 0Dh
> 	int	10h
> 	mov	al, 0Ah
> 	int	10h
> 	jmp	kod0
> kod3:
> 	jmp	word [kod1ptr]
> 
> 	nop
> 
> align 16
> 
> ; DOS data segment simulation
> 
> section .data vstart=0	; data segment (DOSDATA)
> 	
> deneme0: dw deneme1
> deneme1: dw deneme2
> deneme2:
> 	db 'deneme...'
> here:
> 	burasi equ $
> deneme3:
> 	dw burasi ; dw here
>  	db 0Dh, 0Ah, 0

Note: for correct running above sample code... DS must be set before kod1. for
example: kod4 is 'nop' address label at the end of code section. /// mov ax,cs
- mov dx,kod4 - add dx,15 - shr dx,4 - add ax,dx - mov ds,ax - then mov
si,[deneme3]

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are watching all bug changes.


More information about the Nasm-bugs mailing list