FreshMan писал(а): а как дела с этим обстоят у pic, arm, mps40 ?
Универсальным ответом будет - смотрите спецификацию на конкретный "камень". Например, могу сказать, что МК на на основе ARM Cortex-M4F умеет не только целочисленную арифметику, но с плавающей точкой. В том числе и умножать/делить.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
FreshMan писал(а): а как дела с этим обстоят у pic, arm, mps40 ? может они помимо этого еще и делить могут ?
Про ARMы ответили выше. Большинство современных моделей MSP430 снабжены 32х32 перемножителем с накоплением 64-битного результата, но в них отсутствует делитель. У PIC18 есть только 8х8 перемножитель, зато у PIC24/33 имеется 16х16 перемножитель и 32/16 делитель. У х51: 8х8 перемножитель и 8/8 делитель. RL78: 16х16 перемножитель и 32/32 делитель.
подогнали несколько плат с микросхемами памяти AMIC A29010 (предположительно они выдраны из автомобилей и раньше умели разговаривать). подскажите, чем она шьется, и может какой-нибудь русскоязычный ресурс/файл, где можно было бы получить общее представление о том, как с ней работать. даташит читаю, но раньше с МС памяти не общался
Вечер потратил но так и не понял, вопрос следующий: Есть табличное конвертирование. Скажем для простого вывода цифр 0-9. Тут всё понятно - порядковый номер в таблице (массиве) есть дешифрованная цифра. А как быть со шрифтом? Откуда компилятор знает что буква "А", например соответствует 10-му элементу массива, а не 23-му например?
Таблицу составляет тот, кому нужно получить правильный результат , вот составитель таблицы пусть и знает.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Вся разница лишь в том, что семисегментная цифра занимает 1 байт, а буква занимает в таблице знакогенератора несколько байт, например, 5. Тогда смещение в массиве будет код символа, умноженный на 5. Можно знакогенератор сделать в виде двухмерного массива, тогда код символа будет просто одним из индексов.
А компилятор и не знает. Просто для него буква "А" это число и не более! А уже это число можно использовать как индекс массива, откуда можно извлечь побитовое изображение буквы. Иногда делают финт ушами, чтобы съекономить место под шрифт - используя в качестве индекса разность кода символа и базы с которой начинается шрифт в памяти. Например шрифт задан с буквы "A", которой соответствует 0-й индекс. Если надо реализовать только шрифт для букв и символов и не хочется реализовывать весь шрифт для всех 255 символов, можно использовать таблицу преобразования код символа-индекс в массиве шрифта, если это диапазоны из ASCII таблицы символов, то можно обойтись обычной арифметикой и условиями.
Ну на всякий случай перепроверьте, конечно же - вдруг у вас некий экзотический компилятор, и в настройках установлено считать, например, код RADIX .. случайно. Но это вряд ли. Обычно, в 99% случаев, код ASCII
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Т.е. если я правильно понимаю - это и есть самый настоящий ASCII? Получается в этом случае я не могу например исключить часть ненужного мне кода для экономии памяти? Или же могу?
Не должны. Знакогенератор вообще от балды может быть сделан. Другое дело что для удобства коды символов знакогенератора совпадают с используемым в системе алфавитом. Сейчас это ASCII но эти кода не определены для русских букв(стабильны лишь символы с кодами 0..127), а вот тут начинаются уже пляски... расположение букв для кодировок CPP-866(DOS), win-1251 и KOI-8 отличаются. Иногда возникает проблема когда IDE под линуксом а знакогенератор в кодировке win-1251, тогда ты вводишь одни символы в кодировке KOI-8 они ложаться в исходный файл в двоичных кодах а в МК на дисплее эти коды соответствуют другим символам... Если непонятно... представь себе что происходит при сохранении символа буквы "Ф" - она записывается в файл исходника как байт 0xD4 что соответствует символу "Ф" в кодировке Win-1251, компилятор берет и просто подставляет это число в прошивку. Отныне это не символ а число 0xD4. А в прошивке находится знакогенератор в кодировке DOS, на месте символа 0xD4 там определен символ псевдографики - левый нижний двойной угол.
Совершенно верно. Всё, что выходит за 127 ASCII имеет несколько вариантов. А вот взять только подмножество - допустим только 64 из 127 - это запросто, ежели Вам так будет удобно.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
"Само" ничего не бывает. Есть строго определённая схема работы - с какими кодами и что должно произходить - вот по этой схеме, по алгоритму, компилятор и производит все действия. И никак иначе. Есть в алгоритме метод работы с кодами символов - вот строго по нему всё и произходит.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста