Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по макросам в асемблере
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Alex_D
Нужно немного модифицировать программу на ассемблере для PIC16F84. MPASMwin выдает ошибку
по строке include <macro.mac>. (Часть исходника программы приведена ниже.)
Поясните пожалуйста, это включение на еще одну внешнюю программу или часть библиотеки
которую нужно поместить в общую папку. Где взять <macro.mac>?
Спасибо откликнувшимся


;=============================================
;
include <macro.mac>
;
;=============================================
LIST p=16F84
__CONFIG 03FF1H
;=============================================
MisterDi
Для начала просто закомментировать эту строку и по листингу посмотреть на ошибки(если будут). Дальше разобраться с используемыми макросами. С вероятностью 90% все решится. Если макросы таки используются - тогда смотреть по логике работы программы
Alex_D
Без заремливания macro.mac
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84 "dscallcd.asm" /l"dscallcd.lst" /e"dscallcd.err" /d__DEBUG=1
Error[105] D:\326M\PIC\2\DSCALLCD.ASM 12 : Cannot open file (Include File "macro.mac" not found)
Warning[207] D:\326M\PIC\2\DSCALLCD.ASM 95 : Found label after column 1. (jmp)
Error[122] D:\326M\PIC\2\DSCALLCD.ASM 95 : Illegal opcode (Start)


Если заремить macro.mac
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84 "dscallcd.asm" /l"dscallcd.lst" /e"dscallcd.err" /d__DEBUG=1
Warning[207] D:\326M\PIC\2\DSCALLCD.ASM 95 : Found label after column 1. (jmp)
Error[122] D:\326M\PIC\2\DSCALLCD.ASM 95 : Illegal opcode (Start)
DpInRock
Для начала - найти этот файл. Ибо это часть исходника.
Ну, либо догадаться что делает макрос Start и написать его самому.
Alex_D
Так Start - вроде метка
и по чем видно что macro.mac -макрос старта?

00010 ;=============================================
Error[105] : Cannot open file (Include File "macro.mac" not found)
00012 include <macro.mac>
00014 ;=============================================
.. .
.
..
.

0000 00094 org 0
Warning[207]: Found label after column 1. (jmp)
Error[122] : Illegal opcode (Start)
0000 00095 jmp Start
. . .
. . .
. . .

00329 ;=============================================
00330 ;Program start here ( cold start )
00331 ;
008A 00332 Start
008A 1683 00333 bsf Status,RP0
.
.
.





Я так понимаю макросов в исходнике нет так как нет
exitm и endm
DpInRock
Я не телепат, ё.
_Pasha
Адурэть! jmp - это и есть имя макроса. Что он делает - догадаться нетрудно. Зачем он - вопрос философский, наверное для тупопереноса исходников с параллаксовскаго асма на историческую родину smile.gif Не надо stop_after_first_error, иначе будем обсуждать мелкие вопросы до след.года
Alex_D
Понимаю что это уже перебор.... Но может найдется кто поможет. В первую очередь нужно переассемблировать под
PIC16F628A.
Исходник http://www.sharemania.ru/0183136
Автора беспокоить не решаюсь.
Спасибо откликнувшимся!
_Pasha
Код
jmp macro addr1


goto addr1

endm

;............................

jnc macro addr1

btfss Status,CF

goto addr1

endm

;..........................

jz macro addr1

btfsc Status,ZF

goto addr1

endm

;........................

jnz macro addr1

btfss Status,ZF

goto addr1

endm


Вставьте ето в исходничег. Если что-то пропустил - пусть товарищи помогут. За сим прощаюсь - некогда стало.
Alex_D
Конечно спасибо большое! Но может ктото растолкует, что умный человек сказал. Куда вставить, и почему применялся этот макрос.
_Pasha
Цитата(Alex_D @ Aug 3 2009, 11:28) *
Куда вставить

Товарисч, голову включи!
Alex_D
Спасибо Паша. Включаю , но в танке ж еще. Я так понял что эту програму перекомпилировали с другого процессор в котором
jmp, jnc, jz, jnz выполнялись иначе. Поэтому их заменили на макросы. Если это так, то я
должен код, который Вы предложили, просто вставить перед первой командой программы, а
include macro.mac заремить\удалить. Так я и сделал, но ошибки остались.
_Pasha
Какие именно ошибки остались? 

По- поводу перекомпилили -  был такой ассемблер, на  www.parallaxinc.com, правда давненько это было. Но ножки растут-точно оттуда
AHTOXA
Цитата(Alex_D @ Aug 3 2009, 20:04) *
Я так понял что эту програму перекомпилировали с другого процессор в котором
jmp, jnc, jz, jnz выполнялись иначе. Поэтому их заменили на макросы.


Всё правильно. Только другой - не процессор, а ассемблер.

Цитата(_Pasha @ Aug 3 2009, 21:27) *
По- поводу перекомпилили - был такой ассемблер, на www.parallaxinc.com, правда давненько это было. Но ножки растут-точно оттуда


Если так, то там практически все мнемоники другие. Наверное проще в инете найти этот macro.mac, чем всё перелопачиватьsmile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.