pe64demo.asm

来自「一个用纯汇编 写的操作系统 源代码 是用 TASM 编译器写的」· 汇编 代码 · 共 46 行

ASM
46
字号

; Example of 64-bit PE program

format PE64 GUI
entry start

section '.code' code readable executable

  start:
	sub	rsp,8*5 	; reserve stack for API use and make stack dqword aligned

	mov	r9d,0
	lea	r8,[_caption]
	lea	rdx,[_message]
	mov	rcx,0
	call	[MessageBoxA]

	mov	ecx,eax
	call	[ExitProcess]

section '.data' data readable writeable

  _caption db 'Win64 assembly program',0
  _message db 'Hello World!',0

section '.idata' import data readable writeable

  dd 0,0,0,RVA kernel_name,RVA kernel_table
  dd 0,0,0,RVA user_name,RVA user_table
  dd 0,0,0,0,0

  kernel_table:
    ExitProcess dq RVA _ExitProcess
    dq 0
  user_table:
    MessageBoxA dq RVA _MessageBoxA
    dq 0

  kernel_name db 'KERNEL32.DLL',0
  user_name db 'USER32.DLL',0

  _ExitProcess dw 0
    db 'ExitProcess',0
  _MessageBoxA dw 0
    db 'MessageBoxA',0

⌨️ 快捷键说明

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