Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Как на С51 реализовать табличное перекодирование+++
Отправлено
dshabrov (84.21.231.242) 10 февраля 2010, г. 15:26
На АСМе элементарно:
tabl: jnb acc.7,tabex ;символы 0-7Fh не обpабатываются
clr acc.7 ;сбpосить стаpший бит для индексации
inc A ;перекодировка pусских символов набоpа ASCII
movc A,@a+pc ;в символы знакогенеpатоpа ЖКИ
tabex: ret ;
db 041h,0a0h,042h,0a1h,0e0h,045h,0a3h,0a4h,0a5h,0a6h,04bh,0a7h,04dh,048h,04fh,0a8h;8Fh
; А, Б, В, Г, Д, Е, Ж, З, И, Й, К, Л, М, H, О, П
db 050h,043h,054h,0a9h,0aah,058h,0e1h,0abh,0ach,0e2h,0adh,0aeh,0c4h,0afh,0b0h,0b1h;9Fh
; Р, С, Т, У, Ф, Х, Ц, Ч, Ш, Щ, Ъ, Ы, Ь, Э, Ю, Я
db 061h,0b2h,0b3h,0b4h,0e3h,065h,0b6h,0b7h,0b8h,0b9h,0bah,0bbh,0bch,0bdh,06fh,0beh;AFh
; а, б, в, г, д, е, ж, з, и, й, к, л, м, н, о, п
db 020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h;BFh
;---------------------------------------------------------------------------------
db 041h,0a0h,042h,0a1h,0e0h,045h,0a3h,0a4h,0a5h,0a6h,04bh,0a7h,04dh,048h,04fh,0a8h;CFh
; А, Б, В, Г, Д, Е, Ж, З, И, Й, К, Л, М, H, О, П
db 050h,043h,054h,0a9h,0aah,058h,0e1h,0abh,0ach,0e2h,0adh,0aeh,0c4h,0afh,0b0h,0b1h;DFh
; Р, С, Т, У, Ф, Х, Ц, Ч, Ш, Щ, Ъ, Ы, Ь, Э, Ю, Я
db 061h,0b2h,0b3h,0b4h,0e3h,065h,0b6h,0b7h,0b8h,0b9h,0bah,0bbh,0bch,0bdh,06fh,0beh;EFh
; а, б, в, г, д, е, ж, з, и, й, к, л, м, н, о, п
db 070h,063h,0bfh,079h,05ch,078h,0e5h,0c0h,0c1h,0e6h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h;FFh
; p, с, т, у, ф, х, ц, ч, ш, щ, ъ, ы, ь, э, ю, я
Составить ответ | Вернуться на конференцию
Ответы
- Ответ: Господа, господа... подождите. Остался один вопрос+++ - dshabrov (10.02.2010, 17:46:21 84.21.231.242, 931 байт)
- Дословно: ifdex &= (~0x80)); return ( table[index] ); - VasilyS (10.02.2010, 15:36:19 80.92.96.25, пустое)
- if (tmp>127 ) tmp = tabl[tmp-128]; - misyachniy (10.02.2010, 15:32:25 194.187.111.110, пустое)
- который день мучает вопрос: зачем тебе С, если асмом хорошо владеешь? - argus98 (10.02.2010, 15:30:57 81.22.205.230, пустое)
- Ответ: Хочу также хорошо владеть С. Достали улыбки идиотов за спиной, когда говоришь что на АСМЕ проще. - dshabrov (10.02.2010, 15:51:27 84.21.231.242, пустое)
- Правильно делаешь. Проще когда на двух ногах ходить. Прихрамывать правда будешь долго, бо мыслишь асмом :-) - VasilyS (10.02.2010, 15:54:23 80.92.96.25, пустое)
- +100 Совершенно верно! ASM-атики, порой долго в своих кипа-листингах шарашатся, потерявши чего-то. Уже (вне всякого флуда) соотношение цена/качество(ресурсы памяти/скорости) в нынешних камешках такие, что в ЯВУ сам Бог информации велел писать "Ибо неча времена телесные на рутину вытрачивать!"/ Можно, даже перефразировать..."выдрочивать". С -это Экскаватор , где ASM-лопаточка в бардачке (если потребуется). - Макаров (10.02.2010, 17:21:39 95.107.95.180, пустое)
- +1, тоже довольно долго отучивался от вредных привычек - koyodza (10.02.2010, 16:00:13 93.73.215.120, 65 байт)
- чисто познавательно, а какие это вредные привычки? (+): - argus98 (10.02.2010, 16:15:39 81.22.205.230, 149 байт)
- Прежде всего рудимент - лишние глобальные переменные. - VasilyS (10.02.2010, 16:32:40 80.92.96.25, пустое)
- нет такого рудимента (+): - argus98 (10.02.2010, 16:49:42 81.22.205.230, 246 байт)
- Кормилец! Глобальные - они не по способу объявления, а по способу использования. Пишущие на ассемблере не озабочены икапсуляцией, и в условиях лимитированной памяти подсознательно утилизуют одни и те же переменные в совершенно разных частях проекта. Это входит в привычку. Этот стиль пипл, переходящий на Я.В.У. несет как знамя в течение нескольких лет :-) - VasilyS (10.02.2010, 17:00:7 80.92.96.25, пустое)
- это плохо пишущие на асме. По способу использования см.ниже - argus98 (10.02.2010, 17:04:52 81.22.205.230, пустое)
- Global scope - она и есть global scope, хоть под каким именем она не выступает. - VasilyS (10.02.2010, 17:16:1 80.92.96.25, пустое)
- Оказывывается, я был прав, это Ашипка N1. "Итак, первое правило, которое следует запомнить так же, как “жи, ши пиши через и” — не пользоваться глобальными переменными там, где этого можно избежать. При том, что это правило повторяется в каждом учебнике, очень часто разработчики, переходящие с ассемблера на С, допускают эту ошибку" - VasilyS (10.02.2010, 18:25:49 80.92.96.25, пустое, ссылка)
- ну это типа структура и её поля. Но сама структура-то у Вас осталась глобальной - koyodza (10.02.2010, 16:51:43 93.73.215.120, пустое)
- да. Плюс ещё неосознанное желание постоянно что-то оптимизировать, даже когда это абсолютно не нужно - koyodza (10.02.2010, 16:45:21 93.73.215.120, 572 байт, ссылка)
- Ответ: То есть это вопрос. - dshabrov (10.02.2010, 15:27:19 84.21.231.242, пустое)