Easyelectronics.ru

Электроника для всех
Текущее время: 13 апр 2021, 08:36

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



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

Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос гуру ассемблера.
СообщениеДобавлено: 17 окт 2011, 18:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 03 фев 2010, 00:54
Сообщения: 198
Откуда: Беларусь г.Витебск
Всем привет! Возникла необходимость написать небольшой код для 8051 на ассме, но к сожалению я в ассме не очень, поэтому прошу помощи. Есть два вопроса.
1. Нужно переслать данные из ячейки AC05h в ячейку AC06h. Для этого пишу такую команду MOV AC05h,AC06h. Но помимо команды, меня интересует машинный код, посмотрел в разных книгах по ассму, таблицы команд и кодов и сделал вывод что код будет 7F 06AC 05AC, так ли это?
2. Нужно сделать Инкрементирование HL пары, какую команду для этого использовать, полагаю что INX H, или я не прав? Просто видел где то, что используется команда INR H, но по моему это не правильно.

Прошу сильно не пинать, так как с асмом работал очень давно, и уже ничего толком не помню.


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

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
Алексей78 писал(а):
1. Нужно переслать данные из ячейки AC05h в ячейку AC06h. Для этого пишу такую команду MOV AC05h,AC06h.
... во-первых о каких ячейках речь - писать можно только в ОЗУ или внешнюю RAM, а во-вторых запись осуществляется через R0-R1 или DPTR.
Алексей78 писал(а):
2. Нужно сделать Инкрементирование HL пары, какую команду для этого использовать,...
... в 51 таких регистров нет - это не 8080


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

Зарегистрирован: 30 янв 2010, 01:03
Сообщения: 650
Откуда: Херсон
Вот держи хелп. Делал для студентов.
Разбил архив. Нужно переименовать.


Вложения:
Help.zip [133.14 Кб]
Скачиваний: 618
ReName_to Help.z01.zip [200 Кб]
Скачиваний: 593

_________________
Если руки золотые, то не важно с какого места они растут.
Изображение
Изображение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос гуру ассемблера.
СообщениеДобавлено: 17 окт 2011, 21:37 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:55
Сообщения: 5626
Откуда: Уругвайская АССР
mov dptr, 0xac05
movx a,@dptr
inc dptr
movx @dptr,a

пара hl присутствует только в 8080/8085, инкрементируется командой inx h

_________________
Без гнева и жестокости, сегодня Смерть взмахнёт косой, и ангел тайными дорогами мой милый Кубик унесёт с собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос гуру ассемблера.
СообщениеДобавлено: 17 окт 2011, 22:00 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 03 фев 2010, 00:54
Сообщения: 198
Откуда: Беларусь г.Витебск
Цитата:
... в 51 таких регистров нет - это не 8080

Да, конечно Вы правы, думаю об одном пишу другое :), бывает.
Цитата:
... во-первых о каких ячейках речь - писать можно только в ОЗУ или внешнюю RAM, а во-вторых запись осуществляется через R0-R1 или DPTR.

Имелись в виду адреса ячеек.
Цитата:
Вот держи хелп. Делал для студентов.
Разбил архив. Нужно переименовать.

Спасибо, но к сожалению не могу распаковать, второй архив поврежден.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос гуру ассемблера.
СообщениеДобавлено: 17 окт 2011, 23:28 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2010, 01:03
Сообщения: 650
Откуда: Херсон
http://depositfiles.com/files/eonanl45q
В этом архивчике должн быть хелп и компиль и IDE.

_________________
Если руки золотые, то не важно с какого места они растут.
Изображение
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос гуру ассемблера.
СообщениеДобавлено: 17 окт 2011, 23:45 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2010, 01:03
Сообщения: 650
Откуда: Херсон
Если адреса ячеек памяти не превышают 127 (DATA), то копировать из ячейки в ячейку на прямую можно.
Код:
mov 07fh, 056h

Ну а если память внешняя (XDATA) или 128-255 (IDATA), то только косвенно.
Код:
mov DPTR, 0A55Ah ; Адрес откуда читаем
movx A,@DPTR ; Читаем в А из ...(XDATA)
movx @DPTR,A ; Пишем из А в ...(XDATA)
mov r1, 128 ; 128-255 (IDATA)
mov @r1, A
mov A, @r1

_________________
Если руки золотые, то не важно с какого места они растут.
Изображение
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос гуру ассемблера.
СообщениеДобавлено: 18 окт 2011, 07:16 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 644
Откуда: ... Из далекой, далекой галактики
инкримент осуществляется коммандой INC

пример:
инкриментирует значение, которое находится в R1

Код:
INC R1

_________________
С миру по нитке


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


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


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

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


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

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

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