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

 
 
> Условное компилирование
serge71
сообщение Feb 2 2009, 12:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 19-11-08
Из: Moscow region
Пользователь №: 41 766



Подскажите плз, как можно сделать, на asm : некая подпрограмма использует массив данных (таблицу символов шрифта, определенных как .DB), есть несколько шрифтов.
draw_symbol:
CODE
draw_symbol:

ldi ZL,low(font*2)
ldi ZH,high(font*2)

;загрузка переменных шрифта

lpm width,Z+ ;максимальная ширина символа
lpm heigth,Z+ ;высота для всех символов
lpm bit_p_pixel,Z+;количество байтов шрифта на один пиксел
lpm first_char,Z+;первый символ шрифта в ASCII
lpm last_char,Z+;последний символ шривта в ASCII
и т.д.

font:
.DB 0x02, 0xAC, 0x08, 0x0B, 0x01, 0x20, 0x7E,0x03
.DB 0x01, 0x04, 0x06, 0x05, 0x07, 0x05, 0x01, 0x02, 0x02, 0x03, 0x05, 0x02, 0x02, 0x01, 0x04, 0x05
................................

font8x11:
.DB 0x02, 0xAC, 0x08, 0x0B, 0x01, 0x20, 0x7E,0x03
.DB 0x01, 0x04, 0x06, 0x05, 0x07, 0x05, 0x01, 0x02, 0x02, 0x03, 0x05, 0x02, 0x02, 0x01, 0x04, 0x05

font13x16:
.DB 0x02, 0xAC, 0x08, 0x0B, 0x01, 0x20, 0x7E,0x03
.DB 0x01, 0x04, 0x06, 0x05, 0x07, 0x05, 0x01, 0x02, 0x02, 0x03, 0x05, 0x02, 0x02, 0x01, 0x04, 0x05

какие директивы компилятору указать чтоб при вызове подпрограммы подставлялась нужная таблица.
Причина редактирования: Уменьшение видимого размера цитаты исходника.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Feb 2 2009, 13:28
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Код
.dseg

pending_font:.byte  2; делаем глобальную переменную,
                             ;в которую перед выводом строки
                            ;пишем адрес фонта       
;пример
; ldi ZL,low(font8x11 << 1)
; ldi ZH,high(font8x11 << 1)
; sts pending_font,ZL
; sts pending_font+1,ZH                             

.cseg
draw_symbol:
    lds  ZL, pending_font
    lds  ZH,pending_font+1
;далее по тексту
Go to the top of the page
 
+Quote Post
serge71
сообщение Feb 2 2009, 13:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 19-11-08
Из: Moscow region
Пользователь №: 41 766



Цитата(_Pasha @ Feb 2 2009, 16:28) *
Код
;пример
;далее по тексту

Такое решение было, спасибо

Цитата(adc @ Feb 2 2009, 16:32) *
) дак в том то и дело что метка то одна! Это условное компилирование. При сборке пректа в контроллер прошьется только та часть которая определена.
А на счет разных шрифтов в программе.. то условное компилирование не причем. Сначало определяете нужный шрифт(загружаете метку )

Я понял, но у меня компилятор ругается на все:
.if CURR_FONT==font8x11

Цитата(_Pasha @ Feb 2 2009, 16:35) *
Это не условная компиляция sad.gif

Ну может я не так сформулировал
Причина редактирования: Уменьшение размера цитирования.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 3 2009, 11:34
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(serge71 @ Feb 2 2009, 15:40) *
Цитата

Это не условная компиляция
Ну может я не так сформулировал

Ну так переформулируй.
Ответ для реализации того, что тебе нужно - уже дан в посте #2. Вдумчиво прочитай и реализуй.
Никакие ifdef, .IF тебе тут не помогут, потому что они предназначены совсем для другого.
Go to the top of the page
 
+Quote Post
serge71
сообщение Feb 3 2009, 16:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 19-11-08
Из: Moscow region
Пользователь №: 41 766



Цитата(defunct @ Feb 3 2009, 14:34) *
Ну может я не так сформулировал

Ну так переформулируй.
Ответ для реализации того, что тебе нужно - уже дан в посте #2. Вдумчиво прочитай и реализуй.
Никакие ifdef, .IF тебе тут не помогут, потому что они предназначены совсем для другого.
Реализовано уже было как во#2 посте, хотел понять можно ли это сделать на этапе компиляции, видимо это был оптимальный вариант.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 3 2009, 17:07
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(serge71 @ Feb 3 2009, 18:50) *
Реализовано уже было как во#2 посте, хотел понять можно ли это сделать на этапе компиляции, видимо это был оптимальный вариант.

К сожалению это единственный возможный вариант в данном случае
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- serge71   Условное компилирование   Feb 2 2009, 12:11
- - vvvv   Нужно загружать нужным адресом ZH и ZL до вызова ...   Feb 2 2009, 12:17
- - serge71   А мне не требуется менять шрифт во время выполнени...   Feb 2 2009, 12:22
- - galjoen   Цитата(serge71 @ Feb 2 2009, 15:11) какие...   Feb 2 2009, 12:27
- - MrYuran   #define CURR_FONT font // font8x11 // font13x16 ...   Feb 2 2009, 12:28
|- - serge71   Цитата(MrYuran @ Feb 2 2009, 15:28) #defi...   Feb 2 2009, 12:59
- - adc   вот так: CODE.equ fontcur=font1 // font8x11 // f...   Feb 2 2009, 13:04
|- - adc   Цитата(serge71 @ Feb 2 2009, 16:40) Я пон...   Feb 2 2009, 18:51
|- - smac   Цитата(serge71 @ Feb 2 2009, 16:40) Я пон...   Feb 2 2009, 19:29
||- - serge71   Цитата(smac @ Feb 2 2009, 22:29) Попробуй...   Feb 3 2009, 07:07
|- - XVR   Цитата(serge71 @ Feb 2 2009, 16:40) Ну мо...   Feb 11 2009, 08:01
|- - demiurg_spb   Анекдот очень к месту Цитата(serge71 @ Feb 10...   Feb 11 2009, 09:53
- - ermilovd   Вот кусочек моей старой проги на асме (AStudio) c ...   Feb 9 2009, 08:45
- - serge71   Цитата(ermilovd @ Feb 9 2009, 11:45) Вот ...   Feb 10 2009, 19:45


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 15:15
Рейтинг@Mail.ru


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