Метка в теле макроса

Тема в разделе "WASM.RESEARCH", создана пользователем RGZ, 30 янв 2006.

  1. RGZ

    RGZ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2006
    Сообщения:
    8
    Есть часть сорцов + дизассемблер конечного продукта, нужно восстановить недостающую часть сорцов.



    В сорцах были обнаруженны обращения к макросу:



    BlockTransfer.b Source,Destination,D0



    Затем в дизассемблере, в точке вызова макроса, нашли следующий код:



    movem.l d0/a0-a1,-(sp)

    movea.l ($A001C).l,a0

    movea.l ($A0020).l,a1

    move.w d0,d0

    subq.w #1,d0



    loc_3FA2: ; эту метку явно сгенерил дизассемблер



    move.b (a0)+,(a1)+

    dbf d0,loc_3FA2 ; тут проблемка

    movem.l (sp)+,d0/a0-a1



    Если просто написать аналогичное в MACRO ... ENDM естественно получаем ** ERROR:dntknw:553) Duplicate label (ignored). (Компайлер asm68k Microtec Research Inc.)



    На сколько я понимаю, переход на метку в:

    dbf d0,loc_3FA2

    нужно заменить на что-то типа

    dbf d0,текущая позиция минус сколько-то...



    Как это сделать?
     
  2. RGZ

    RGZ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2006
    Сообщения:
    8
    Отбой, разобрались, всем спасибо за внимание :)