[an error occurred while processing this directive]
Как в CV получить из int младший и старший байты в виде char? Или а asm переходить?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Vilkin
05 января 2003 г. 13:17
Составить ответ
|||
Конференция
|||
Архив
Ответы
Обозвать 1 инт по конкретному адресу и обращяца к нему со сдвигом или непосредственно
—
kolian
(05.01.2003 21:14, 150 байт)
толька работать такой спосоп ни всехда будит. И нипартируемый в принцыпе.
—
\m/ Вован \m/
(05.01.2003 21:47,
пустое
)
В Кейле работает такая штучка с любым int ...
—
New__body
(05.01.2003 16:19, 150 байт)
Так это на всех, где int 16 бит и LITTLE-ENDIAN работать будет. Поубвивал бы :-).(не обижайтесь), потом такое портировать.........
—
DASM
(05.01.2003 16:27,
пустое
)
Так ведь просят же пояснить про старший и младший. Логично предположить, что это про 16 бит. Так за что убивать-то?
—
New__body
(05.01.2003 16:32,
пустое
)
А с чего вы вяли что младший байт будет по младшему АДРЕСУ ?
—
DASM
(05.01.2003 16:36,
пустое
)
Так я же про Кейл!!! Там расположение обратное! Там в соответствии с архитектурой MCS-51. В случае стандартных слов IBM формата Lo и Hi надо поменять местами!
—
New__body
(05.01.2003 16:43,
пустое
)
А это зачем ? И у PC и у Keil одинаково, вначале младший
—
DASM
(05.01.2003 16:48,
пустое
)
Нет и еще раз нет!!! В PC по младшему адресу слова сидит старший байт, а в Кейле - младший. Пример расположения в памяти int = 1000 по адресу 0x10: PC - 0x10: 0x03; 0x11: 0xe8; Keil - 0x10: 0xe8; 0x11: 0x03.
—
New__body
(05.01.2003 16:58,
пустое
)
ВСЕ ВЕРНО!!! ВСЕ НАОБОРОТ!!! После празников башка не варит. У меня сейчас проект сетевого обмена и управления PC - MCS-51, вот из-за несоответствия одного формата другому и поехала крыша. Но это не принципиально. Главное именно такое обращение (через указатель) самое простое к int 16 бит.
—
New__body
(05.01.2003 22:02,
пустое
)
В писюке младший вначале а в кейле старший. При обмене идентично описанными структурами по указателю начал структур и инкрименту приходица после получения всей структуры свапировать инты и лонгинты.
—
kolian
(05.01.2003 21:05,
пустое
)
На всякий
—
DASM
(05.01.2003 17:24, 416 байт)
будьте проще - debug.com(exe) завсегда с нами! ;О)
—
mse
(05.01.2003 17:29,
пустое
)
Еще чего придумаете ? В PC вначале младший
—
DASM
(05.01.2003 17:11,
пустое
)
Пральна!
—
mse
(05.01.2003 17:26,
пустое
)
Ответ: Более примитивной задачи по программированию на C не видел
—
trainer
(05.01.2003 13:24, 128 байт)
И еще библиотечное делени используй, тогда точно не из пушки будет
—
korotkov
(05.01.2003 23:15,
пустое
)
А так уже забыли!?
—
korotkov
(05.01.2003 15:22, 244 байт)
"// For AVR!!! " Ж-)))
—
DASM
(05.01.2003 16:28,
пустое
)
Ну а в вопросе что спрашивалось!!! Для конкретной архитектуры своя реализация.
—
korotkov
(05.01.2003 23:10,
пустое
)
Ответ: Типичный пример стрельбы из пушек по воробьям.
—
trainer
(05.01.2003 15:52, 235 байт)
Но union нагляднее : var.low var.high
—
ValterG
(05.01.2003 13:47, 74 байт)
Только работать будет не всегда.
—
Yuriy
(05.01.2003 18:41,
пустое
)
а вот на мотороле можно так
—
Romario
(05.01.2003 13:35, 221 байт)
Ответ: Для каждого конкретного компилятора может быть своя наиболее оптимальная запись.
—
trainer
(05.01.2003 13:41,
пустое
)
Ответ: Это то же самое!
—
Bill
(05.01.2003 13:38,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru