Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 16 bit -> 2*8 bit
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
kiriusha
Извиняйте если такая тема есть, однако поиск результатов не дал.
Собственно вопрос заключается вот в чем: есть переменная состоящая из двух байтов, а нам нужно превратить ее в две переменные по одному байту. Как это сделать желательно на васике или асме?
smac
Цитата(kiriusha @ Jun 21 2008, 22:34) *
Извиняйте если такая тема есть, однако поиск результатов не дал.
Собственно вопрос заключается вот в чем: есть переменная состоящая из двух байтов, а нам нужно превратить ее в две переменные по одному байту. Как это сделать желательно на васике или асме?

Если на АСМе то, странный вопрос в теме АВР, поскольку у данных контроллеров регистры, ОЗУ, еепром - 8-ми битные, константы из флешь памяти тоже читаются в по 8 бит, хотя хранятся словами
kiriusha
просто основная программа на бейсике, так я думал может ассемблерную вставку сделать...
SasaVitebsk
Цитата(kiriusha @ Jun 21 2008, 22:35) *
просто основная программа на бейсике, так я думал может ассемблерную вставку сделать...


для ассемблера примерно так
lds r16,val16 ; младший
lds r17,val16+1; старший

Хотя здесь много вопросов.
1) Я не знаю как хранит данные ваш Бэйсик. Исходил из стандартного распределения "младшим байтом вперёд".
2) Неизвестно какие из регистров допустимо портить в ассемблерных вставках. Конечно можно сделать push/pop.

для бэйсика тоже можно примерно следующим образом
старший байт = val16/256
мл. байт = val16 - ст.байт*256.

Али арифметику в школе не учили?
VDG
элементарно через указатели, если они есть в Вашем Бейсике
kiriusha
То SasaVitebsk Спасибо огромное! Арифметику вроде как и учил, да похоже без толку laugh.gif
То VDG В моем бейсике они врядли есть. Хотя может только потому что я незнаю что это такое...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.