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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2017, 19:42   #1
jointv
Новичок
Джуниор
 
Регистрация: 18.04.2017
Сообщений: 1
По умолчанию Помогите найти ошибку в коде assembler

Помогите найти ошибку в коде
Задание написать на ассемблере 8086 программу, которая бы выводила в видеорежиме 320х200 по вертикали все 64 градации серого, поддерживаемые VGA, еще, ширина каждого столбца, т.е каждой градации, нужна 4 пикселя.

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

Исходный код:

Код:
org 100h
start:  mov ax,13h
    int 10h
    mov cx,64  ; определяем число изменяемых регистров
    mov dx,3C8h ; настройка фона окна
    xor ax,ax  ; номер первого модифицируемого регистра (обнуление ax)
    out dx,al
    inc dx ; настройка палитры 3с9h
l0: out dx,al ; красный
    out dx,al ; зеленый 
    out dx,al ; синий
    inc ax
    loop l0; заполняем регистры ЦАП 64-градациями серого
    les di,e; позиционируемся в левый верхний угол экрана
    mov bx,200; число строк экрана в режиме 13h
l1: mov cx,64 ;выводим вертикально все 64 градации
    xor ax,ax; начинаем с 0-ого цвета
l2: stosw;в виде линий шириной в 4 пикселя
      stosw
    add ax,101h;увеличиваем на 1 значение следующего цвета
    loop l2
    add di,320-64*4; возвращаемся в начало следующей строки
    dec bx
    jnz l1
    mov ah,0;ждем нажатия на клавиатуру
    int 16h
    mov ax,3;восстанавливаем текстовый режим
    int 10h
    ret;и выходим из программы
e dd 0A0000000h
end start
Должно быть : Должно быть.JPG



Результат : Результат.jpg

Последний раз редактировалось jointv; 22.05.2017 в 19:49.
jointv вне форума Ответить с цитированием
Старый 22.05.2017, 21:14   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

rumit-71@mail.ru
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 23.05.2017, 09:16   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Если еще актуально, обращайтесь
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в коде NYork Помощь студентам 3 16.12.2014 19:45
Помогите найти ошибку в коде vbn1 Общие вопросы C/C++ 4 12.12.2014 20:50
Не могу найти ошибку в коде (assembler) Задача - Ресайзинг прямоугольной области. Kelevra23 Помощь студентам 0 24.11.2011 16:21
Помогите найти ошибку в коде. Serror Общие вопросы C/C++ 7 04.10.2009 00:44
помогите найти ошибку в коде Joker88 Помощь студентам 1 04.03.2008 12:43