Author |
Message |
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
в каких атмега-8 подобных мелкоконтроллерах можно загрузить программу в озу и переслать туда управление? (знаю что так можно делать и делается во всяких арм и всяких х86 а что доступно для нас)
|
08 Mar 2012 08:36 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1388 Location: Abakan
|
На сколько я помню, в атмегах нельзя использовать внешную память программ. Издержки гарвардской архитектуры. Кстати уже обсуждалось где-то тут на форуме. Только байт-код. Как вариант - семейство MCS51, там несмотря на гарвардскую архитектуру можно ставить внешную память программ, которую можно внешне логически объединять с памятью данных.
|
08 Mar 2012 09:58 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
В случае с AVRками не сколько издержки гарвардской, сколько издержки RISC и однотактового доступа к памяти программ. Ибо, у MCS51 тоже память программ отдельная, однако можно соединить ее с памятью данных.
|
08 Mar 2012 11:34 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
а хотябы не во внешнюю а в свою озу шку допустим атмеги8 можно такую операцию сделать? узнать адрес начала озу и переслать управление туда
и так на всякий случай где можно найти систему команд х8086(с байт кодами + код на ассемблере + описание)
|
08 Mar 2012 12:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Возьми вот здесь:
Описание системы команд микропроцессоров Intel
Почему-то не нашел в Интернете этой подборки... запускай _index_.htm
|
08 Mar 2012 14:00 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
спс довольно не плохо но там нету компилированной команды
|
08 Mar 2012 14:51 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
(с) " ...неблагодарный... ему ещё и колёсики!"
Ну тогда сам ищи в Инете электронный справочник TECH Help.
|
08 Mar 2012 15:42 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
В течхелпе мало асма. Нужен Хелппц. Энивей, доставлено!
|
08 Mar 2012 23:18 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я может чего не понял, " компилированной команды" - это ты имел в виду код команды? Может быть таблицы справочников и сподручнее, но код любой команды, тем более что для х8086, очень просто и быстро увидеть под утилитой DEBUG. Пишешь в ней конкретную строку в мнемонике - и тут же получаешь код команды. А справочники любят погрешить описаниями типа - код: ddXXXYYY где XXX - номер регистра приёмника, YYY - номер регистра источника, dd - код операции. Смотри сам, как тебе удобнее... PS. Озадачился сам, не кончился ли у М$ debug.exe?... погуглил:
|
09 Mar 2012 04:13 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
ну это ладно я книгу нашел в ней более 200 страниц команд с описанием и с кодами команды
главный вопрос выбор команды через case либо еть другой способ?
|
09 Mar 2012 08:30 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
почему-то вспомнились вилки, хлеб и троллейбус
|
09 Mar 2012 08:35 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
кстати книга довольно неплохая
В.И. Юров Assembler 2-е издание
в приложении есть все команды IA-32 с описанием , машинной командой , изменяемыми флагами
озу на все регистры думаю должно хватить а вот пзу на описание наврятли... мега 32 наверное как минимум нужна
дач подскажите как оформить выборку команды ? ну вот допустим
if cm[1] = 37 then \\команда AAA
begin
if (((AL <<4) >>4) > 9) or (AF =1) then
begin
AL:=AL+6;
AH:=AH+1;
AF:=1;
CF:=1;
AL:=AL AND 0fh;
end
else AL:=AL AND 0fh;
end;
ну собственно таким образом все команды организовать
как думаете получится?
|
09 Mar 2012 09:26 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Это смотря что ты хочешь получить. Если дизасм - то можно тупо кейсом. А для i8080 очень хорошо подходит побитовое разложение команды.
|
09 Mar 2012 10:37 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
а можно поподробнее ?
типа такого
если 1 бит = 1 тогда
{
если 2 бит равен 0 тогда {}
если 2 бит равен 1 тогда {}
}
ну собственно такая вложенность или я что-то неправильно понял?
|
09 Mar 2012 11:03 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну да - я тебе и привел пример: код: ddXXXYYY где XXX - номер регистра приёмника, YYY - номер регистра источника, dd - код операции.
примерно так, что собственно мы разбирали где-то как парсинг кода команды.
Мне только на Паскале твоём это непривычно несколько.
Но почему бы и нет.
На ассме я бы сдвигами и масками стал делать, ну и таблицы можешь попробовать заюзать.
Last edited by Lavr on 09 Mar 2012 20:42, edited 1 time in total.
|
09 Mar 2012 11:30 |
|
|