2016-04-05 11 views
0

İlk defa easy68k kullanıyorum ve programımda aramak istediğim iki makro yazdım. Makro tanımları iyi derlenmişti. Ancak, makroyu ana programın içinden (yani "org" ifadesinden sonra) çağırmaya çalıştığımda, derleme yapmaz.Easy68k: Montajda bir makro nasıl aranır?

Düşünebildiğim tüm sözdizimini denedim, yardım bölümünü ve internetteki birkaç siteyi kontrol ettim ve hiçbir şey işe yaramadı.

Bir diyor ki:: Satır 57 (MUL_MAC d1, d3) HATA: Aşağıdaki kod derleme yaparken

Halen, iki hata iletileri görüntüler Geçersiz değişken diğer diyor: Satır 60 (MUL_SUB bsr) HATA:

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 
+0

_ "derleme yapmıyor" _. Hata mesajı alıyor musunuz? Eğer öyleyse, mesaj tam olarak ne diyor? – Michael

+0

Bu iyi bir nokta, bunu içerecek şekilde düzenlemeyi düzenleyeceğim, ancak temel olarak aşağıdakileri derlediğimde iki hata iletisi görüntüleniyor: Biri şöyle diyor: Çizgi 57 (MUL_MAC d1, d3,) HATA: Geçersiz değişken Diğeri ise: Line 60 (bsr MUL_SUB) HATA: Geçersiz argüman – gameCoder95

cevap

0

en azından ben bu

gibi sondaki virgül kaldırmak olacaktır: Geçersiz değişken İşte

benim kaynak kodu (MC68000'de El Sıkışmalı montaj) 'dir