реклама на сайте
подробности

 
 
> Таблицы, как сделать на Си?
Algol
сообщение Jul 31 2006, 08:28
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 140
Регистрация: 7-04-05
Из: Россия, Владимир
Пользователь №: 3 941



День добрый!
Недавно начал осваивать Си (HT-PICC) и все было хорошо, пока мне не приспичило сделать таблицу перекодировки. На асме я писал вот так, все просто и понятно - перед вызовом процедуры кидаем в W цифру, образ которой хотим получить

TABLE
ADDWF PCL,1
RETLW B'11101011' ;0
RETLW B'01100000' ;1
RETLW B'11000111' ;2
RETLW B'11100101' ;3

Вопрос к знатокам, как мне сделать тоже самое, но только на Си?

Сообщение отредактировал Algol - Jul 31 2006, 08:29
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
upc2
сообщение Aug 2 2006, 08:09
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Откуда 60 байт?
Программа на Си

void main(void)
{
char in,out;
char conv[]={0xEB,0x60,0xE5};
in=1;
out=conv[in];

}


Вот , что сделал компилятор PICC PL8.05



1 0000 0183 CLRF 0x3
2 0001 3000 MOVLW 0
3 0002 008A MOVWF 0xa
4 0003 2804 GOTO 0x4
5 0004 0183 CLRF 0x3
6 0005 2BF4 GOTO 0x3f4
.........................


1013 03F4 30EB MOVLW 0xeb
1014 03F5 1283 BCF 0x3, 0x5
1015 03F6 008E MOVWF 0xe
1016 03F7 3060 MOVLW 0x60
1017 03F8 008F MOVWF 0xf
1018 03F9 30E5 MOVLW 0xe5
1019 03FA 0090 MOVWF 0x10
1020 03FB 018C CLRF 0xc
1021 03FC 0A8C INCF 0xc, F
1022 03FD 080F MOVF 0xf, W
1023 03FE 008D MOVWF 0xd
1024 03FF 2804 GOTO 0x4
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Algol   Таблицы   Jul 31 2006, 08:28
- - psL   Цитата(Algol @ Jul 31 2006, 12:28) День д...   Jul 31 2006, 10:29
|- - Костян   Цитата(psL @ Jul 31 2006, 08:29) char con...   Aug 3 2006, 15:19
- - upc2   Использовать конструкцию "switch case"   Jul 31 2006, 12:07
- - Algol   upc2 Конструкция switch - case не даст тождественн...   Jul 31 2006, 14:12
- - upc2   1.Согласен, что массив в по сравнению с switch - c...   Aug 1 2006, 06:00
- - Algol   По п.1 согласен, что с буквами будут дополнительны...   Aug 1 2006, 06:30
|- - _Bill   Цитата(Algol @ Aug 1 2006, 09:30) По п.1 ...   Aug 1 2006, 12:54
- - Algol   В случае Си, так как посоветовал psL. В случае асм...   Aug 1 2006, 13:05
|- - _Bill   Цитата(Algol @ Aug 1 2006, 16:05) В случа...   Aug 1 2006, 13:16
- - upc2   С точки зрения экономичности совершенно одинаково,...   Aug 4 2006, 05:01
|- - dialex   Цитата(upc2 @ Aug 4 2006, 10:01) Совершен...   Aug 4 2006, 05:06
- - upc2   Сделал. 3 0002 008A MOVWF 0xa ...   Aug 4 2006, 05:19
- - Костян   В итоге с const мы видем наличие 'retlw0x60...   Aug 4 2006, 09:56
|- - upc2   Цитата(Костян @ Aug 4 2006, 12:56) В итог...   Aug 4 2006, 11:43
- - giran   А подскажите, как разместить таблицу, например ...   Aug 8 2006, 08:50
|- - Костян   Цитата(giran @ Aug 8 2006, 06:50) Пытаюсь...   Aug 8 2006, 09:22
- - giran   То есть что-то типа такого: Кодconst unsigned char...   Aug 8 2006, 10:24
|- - Костян   Цитата(giran @ Aug 8 2006, 08:24) То есть...   Aug 8 2006, 10:46
- - giran   ЦитатаНе нужно оперировать кодами букв Вы немного ...   Aug 9 2006, 02:30
|- - Костян   Цитата(giran @ Aug 9 2006, 00:30) Вы немн...   Aug 11 2006, 20:35
- - giran   Вообщем, вот окончательный вариант, если кому приг...   Aug 9 2006, 05:39
|- - upc2   Цитата(giran @ Aug 9 2006, 08:39) Вообщем...   Aug 11 2006, 05:17
|- - dialex   const unsigned char rus_codes[66]= { 0x41,0xa0,0...   Aug 11 2006, 06:49
- - upc2   dialex Спасибо я разобрался.Различие в таблицах ко...   Aug 11 2006, 08:01


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 14:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016