Sure looks like a bug to me! And a rather strange one, too! Stranger still, I get the same result from nasm-0.98.39!
Just to make it easier to "cut-and-past", I'll put it in "code tags" - with minor "debugging changes".
GLOBAL Interrupts_GetISRPtr ; Address of the kernel main interrupt service routine
GLOBAL MemDefaultISR ; Address of the ISR
SECTION .text
align 4
STACKSIZE equ 0x4000 ; 16k stack size.
PDTSIZE equ 0x400000 ; Size of Paging Table
ISRPTRSIZE equ 0x4 ; Size of ISR Pointer
Paging_GetBaseAddress: ;Get the base address of the Paging Table
mov eax, paging
ret
Interrupts_GetISRPtr:
mov eax, MemDefaultISR
ret
nop
nop
nop
nop
mov eax, endbss
section .bss
stack:
align 0x4
resb STACKSIZE ; Reserve 16k stack on a doubleword boundary
;paging: ; Reserve space for Paging Tables
; align 0x1000
; resb PDTSIZE
MemDefaultISR:
align 0x4
resb ISRPTRSIZE
paging: ; Reserve space for Paging Tables
align 0x1000
resb PDTSIZE
endbss:
My "endbss" label does not come out in the same place, so I suspect that it may NOT be safe to ignore this "warning"! This may take some research, bear with us. Thanks for the feedback, elios!
Best,
Frank