2016-07-06 17 views
0

Ich habe versucht zu sehen, ob asm Sprache Unterstützung Funktion basiert wie "C" Sprache verknüpft. Z.B. Ich habe bekomme „m.asm“:Erstellt MASM mehrere Quelldateien und verbindet sie miteinander?

assume cs:code 
code segment 
start: 
    mov ax,20h 
    call s 
    mov ah,4ch 
    int 21h 
code ends 
end start 

In der „s“ ist ein Symbol nicht im Quellcode vorhanden, dann habe ich n.asm Datei bekam ein Symbol (ein Etikett in der Tat) zu definieren,

In der Tat m.asm nicht kompilieren, mir sagen, dass "s" ein Symbol nicht definiert ist. Wie kann ich dieses Problem lösen und meine Anfrage erfüllen? mit der extern Richtlinie in m.asm

+0

http://www.oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/Chapter_8/CH08-10.html#HEADING10-34 –

Antwort

4

Sie benötigen Funktion deklarieren s als sichtbar für andere Module, die es zugreifen möchten (beispielsweise über call) in n.asm mit der public Richtlinie und Sie müssen s als externe Referenz erklären.

Dies ist in Ordnung für eine kleine Anzahl von Deklarationen, aber wenn Ihre Module zu einer beträchtlichen Größe wachsen, können Sie eine include Header-Dateien verwenden, um das zu verwalten.