nasm calling subroutine from another file

后端 未结 1 1087
囚心锁ツ
囚心锁ツ 2021-01-14 13:39

I\'m doing a project that attaches a subroutine that I wrote to a main file included by the teacher. He gave us the instructions for making our subroutine global but appare

相关标签:
1条回答
  • 2021-01-14 14:28

    You want to call a routine in another asm file or object file? if you are Assembling prt_dec.asm and are linking multiple asm files to use in your main program, here is a sample, 2 asm files Assembled and linked together... * NOTE * hello.asm *DOES NOT * have a start label!

    Main asm file: hellothere.asm

    sys_exit    equ 1
    
    extern Hello 
    global _start 
    
    section .text
    _start:
        call    Hello
    
        mov     eax, sys_exit
        xor     ebx, ebx
        int     80H
    

    Second asm file: hello.asm

    sys_write   equ 4
    stdout      equ 1
    
    global Hello
    
    section .data
    szHello     db  "Hello", 10
    Hello_Len   equ ($ - szHello)
    
    section .text
    Hello:
            mov     edx, Hello_Len
            mov     ecx, szHello
            mov     eax, sys_write
            mov     ebx, stdout
            int     80H   
        ret
    

    makefile:

    APP = hellothere
    
    $(APP): $(APP).o hello.o
        ld -o $(APP) $(APP).o hello.o
    
    $(APP).o: $(APP).asm 
        nasm -f elf $(APP).asm 
    
    hello.o: hello.asm
        nasm -f elf hello.asm
    

    Now, if you just want to separate your code into multiple asm files, you can include them into your main source: with %include "asmfile.asm" at the beginning of your main source file and just assemble and link your main file.

    0 讨论(0)
提交回复
热议问题