; vi:ft=nasm: org 0 ; DOS stub db "MZ" times 3ah db 0 dd 40h ; PE offset ; PE signature db "PE",0,0 ; COFF header dw 8664h ; machine type: x86-64 dw 1 ; number of sections dd 0 ; creation time dd 0 ; offset to symbol table dd 0 ; number of symbols dw opthdr_end - opthdr ; size of optional header dw 2022h ; characteristics: DLL, exec image, can handle > 2gb addr ; optional header - standard fields opthdr: dw 020bh ; magic: PE32+ dw 0 ; linker version dd prog_end - prog ; size of code dd 0 ; size of init data dd 0 ; size of uninit data dd prog ; entry point dd prog ; base of code ; optional header - windows-specific fields dq 100000h ; image base dd 4096 ; section alignment dd 4096 ; file alignment dd 0 ; os version dd 0 ; img version dd 0 ; subsys version dd 0 dd image_end ; size of image dd prog ; size of headers dd 0 ; checksum dw 10 ; subsystem: EFI application dw 0040h ; DLL characteristics: relocatable at runtime dq 4096 ; size of stack reserve dq 4096 ; size of stack commit dq 4096 ; size of heap reserve dq 0 ; size of heap commit dd 0 dd 0 ; number of rva and sizes opthdr_end: ; sections db ".text",0,0,0 dd image_end - prog ; virtual size dd prog ; virtual address dd image_end - prog ; raw data size dd prog ; raw data dd 0 ; relocations offset dd 0 ; line numbers offset dw 0 ; num reloc dw 0 ; num line numbers dd 60000020h ; characteristics: exec, readable, code align 4096 prog: incbin "efitest.bin" prog_end: align 4096 image_end: