Easyelectronics.ru

Электроника для всех
Текущее время: 26 фев 2021, 03:57

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Помогите найти ассемблер
СообщениеДобавлено: 22 мар 2014, 15:17 
Только пришел

Зарегистрирован: 22 мар 2014, 14:26
Сообщения: 13
Наткнулся на некоторые утилиты, коды, написанные еще на AVA51, сам инструмент найти не смог :(. Чем еще можно без полного переписывания, с минимальными доработками ассемблировать, например, то, что во вложении? Что-нибудь близкое к теме, так сказать :).
Спасибо.


Вложения:
utils01.zip [10.17 Кб]
Скачиваний: 265
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ассемблер
СообщениеДобавлено: 22 мар 2014, 15:51 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4381
Откуда: г. Липецк
Посробуйте загрузить в любой ассемблер 51, он выдаст вам все строчки что он не понял. Я пишу на Кейловском А51, легко адаптируется, беглый взгляд:
включаемые файлы у вас:
Код:
      %include "macros.inc"

в А51
Код:
#include "macros.inc"
P.S. Виноват, привел С эквивалент, на А51 это выглядит так
$include (macros.inc)

сегменты у вас:
Код:
      seg   code

в А51
Код:
SEG SEGMENT CODE          ; описываем сегмент кода
   RSEG    SEG   

макросы у вас:
Код:
stop   %macro
   clr   ea
   jmp   $
   %endm

в А51
Код:
stop  macro
   clr   ea
   jmp   $
   endm

Как то так. Надо пробовать.


Последний раз редактировалось anakost 22 мар 2014, 19:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ассемблер
СообщениеДобавлено: 22 мар 2014, 16:55 
Только пришел

Зарегистрирован: 22 мар 2014, 14:26
Сообщения: 13
спасибо,что отклинулись, так и пробовал и кейловском и в других....
Обойти, конечно это все можно, например в кейле так делаю, затем ассемблирую и туча-тучная ошибок, он не понимает дальше почти ничего :(. Иными словами переписать много придется.Это можно и даже нужно, ибо учусь только ассемблеру. Но вот с макро и метками типа "1?lp" или "proc, endp", столкнулся впервые и тут трудно. Ну метки я переписываю, процедуры меняю на обычные метки, а дальше идут макросы, которые кейл не признает! Хорошо, тут тоже можно обойти-читаю хелп, нахожу LT, GT и т.д. взамен макросов, а примеров нет как их прописать, а кейл в этом месте опять ошибку синтаксиса видит :( Вот решил спросить, что есть более близкое к оригиналу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ассемблер
СообщениеДобавлено: 22 мар 2014, 19:42 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4381
Откуда: г. Липецк
Mtbs писал(а):
... AVA51, сам инструмент найти не смог...

Пытаем Гугл, узнаем что AVA51 - Macro Assembler от фирмы Avocet Systems Inc. Предназначен для Windows 95, Windows 3.1, PC DOS. Сейчас и не запустишь не на чем, край все переделывать.
Приводите коды где у вас затруднения, поправим по мере сил и времени. Желательно с соответствующей ошибкой (логом компилятора).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ассемблер
СообщениеДобавлено: 24 мар 2014, 03:11 
Только пришел

Зарегистрирован: 22 мар 2014, 14:26
Сообщения: 13
Да, пытал Гугл, на сайте был, это все понятно, чуть позже попытаю вас с затруднениями по кодам :).
Пока вот такие непонятки, может Вы знаете Кейл и объясните где нестыковка, что я не так понимаю?
Читаю Assembler User's Guide - встроенную справку. В разделе Writing Assembly Programs,
подраздел Control Statements->Reference, цитата:
Код:
"ENDP Assembler Statement

Arguments name ENDP

Description The ENDP statement marks the end of a procedure definition using the PROC statement. The name must match the name used in the PROC statement.
See Also PROC
Example
P101 PROC NEAR
        CALL    P102 ; far call for P102
        RET          ; near return
P101 ENDP

P102 PROC FAR
        CALL    P101 ; near call for P101
        RET          ; far return
P102 ENDP

        END
Copyright © Keil, An ARM Company. All rights reserved."

Вчитываюсь, смотрю пример, впитываю, что имя процедуры обязательно совпадает с ENDP,
иными словами имя перед PROC и перед ENDP быть должно и должно быть одним и тем же!
Усвоил, пробую, но в ответ ошибка синтаксиса, в отчаянии читаем все подряд и находим, что
оказывается ENDP зарезервированный символ для всех типов 8051, а вот PROC только для:
Код:
"The AX51 assembler defines the following additional reserved symbols which comprise the additional instructions and registers of the Philips 80C51MX architecture".

Это наводит на мысль, меняю в проекте МК на нужный и пропадает ошибка по началу процедуры, но вот конец ее не проходит! Нахожу в подразделе Program Addresses, примеры, вот часть
одного из них:
Код:
func2      PROC    NEAR
           CALL    my_farfunc           ; generates ECALL
           RET
           ENDP

После того как перед ENDP убрал имя, то на процедуры при выборе МК от NXP не ругается, но как это вяжется с тем, что
они пишут про "ENDP Assembler Statement"?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB