Поиск:

Ответ в темуСоздание новой темы Создание опроса
> драйвер экрана, для лабы 
:(
    Опции темы
catty
Дата 4.5.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



привет всем, помогите, пожайлуста, у меня есть программа нужно ней поменять только:
1. цвет экрана должен меняться с белого на черный
2. на экран должна выводится надпись Болкунова Екатерина Станиславовна.
Вот код проги:
Код

.model tiny
.code
extrn init_video:near,print_chars:near
org 100h
start:
;------------------------------------------------------------------
call init_video
        mov bh,0h        ; устанавливаем цвет символа 0<=M<=7
        mov dx,0h
        mov ax,0h
n:        cld
        lea si,text
        add si,dx
        lodsw
        mov bl,al 
        call print_chars
        inc dx
        cmp dx,22            ;  количество символов в выводимой сроке +1
        jnz n
h:        mov ah,08            ; считываем символ
        int 21h                ; с клавиатуры в AL
        cmp al,24h            ; $ символ останова работы программы
        jnz h
        int 20h
;----------------------------------------------------------------------------
text db 'Бойко Андрей Андреевич'
end start



И второй
Код

public init_video, print_chars
cseg segment public
assume cs:cseg
cur_x db '0'
cur_y db '0'
;bbb      db '0'
;------------------------------------------
; Инициализация видео адаптера
;------------------------------------------
init_video proc near
        push ax
        push es
        push di
        push bx
        push dx
        MOV AX,3            ; \ 
        INT 10h                ; /  видео режим
        mov ax,0B800h
        mov es,ax
        mov ah, 20h
        mov al, 0
        mov di, 0
wh:        mov es:[di], ax        ; \ 
        add di, 2h            ;  | заливаем страницу фоном
        cmp di,0FA0h        ;  |
        jnz wh                ; /
        mov dx,3d4h         ; \ 
        mov al,13           ;  |Запрос на использование начальный адрес сканирования (мл.)
        out dx,al           ; / 
        mov dx,3d5h         ; \ 
        mov al,0            ;  |мл. байт страницы
        out dx,al           ; / 
        mov dx,3d4h         ; \ 
        mov al,12           ;  |Запрос на использование начальный адрес сканирования (ст.)
        out dx,al           ; / 
        mov dx,3d5h         ; \ 
        mov al,0            ;  |ст. байт страницы
        out dx,al           ; / 
        mov dx,3d4h         ; \ 
        mov al,10           ;  |Запрос на использование начало курсора 
        out dx,al           ; / 
        mov dx,3d5h         ; \ 
        mov al,0            ;  |начало курсора
        out dx,al           ; / 
        mov dx,3d4h         ; \ 
        mov al,11           ;  |Запрос на использование конец курсора
        out dx,al           ; / 
        mov dx,3d5h         ; \ 
        mov al,0Fh          ;  | максимальное значение курсора
        out dx,al           ; / 
        mov dl,0            ; координаты X <= 80
        mov dh,0            ; координаты Y <= 25
        call set_cur
        pop dx
        pop bx
        pop di
        pop es
        pop ax
        ret
init_video endp
;-----------------------------------------------------------------
; вывод символа ...  на входе S = bl    M = bh
;-----------------------------------------------------------------
print_chars proc near
        push ax
        push bx
        push cx
        push dx
        mov cx,10
        mov dl,cur_x
        mov dh,cur_y
        cmp bl,13
        jz _enter        
        cmp bl,10
        jz _enter
;        cmp bl,8
;        jz _beck
        cmp bl,24h
        jz _end
_start:    mov ah,0
        mov al,dh
        mov cl,80
        mul cl                ; результат умнажения в AX
        mov dh,0
        add ax,dx
        add ax,ax
        mov di,ax
        add bh,20h
        mov ax,0B800h
        mov es,ax
        mov ah, bh
        mov al, bl
        mov es:[di], ax        
        mov dl,cur_x
        mov dh,cur_y
;        mov ah,bbb
;        cmp ah,66h
;        jz _end
        cmp dl,80
        jz _enter
        add dl,1
        call set_cur
        loop _end
_enter: mov dl,0
        mov dh,cur_y
        add dh,1
        call set_cur
;        loop _end
;_beck:    mov dl,cur_x
;        mov dh,cur_y
;        mov bl,20h
;        mov bh,0h
;        mov ah,66h
;        mov bbb,ah
;        cmp dl,0
;        jz _aa
;        sub dl,1
;        call set_cur
;        loop _start
;_aa:    mov dl,80
;        sub dh,1
;        call set_cur
;        loop _start
_end:    pop dx
        pop cx
        pop bx
        pop ax
        ret
print_chars endp
;-----------------------------------------------------------
; Установка курсора входные данные: dl = X <= 80 и dh = Y <= 25
;-----------------------------------------------------------
set_cur proc near
        push ax
        push bx
        push dx
        push cx
        mov [cur_x],dl
        mov [cur_y],dh
        mov ah,0
        mov al,dh
        mov cl,80
        mul cl                ; результат умнажения в AX
        mov dh,0
        add ax,dx
        mov cx,ax            ; 
        mov dx,3d4h         ; \ 
        mov al,15           ;  |Запрос на использование адрес курсора (мл.)
        out dx,al           ; / 
        mov dx,3d5h         ; \ 
        mov al,cl           ;  |мл. байт страницы
        out dx,al           ; / 
        mov dx,3d4h         ; \ 
        mov al,14           ;  |Запрос на использование адрес курсора (ст.)
        out dx,al           ; / 
        mov dx,3d5h         ; \ 
        mov al,ch           ;  |ст. байт страницы
        out dx,al           ; / 
        pop cx
        pop dx
        pop bx
        pop ax
        ret
set_cur endp
;----------------------------------------
cseg ends
end



PM MAIL   Вверх
catty
Дата 4.5.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



ну хоть подскажите, а? я не прошу за меня все делать, просто падсказать в каком месте. А то я всю методичку перелопатила, но там почему то нет примеров.
PM MAIL   Вверх
dumb
Дата 5.5.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



куски, которые нужно изменить:

в первом:
Код

...
start:
;------------------------------------------------------------------
        mov bh,70h        ; устанавливаем цвет символа (первая цифра - цвет фона, вторая - символа)
        call init_video
        mov dx,0h
        mov ax,0h
...


во втором:
Код

...
init_video proc near
        push ax
        push es
        push di
        push bx
        push dx
        MOV AX,3            ; \ 
        INT 10h                ; /  видео режим
        mov ax,0B800h
        mov es,ax
        mov ah, bh ; <<<
        mov al, 0
...
print_chars proc near
...
        mul cl                ; результат умнажения в AX
        mov dh,0
        add ax,dx
        add ax,ax
        mov di,ax
;        add bh,70h ; <<<
        mov ax,0B800h
        mov es,ax
...

PM MAIL   Вверх
catty
Дата 5.5.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



Спасибо, попробую
PM MAIL   Вверх
500mhz
Дата 5.5.2008, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



а что обязательно через порты все делтать? или это ТЗ такое?


--------------------

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.