Сообщение от CERGEI1982
|
а можно ли потом с бейсика преобразовать в ассамблер,чтоб симуляцую сделать,или другими методами?
|
PIC Basic генерит ASM, который далее компилится либо собственным ассемблером, либо микрочиповским, если установлен MPLAB.
Мне тоже несколько раз нужно было провести симуляцию в MPLAB, поэтому по собственному опыту скажу, что на самом деле удобнее использовать LST. Алгоритм грубо следующий:
1. выкидываем все строки, которые НЕ НАЧИНАЮТСЯ с 00
в 1 поз. строки
2. оставшиеся строки обрезаем слева по 29 поз.
Получается практически готовый ASM.
Если точнее, то нужно еще выбирать строки с #define и т.д.
Вот кусок из программы, который делает такую конвертацию. Оператор SUB(Line, StartPosition, Length)
производит вырезания куска из строки Line, начиная с StartPosition длиной Length.
if (sub(LST:Line,1,1) = '0') and (sub(LST:Line,6,1) ‹› ':') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,29,7) = '#define') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,37,3) = 'END') and (sub(LST:Line,40,1) ‹› 'A' )then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,37,3) = 'ORG') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,37,2) = 'DE') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,37,4) = 'LIST') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,37,7) = 'INCLUDE') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,37,
= '__config') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
if (sub(LST:Line,61,3) = 'EQU') then
ASM:Line = sub(LST:Line,29,250)
add(AsmFile)
end
Я бы скинул программу - не жалко, но она большая за счет прилинкованных библиотек, трафик жалко.