[an error occurred while processing this directive]
"Вопрос к армянскому радио.." ну чисто теоритически 0x11
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Roman M.
04 мая 2006 г. 19:36
В ответ на:
такой вопрос. дано 2-х портовое 32р ОЗУ с одной стороны интел с другой моторола
отправлено ы 04 мая 2006 г. 19:18
Составить ответ
|||
Конференция
|||
Архив
Ответы
да тут спор вышел, ответ вроде бы очевиден а с другой стороны не очевиден. я вот лично не могу сказать
—
ы
(04.05.2006 19:46
80.92.98.211
,
пустое
)
вернее могу что будет перевертыш но верно ли это?
—
ы
(04.05.2006 19:47
80.92.98.211
,
пустое
)
Если с одной стороны big endian, с другой little, и шины данных идут один к одному - то будет перевертыш.
—
SM
(04.05.2006 19:48
195.225.131.186
,
пустое
)
именно так и есть про эндианы. тогда такой вопрос EMI(C) у проца с little выставлет данные на 32 бита тож перевертышем или нет?
—
ы
(04.05.2006 19:56
80.92.98.211
, 397 байт)
На 32-битную шину 32-битные данные выставляются всегда не зависимо от endian по честному. А вот если один байт или слово 16-битное начать писать-читать, то там начнется...
—
SM
(04.05.2006 20:03
195.225.131.186
,
пустое
)
ага, значит по честному....почему тогда интел с моторолой друг друга не поймут в примере выше?
—
ы
(04.05.2006 20:05
80.92.98.211
,
пустое
)
Потому как пишете 32-битное слово, а читаете младший байт. Который по разумению обоих находится в разных местах. Читайте тоже 32-битное слово, и потом его на 4 байта сдвигами делите, и будет все ОК.
—
SM
(04.05.2006 20:06
195.225.131.186
,
пустое
)
как это младший байт. читаю я слово сразу все. потом уже выдираю младший байт.
—
ы
(04.05.2006 20:10
80.92.98.211
, 139 байт)
Да, вообще-то. В таком раскладе оно где угодно должно быть 44.
—
SM
(04.05.2006 20:31
195.225.131.186
,
пустое
)
ну тогда всё вяжется. значит поймут друг друга.
—
ы
(04.05.2006 20:35
80.92.98.211
,
пустое
)
Не так. Самый младший байт в lw=0x11, он располагается самому старшему адресу(смещению относительно адреса lw). Соответственно самый старший байт=0x44 и он располагается по самому младшему адресу. Это свойство такое у больших индейцев, байты раком ставить.
—
-=ВН=-
(04.05.2006 20:18
194.190.181.231
,
пустое
)
ну так b то всегда 44
—
ы
(04.05.2006 20:33
80.92.98.211
, 182 байт)
Так Вы не совсем честно сравниваете. Вы в Вашем первом примере выведите куда-нибудь lw у моторолы. Посмотрите как там байты лягут.
—
-=ВН=-
(04.05.2006 20:43
194.190.181.231
, 145 байт)
та это понятно...меня интересовало зависит ли работа EMC от endian т.к. с EMC у little не работал поэтому узнать неоткуда было:) (вот я такой примерчик и привел). всем спасибо, разобрались.
—
ы
(04.05.2006 20:46
80.92.98.211
,
пустое
)
Это я смудил немного. 44 должно быть.
—
-=ВН=-
(04.05.2006 20:59
194.190.181.231
,
пустое
)
хотя интересно , во внутренню память процы пишут в зависимости от endian а во вне кидают как есть?
—
ы
(04.05.2006 20:50
80.92.98.211
,
пустое
)
Блин. Да они и туда и сюда кидают как есть. Пока целое машинное слово. А если его дробить начать, причем адресуясь во всякие нечетные места, вот только там big/little и вылезет.
—
SM
(04.05.2006 20:56
195.225.131.186
,
пустое
)
Ответ
—
ы
(04.05.2006 21:03
80.92.98.211
, 282 байт)
Не, кидает именно как есть (+)
—
SM
(04.05.2006 21:20
195.225.131.186
, 398 байт)
а, понятно. значит байты вертяться при побайтном чтении. а физически они лежат как есть?
—
ы
(04.05.2006 21:23
80.92.98.211
,
пустое
)
Именно так. Физически, если на С описать, это выглядит примерно так (+)
—
SM
(04.05.2006 21:29
195.225.131.186
, 421 байт)
ясно. просветили. спасибо.
—
ы
(04.05.2006 21:31
80.92.98.211
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru