Делаю задание по Архитектуре ЭВМ, столкнулся с небольшой проблемой: хочу вывести небольшой рисунок, используя перекодирование знакогенератора - шрифтов 8*14.
Но между перекодированными символами, которые, по идее, должны плотно прилегать друг к другу (ну, сплошной рисунок), остаются пробелы примерно в пару пикселей.
Кто-нибудь знает, как от них избавиться?
Вот как перекодирую шрифт:
zabor1 db 24, 60, 60, 126, 126, 9 DUP (255)
db 14 DUP (255);B
zaborfontlen dw 2
; Стандартный забор выглядит так: AAAAA
; BBBBB
.CODE
setpics PROC C
push ds
pop es
mov ah, 11h
mov al, 0
mov bp, offset zabor1
mov cx, zaborfontlen
mov dx, 'A'
mov bl, 0
mov bh, 14; шрифт 8*14 - одно из требований к заданию
int 10h
ret
setpics ENDP
и вот как вывожу "рисунок":
writeLn macro str ; Печать строки str
LOCAL S
.DATA
S db str,'$'
.CODE
push ax
mov dx,OFFSET S
mov ah,09h
int 21h
pop ax
endm
<...>
writeLn 'AAA'
writeLn 'BBB'
writeLn 'BBB'
и вместо "сплошного" "забора" вижу просветы в пару пикселей между соседними символами.
В программе используется видеорежим 40*25 символов:
mov ah,00h; Установить видео режим
mov al,01h; 40х25, цветной.
int 10h;
Пример собранной программы прилагаю (main.exe). Если нужно, могу дать все исходники (там несколько модулей...)