Ich benutze easy68k zum ersten Mal, und ich schrieb zwei Makros, die ich in meinem Programm aufrufen möchte. Die Makrodefinitionen wurden problemlos kompiliert.Easy68k: So rufen Sie ein Makro in der Montage auf?
Wenn ich jedoch versuche, das Makro aus dem Hauptprogramm (d. H. Nach der "org" -Anweisung) aufzurufen, kompiliert es nicht.
Ich versuchte alle die Syntax, die ich denken konnte, überprüfte den Hilfebereich und ein paar andere Seiten im Internet, und nichts funktionierte.
Derzeit, wenn ich den Code zu kompilieren, zeigt es zwei Fehlermeldungen:
Man sagt: Linie 57 (MUL_MAC d1, d3,) ERROR: Invalid argument Der andere sagt: Linie 60 (BSR MUL_SUB) ERROR: Invalid argument
Hier ist meine Quellcode (MC68000 Montage):
MUL_MAC macro
movem.l d6-d7, -(a7)
move.w \1, d6
clr.l d7
loop\@ add.w \2, d7
dbra d6, loop\@
move.w d7, \2
movem.l (a7)+, d6-d7
endm
MUL_SUB equ * ; Subroutine
move.w d2, d3
clr.l d4
loop_sub add.w d1, d4
dbra d3, loop_sub
move.w d4, d2
rts
PRINT_RES macro
movem.l d5-d7, -(a7)
clr.l a1
move #248, d7 ; Code to display character
cmp \1, \2
beq right\@
move.b INC_L, d5
loop_ch_2\@ move.b INC(a1)+, d0
trap #14
dbra d5, loop_ch_2\@
bra finish\@
right\@ move.b COR_L, d5
loop_ch_2\@ move.b COR(a1)+, d0
trap #14
dbra d5, loop_ch_2\@
finish\@ movem.l (a7)+, d5-d7
endm
ORG $1000
START: ; first instruction of program
clr.w d1
clr.w d2
clr.w d3
clr.w d4
move.w X, d1
move.w Y, d2
move.w d2, d3
move.w d2, d4
mulu d1, d4 ; Store the actual result in d2 to compare later
MUL_MAC d1,d3,
PRINT_RES d3,d4,
bsr MUL_SUB
PRINT_RES d2,d4,
move #228, d7
trap #14
* Put program code here
SIMHALT ; halt simulator
* Put variables and constants here
X ds 1
Y ds 1
INC dc.b 73, 78, 67, 79, 82, 82, 69, 67, 84 ; INCORRECT
COR dc.b 67, 79, 82, 82, 69, 67, 84 ; CORRECT
INC_L dc.b 9 ; Length of INCORRECT
COR_L dc.b 7 ; Length of CORRECT
END START ; last line of source
Define _ "kompiliert nicht" _. Erhalten Sie eine Fehlermeldung? Wenn ja, was genau sagt die Nachricht? – Michael
Das ist ein guter Punkt, ich werde den Beitrag bearbeiten, um das einzuschließen, aber im Grunde zeigt es zwei Fehlermeldungen an, wenn ich das oben kompilierte: Man sagt: Linie 57 (MUL_MAC d1, d3,) FEHLER: ungültiges Argument Der andere sagt: Zeile 60 (bsr MUL_SUB) FEHLER: Ungültiges Argument – gameCoder95