Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с выводом символов на экран 
V
    Опции темы
ctpexhih
Дата 11.7.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нижеследующий код должен заполнять весь экран символами ASCII кода, что он и делает на одном компьютере. Но если перенести такую программу на другую машину, то запускается DOS-режим, в левом верхнем углу появляется белый квадатик и дальше дело не идет. Таблица ASCII кода не выводится. Сталквался ли кто-то с подобной проблемой. Если да, то как ее решить ? Подскажите, может это какая-то типовая ошибка. Заранее спасибо.

Код
CSEG segment
org 100h

Start:

    mov ax,0B800h
    mov es,ax
    mov al,1
    mov ah,31
    mov cx,254

Next_screen:
    mov di,0
    call Out_chars
    inc al
    loop Next_screen
    
    mov ah,10h

    int 16h
    int 20h

Out_chars proc
    mov dx,cx
    mov cx,2000

Next_face:
    mov es:[di],ax
    inc di
    inc di
    loop Next_face

    mov cx,dx
ret
Out_chars endp

CSEG ends
end Start


PM MAIL   Вверх
airyashov
Дата 12.7.2008, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



если программируете в windows, то инициализируйте  требуемый видеорежим дос перед тем как писать в видео память
Код

Start:
    mov ax,0003h
    int 10h


назначение программы не очень понятно, экран последовательно заполняться символами, но  увидете Вы только последний код 255, логично поставить задержку в цикле
Код

Next_screen:
    mov di,0
    call Out_chars
    inc al
    push ax
    mov ah,10h
    int 16h
    pop ax
    loop Next_screen  



--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
ctpexhih
Дата 17.7.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, ваша подсказка помогла. Символы выводятся.
PM MAIL   Вверх
mb78
Дата 31.7.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно эту программу написать короче и задержки ни на что не влияют:

CSEG segment
org 100h
Start:
mov ax,3
int 10h
mov bx,b800h
mov es,bx
mov di,0                
Cld
mov ax,1f01h
mov cx, количество символов
Povtor:
stosw
inc al
loop povtor
CSEG ends
end Start


в di записываем с какого символа начинаем вывод
stosw записывает al в [di] и ah в [di+1] и делает di=di+2 если стояла команда Cld или di=di-2 если std.


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

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

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


 




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


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

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