Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

1 96 Часть 11. Программирование микроконтроллеров АVR на ассемблере АVRasm поддерживает две однобайтовые русские кодировки: Windows- 1 25 1 (она же ANSI) и ср866 (она же DOS). Так что, если вы уверены, что на приемном конце поддерживается какая-нибудь из этих кодировок, можете рискнуть и записывать строки прямо по-русски. Иной гранью поворачивается та же самая проблема, когда речь идет о выводе сим­ волов на дисплеи. О выводе текста на графические дисплеи мы здесь говорить не будем, потому что это отдельная история и не про ассемблер, - точнее, не про ас­ семблер нашего уровня, - там можно запросто забить все 8 килобайт памяти про­ грамм АTmega8 одними только таблицами шрифтов. А в текстовых дисплеях шрифт «зашит» в память контроллера дисплея в виде таблицы символов, и, чаще всего, не одной, а нескольких - обычно двух или четырех. В дисплеях, которые продаются в России (а не привезены откуда-нибудь из Китая в кармане), одна из этих таблиц содержит кириллические символы. Понятно, что в дисплеях, изготов­ ленных в России (фирмы МЭЛТ, например), кириллическая таблица будет стоять по умолчанию, а в импортных ее придется, скорее всего, специально подключать отдельной командой. Подробности об обращении с дисплеями мы обсудим в главе 16, а здесь только остановимся на некоторых общих особенностях этих таблиц. Прежде всего - все они, хоть русские, хоть японские, одинаково (или почти одинаково - некоторые второстепенные символы могут различаться) устроены в части, касающейся АSСП, потому посылать на дисплей английские символы и знаки препинания можно, даже не глядя в описание дисплея . А основная кириллическая таблица там обычно орга­ низована не в соответствии с какой-либо конкретной кодировкой, а по тому же принципу, по которому мы составляли строку в последнем примере : отдельно зако­ дированы только русские буквы, не совпадающие по написанию с английскими. Поэтому вывод на такой дисплей русского текста всегда будет осуществляться ли­ бо напрямую числовыми кодами, либо по принципу нашего последнего примера.

RkJQdWJsaXNoZXIy MTExODQxMg==