Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2008, 14:06   #1
W_P
Пользователь
 
Регистрация: 27.12.2007
Сообщений: 36
По умолчанию

Нужно вывести все АСКИ символы в видеорежиме, меняя их атрибуты. Проблема - не переходит на новую строку , т.е. 13h и поэтому пишет побочную строку. Что исправить?

Код:
.model small
.stack 100h
.data
.code
start:
mov ax,0B800h
mov ds,ax



mov cx,0

cicl:

mov [bx],cx

mov [bx]+1,cx

add bx,1h

mov ah,02h
mov dx,[bx]
int 21h

add bx,1h
add cx,1h

cmp cx,256
jne cicl



mov ax,4c00h
int 21h
end start
На картинке результат...
Изображения
Тип файла: jpg 23.JPG (28.7 Кб, 145 просмотров)

Последний раз редактировалось rpy3uH; 05.11.2008 в 18:12.
W_P вне форума Ответить с цитированием
Старый 05.11.2008, 19:11   #2
smileman
Пользователь
 
Аватар для smileman
 
Регистрация: 09.06.2008
Сообщений: 60
По умолчанию

Код:
.model small
.stack 100h
.data
.code
start:
mov ax,0B800h
mov ds,ax



mov cx,0
mov di,0
cicl:


mov [bx],cx

mov [bx]+1,cx

add bx,1h

mov ah,02h
mov dx,[bx]
int 21h
inc di
cmp di,36
jne m3
 mov dl,13
 int 21h
 mov dl,10
 int 21h 
 mov di,0

m3:add bx,1h
add cx,1h



cmp cx,256
jne cicl



 


mov ax,4c00h
int 21h
end start
Вот только кол-во символов нужно знать,я "от балды" поставил 36 (cmp di,36)

Последний раз редактировалось rpy3uH; 05.11.2008 в 20:25.
smileman вне форума Ответить с цитированием
Старый 05.11.2008, 19:54   #3
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

странный у вас подход..... ведь зачем использовать прервыания, когда у вас есть видеобуфер...... символ можно непосредственно в него заносить...
Код:
.model	small
.stack	100h
.data

.code
start:
mov ax,0B800h
mov ds,ax



;На всякий случай настроим видеостраницу
mov ah,05h
mov bx,0
int 10h



;Вывод таблицы 
xor bx,bx
xor si,si
mov cx,16
cicl1:
push cx
mov cx,16
cicl2:
mov ah,bl
mov al,bl
mov [si],ax
add si,2
inc bl
loop cicl2
add si,128
pop cx
loop cicl1


;задержка
mov ah,8
int 21h

mov	ax,4c00h
int	21h
end	start
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц