import64.inc

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

INC
60
字号

; Macroinstructions for making import section (64-bit)

macro library [name,string]
 { forward
    local _label
    if defined name#.redundant
     if ~ name#.redundant
      dd RVA name#.lookup,0,0,RVA _label,RVA name#.address
     end if
    end if
   common
    dd 0,0,0,0,0
   forward
    if defined name#.redundant
     if ~ name#.redundant
      _label db string,0
	     rb RVA $ and 1
     end if
    end if }

macro import name,[label,string]
 { common
    name#.lookup:
   forward
    if used label
     if string eqtype ''
      local _label
      dq RVA _label
     else
      dq 80000000h + string
     end if
    end if
   common
    if $ > name#.lookup
     name#.redundant = 0
     dq 0
    else
     name#.redundant = 1
    end if
    name#.address:
   forward
    if used label
     if string eqtype ''
      label dq RVA _label
     else
      label dq 80000000h + string
     end if
    end if
   common
    if ~ name#.redundant
     dq 0
    end if
   forward
    if used label & string eqtype ''
    _label dw 0
	   db string,0
	   rb RVA $ and 1
    end if }

⌨️ 快捷键说明

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