shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
阅读:1165回复:1

【求助】汇编函数 和 C函数 的相互调用(附源码)

楼主#
更多 发布于:2008-09-11 18:19
//汇编文件中的函数
extern _choose

[section .data]
num1        db 1
num2        db 2
bootmessage db "hello, world",'$'
msglen      dw $-bootmessage

[section .text]
global _start
global _dispstr

_start:
    mov ax, cs
    mov ds, ax
    mov es, ax
    call _choose
;    jmp $
    mov ax, 04c00h
    int 21h

_dispstr:
    mov    edx, [msglen]
    mov    ecx, bootmessage
    mov    ebx, 1
    mov    eax, 4        ; sys_write
    ret

//C文件中的函数
void dispstr() ;

void choose()
{
    dispstr() ;

    return ;
}

请大家帮我看看,怎样才能从实现汇编函数和C函数的互调,我写了这个例子,总是不能运行,环境是cl.exe,alink.exe,nasm.exe 。我感觉是编译器或者链接器的问题,请牛人指点!!!
作一名真实,诚实,优秀的科技工作者!
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于:2008-09-17 18:55
莫非没有人知道?顶一下,呵呵
作一名真实,诚实,优秀的科技工作者!
游客

返回顶部