exebin.mac

来自「开源的nasm编译器源码,研究编译器原理很有帮且」· MAC 代码 · 共 58 行

MAC
58
字号
; -*- nasm -*-; NASM macro file to allow the `bin' output format to generate; simple .EXE files by constructing the EXE header by hand.; Adapted from a contribution by Yann Guidon <whygee_corp@hol.fr>%define EXE_stack_size EXE_realstacksize%macro EXE_begin 0	  ORG 0E0h	  section .textheader_start:	  db 4Dh,5Ah		; EXE file signature	  dw EXE_allocsize % 512	  dw (EXE_allocsize + 511) / 512	  dw 0			; relocation information: none	  dw (header_end-header_start)/16 ; header size in paragraphs	  dw (EXE_absssize + EXE_realstacksize) / 16 ; min extra mem	  dw (EXE_absssize + EXE_realstacksize) / 16 ; max extra mem	  dw -10h		; Initial SS (before fixup)	  dw EXE_endbss + EXE_realstacksize ; Initial SP (1K DPMI+1K STACK)	  dw 0			; (no) Checksum	  dw 100h		; Initial IP - start just after the header	  dw -10h		; Initial CS (before fixup)	  dw 0			; file offset to relocation table: none	  dw 0			; (no overlay)	  align 16,db 0header_end:EXE_startcode:	  section .dataEXE_startdata:	  section .bssEXE_startbss:%endmacro%macro EXE_stack 1EXE_realstacksize equ %1%define EXE_stack_size EXE_bogusstacksize ; defeat EQU in EXE_end%endmacro%macro EXE_end 0	  section .textEXE_endcode:	  section .dataEXE_enddata:	  section .bss	  alignb 4EXE_endbss:EXE_acodesize equ (EXE_endcode-EXE_startcode+3) & (~3)EXE_datasize equ EXE_enddata-EXE_startdataEXE_absssize equ (EXE_endbss-EXE_startbss+3) & (~3)EXE_allocsize equ EXE_acodesize + EXE_datasizeEXE_stack_size equ 0x800	; default if nothing else was used%endmacro

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?