-
-
[旧帖]
[讨论]编程技巧探讨
0.00雪花
-
发表于:
2009-9-14 15:35
1115
-
在BIOS的BB阶段,由于不能使用堆栈和内存,所以对于子程序的调用需要特殊方法
func1:
mov sp, offset nextpp
pslldq xmm4, 2
pinsrw xmm4, esp, 0
jmp callfunction
nextpp: ......
callfunction:
....
....
pextrw esp, xmm4, 0 ;function return
psrldq xmm4, 2
jmp sp
现在我想把函数调用和返回做成宏,对于offset nextpp,因为固定偏移为16字节,不知道怎么做才可以表达出来。
我下面的做法是错误的
FUNCALL MACRO funcaddr
mov sp, $+10H
pslldq xmm4, 2
pinsrw xmm4, esp, 0
jmp funcaddr
ENDM
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课