Как из 4х чаров собрать один лонг?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Дима 06 сентября 2004 г. 00:24

Думаю кто-то уже решал подобную проблему...

Есть 4 переменные типа char.
Есть одна переменная типа long.
Нужно в иаре сделать асмовую вставку, которая распихает чары по 4м байтам лонга. Проблема в том, что я не знаю, как выяснить, в какие регистры компилятор спрятал лонговую переменную.

Если эту задачу решить на С, банальным
data=(data3<<24)|(data2<<16)|(data1<<8)|(data0);
то два старших байта в data будут заполняться 0xff, вместо нужного содержимого data2 и data3. Короче глючит компилятор... =(


Товарищи, выручайте!!!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru