汇编 请问调用外部(其它)ASM文件里面的子过程应该怎么调?
答案:2 悬赏:70 手机版
解决时间 2021-11-26 10:29
- 提问者网友:龅牙恐龙妹
- 2021-11-26 06:16
汇编 请问调用外部(其它)ASM文件里面的子过程应该怎么调?
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-11-26 06:58
主程序调用写在其他asm中的子过程的方法
主程序文件名 main.asm
子过程文件名 sub.asm
子过程名 fun1
方法有:
1:
(1)在main.asm 文件中 在call fun1 之前的任意位置,(即使在.data中也可以) include sub.asm
(2)在 sub.asm的子过程之前可以使用 .code和.data 也可以不加
列如:
.data
n1 DWORD 2
.code
fun1 PROC NEAR32
add eax ,n1
ret
fun1 ENDP
或者:
fun1 PROC NEAR32
add eax ,eax
ret
fun1 ENDP
(3)直接编译main.asm,连接main.obj 即可
注: sub.asm 最后一定不能有END
2:(1)在main.asm 文件中 的.data 之前 EXTRN fun1:NEAR32 ,也可以用 fun1 PROTO NEAR32 声明函数
(2)在sub.asm 的fun1 PROC NEAR32之前,或者fun1 ENDP 之后 PUBLIC fun1
sub.asm 末尾需要 END
例如:
.386
.MODEL FLAT
PUBLIC fun1
.data
n1 dword 2
.code
fun1 PROC NEAR32
add eax ,n1
ret
fun1 ENDP
end
(3)分别编译main.asm,sub.asm。连接连接main.obj和sub.obj
总结,若是其他asm文件中的是宏,则在主文件,或者子过程文件中 直接 include 宏name.asm 即可
若是这些工作做得没有差错,编译或者连接时出现差错,则最大可能性是:你的子过程名写错了,解决的办法是
把所有出现子过程名的地方重新复制粘贴一遍。
主程序文件名 main.asm
子过程文件名 sub.asm
子过程名 fun1
方法有:
1:
(1)在main.asm 文件中 在call fun1 之前的任意位置,(即使在.data中也可以) include sub.asm
(2)在 sub.asm的子过程之前可以使用 .code和.data 也可以不加
列如:
.data
n1 DWORD 2
.code
fun1 PROC NEAR32
add eax ,n1
ret
fun1 ENDP
或者:
fun1 PROC NEAR32
add eax ,eax
ret
fun1 ENDP
(3)直接编译main.asm,连接main.obj 即可
注: sub.asm 最后一定不能有END
2:(1)在main.asm 文件中 的.data 之前 EXTRN fun1:NEAR32 ,也可以用 fun1 PROTO NEAR32 声明函数
(2)在sub.asm 的fun1 PROC NEAR32之前,或者fun1 ENDP 之后 PUBLIC fun1
sub.asm 末尾需要 END
例如:
.386
.MODEL FLAT
PUBLIC fun1
.data
n1 dword 2
.code
fun1 PROC NEAR32
add eax ,n1
ret
fun1 ENDP
end
(3)分别编译main.asm,sub.asm。连接连接main.obj和sub.obj
总结,若是其他asm文件中的是宏,则在主文件,或者子过程文件中 直接 include 宏name.asm 即可
若是这些工作做得没有差错,编译或者连接时出现差错,则最大可能性是:你的子过程名写错了,解决的办法是
把所有出现子过程名的地方重新复制粘贴一遍。
全部回答
- 1楼网友:梦中风几里
- 2021-11-26 07:07
在ASM文件里,把需要共享的子过程用 extern 来声明为外部可用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯