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

 
 
> Условное компилирование
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
Ответов
ermilovd
сообщение Feb 9 2009, 08:45
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 22-01-09
Из: Пермь
Пользователь №: 43 767



Вот кусочек моей старой проги на асме (AStudio) c условной компиляцией табличных данных (во FLASH-памяти)

CODE
.org $1000
Table_Altera:
;*******************************************************************************
.equ TYPE_BLOCK = 6 ; или 0,1,2,3,4,5
;*******************************************************************************
.IF TYPE_BLOCK == 0
.include "mv01_old39.inc"
.equ OUT_PORT = PORTB
.Equ UR_C = PB4
.Equ UR_B = PB5
.ELIF TYPE_BLOCK == 1
.include "mv01_new1.inc"
.equ OUT_PORT = PORTE
.Equ UR_C = PE2
.Equ UR_B = PE3
.ELIF TYPE_BLOCK == 2 ; Very OLD OTS
.include "mv01_old_rl1.inc"
.equ OUT_PORT = PORTB
.Equ UR_C = PB4
.Equ UR_B = PB5
.ELIF TYPE_BLOCK == 3 ; Very OLD OTS Test
.include "mv01_old_rl1_test.inc"
.equ OUT_PORT = PORTB
.Equ UR_C = PB4
.Equ UR_B = PB5
.ELIF TYPE_BLOCK == 4
.include "mv01_p4b3t.inc" ; for oldOTS
.equ OUT_PORT = PORTB
.Equ UR_C = PB4
.Equ UR_B = PB5
.ELIF TYPE_BLOCK == 5
.include "mv01_testrl.inc"
.equ OUT_PORT = PORTB
.Equ UR_C = PB4
.Equ UR_B = PB5
.ELIF TYPE_BLOCK == 6
.include "mv01f_000501.inc"
.equ OUT_PORT = PORTE
.Equ UR_C = PE2
.Equ UR_B = PE3 ; B_NApr
.ENDIF
;*******************************************************************************

Структура *.inc-файлов :
Код
.db 0x17,0x1F,0x27,0x2E,0x2F,0x33,0x37,0x3A,0x3B,0x3E
.db 0xFF,0xFF,0xFF,0x01,0x7E,0xE7,0x1F,0x62,0x7B,0x3C
.db 0x33,0xFF,0x47,0xA0,0x09,0x30,0x01,0x26,0xD0,0x04
.db 0xC0,0x80,0x13,0x33,0x03,0x60,0x33,0x64,0x35,0x81
.db 0x26,0x40,0x06,0x9A,0x33,0x18,0x68,0x02,0x64,0xC0
.db 0x0C,0x80,0x01,0x00,0x10,0x0C,0x34,0x01,0x30,0x33
.db 0x06,0xC0,0x33,0x13,0x60,0x02,0x64,0xA0,0x09,0x90
Причина редактирования: Оформление цитирования исходников.
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
- - _Pasha   Код.dseg pending_font:.byte  2; делаем глобал...   Feb 2 2009, 13:28
|- - serge71   Цитата(_Pasha @ Feb 2 2009, 16:28) Код;пр...   Feb 2 2009, 13:40
|- - 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
|- - defunct   Цитата(serge71 @ Feb 2 2009, 15:40) Цитат...   Feb 3 2009, 11:34
||- - serge71   Цитата(defunct @ Feb 3 2009, 14:34) Ну мо...   Feb 3 2009, 16:50
||- - defunct   Цитата(serge71 @ Feb 3 2009, 18:50) Реали...   Feb 3 2009, 17:07
|- - XVR   Цитата(serge71 @ Feb 2 2009, 16:40) Ну мо...   Feb 11 2009, 08:01
|- - demiurg_spb   Анекдот очень к месту Цитата(serge71 @ Feb 10...   Feb 11 2009, 09:53
- - serge71   Цитата(ermilovd @ Feb 9 2009, 11:45) Вот ...   Feb 10 2009, 19:45


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 12:43
Рейтинг@Mail.ru


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