программа в озу
Moderator: Shaos
-
- Maniac
- Posts: 254
- Joined: 14 Jul 2011 02:18
- Location: Гомель
программа в озу
в каких атмега-8 подобных мелкоконтроллерах можно загрузить программу в озу и переслать туда управление? (знаю что так можно делать и делается во всяких арм и всяких х86 а что доступно для нас)
-
- God
- Posts: 1388
- Joined: 02 Jan 2006 02:28
- Location: Abakan
На сколько я помню, в атмегах нельзя использовать внешную память программ. Издержки гарвардской архитектуры. Кстати уже обсуждалось где-то тут на форуме. Только байт-код. Как вариант - семейство MCS51, там несмотря на гарвардскую архитектуру можно ставить внешную память программ, которую можно внешне логически объединять с памятью данных.
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
-
- Maniac
- Posts: 254
- Joined: 14 Jul 2011 02:18
- Location: Гомель
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Возьми вот здесь:7400 wrote:...где можно найти систему команд х8086(с байт кодами + код на ассемблере + описание)
Описание системы команд микропроцессоров Intel
Почему-то не нашел в Интернете этой подборки...

-
- Maniac
- Posts: 254
- Joined: 14 Jul 2011 02:18
- Location: Гомель
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
В течхелпе мало асма. Нужен Хелппц. Энивей, доставлено!Lavr wrote:Ну тогда сам ищи в Инете электронный справочник TECH Help.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Я может чего не понял, "компилированной команды" - это ты имел в виду код команды?7400 wrote:...но там нету компилированной команды
Может быть таблицы справочников и сподручнее, но код любой команды,
тем более что для х8086, очень просто и быстро увидеть под утилитой DEBUG.
Пишешь в ней конкретную строку в мнемонике - и тут же получаешь код команды.
А справочники любят погрешить описаниями типа - код: ddXXXYYY где XXX - номер
регистра приёмника, YYY - номер регистра источника, dd - код операции.
Смотри сам, как тебе удобнее...
PS. Озадачился сам, не кончился ли у М$ debug.exe?... погуглил:
- В Windows XP debug.exe присутствует.
- В ответ на попытку ввести 'debug' у себя в Windows7 получил сообщение об отсутствии такой команды.
- Насколько я понял, стоит Windows7 x64 ? Потому как в 32 разрядной версии Windows 7 он присутствует (сам проверял).
-
- Maniac
- Posts: 254
- Joined: 14 Jul 2011 02:18
- Location: Гомель
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
-
- Maniac
- Posts: 254
- Joined: 14 Jul 2011 02:18
- 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;
ну собственно таким образом все команды организовать
как думаете получится?
В.И. Юров 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;
ну собственно таким образом все команды организовать
как думаете получится?
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
-
- Maniac
- Posts: 254
- Joined: 14 Jul 2011 02:18
- Location: Гомель
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Ну да - я тебе и привел пример: код: ddXXXYYY где XXX - номер7400 wrote:а можно поподробнее ?
типа такогону собственно такая вложенность или я что-то неправильно понял?Code: Select all
если 1 бит = 1 тогда { если 2 бит равен 0 тогда {} если 2 бит равен 1 тогда {} }
регистра приёмника, YYY - номер регистра источника, dd - код операции.
Code: Select all
если dd = 11 тогда
команда = MOV
{
если XXX равен 000 тогда {это регистр АХ}
если YYY равен 010 тогда {это регистр ВХ}
}
Мне только на Паскале твоём это непривычно несколько.
Но почему бы и нет.
На ассме я бы сдвигами и масками стал делать, ну и таблицы можешь попробовать заюзать.
Last edited by Lavr on 09 Mar 2012 20:42, edited 1 time in total.