|
Условное компилирование |
|
|
|
Feb 2 2009, 12:11
|
Участник

Группа: Участник
Сообщений: 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 какие директивы компилятору указать чтоб при вызове подпрограммы подставлялась нужная таблица.
Причина редактирования: Уменьшение видимого размера цитаты исходника.
|
|
|
|
|
 |
Ответов
|
Feb 9 2009, 08:45
|
Участник

Группа: Участник
Сообщений: 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
Причина редактирования: Оформление цитирования исходников.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|