Консультация № 180974
27.11.2010, 21:40
0.00 руб.
0 9 1
Здравствуйте, уважаемые эксперты! Прошу Вас скоректировать программный код на ассемблере!
в 1ой части нужно написать Вывода горизонтальной линии с помощью ф.10 INT 10h;
это кода нет(
а вот во 2ой части (код присутствует) нужно: используя графические режимы EGA
и SVGA организовать:
1 – Вывод вертикальной прямой зеленого цвета
2 – Вывод прямой под 45% синего цвета в режиме 10h.
код в приложении!
Заранее огромное спасибо!

Приложение:
mov AH,4Fh
mov AL,02h
mov BX,103h
int 10h
cmp AH, 0
jn-e errmes1
mov AH,10h
mov BX,150
mov DH, 0
mov CH, 63
mov CL, 0
int 10h
mov SI, 0
mov CX,800
line: push CX
mov AH,0Ch
mov AL,150
mov BH, 0
mov CX,SI
mov DX,300
int 10h
inc SI
pop CX
loop line
mov AH,08h
int 21h
jmp output
errmes1: mov AH,09h
mov DX,offset messagel
int 21h
output:

Обсуждение

Неизвестный
29.11.2010, 16:13
общий
прошу помощи
давно
Посетитель
7438
7205
29.11.2010, 17:36
общий
Если будет время, то попробую написать программу. Но не обещаю, что наверняка...
Уж не обессудьте... У меня есть и другие вопросы, платные, между прочим, которым и больший приоритет...

Правда, может кто-то другой из экспертов отзовется... Ждите, на данный момент, еще есть 3 суток...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
29.11.2010, 17:39
общий
я бы задал платный вопрос, но до сих пор жду ответа от тех.поддержке насче смс пополнения, они обещали мне ответить можно или нет, т.к. живу в Казахстане, и там какие то проблемы с сотовыми операторами!

спасибо за внимание!
давно
Посетитель
7438
7205
01.12.2010, 15:36
общий
Кажется, таки дошли руки и до Вашего вопроса
Сначала ответьте-ка на вопрос...
Я правильно понял? Требуется нарисовать две линии, каждую в своем графическом режиме.
Другими словами, делаем следующее:
1) переходим в графический режим средствами EGA;
2) рисуем линию с помощью ф-и 10;
3) ждем нажатия на клавишу;
4) переходим в графический режим средствами SVGA;
5) рисуем линию
6) ждем нажатия на клавишу;
7) выходим.
Так?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
01.12.2010, 17:18
общий
спасибо)

аха это во 2ой части работы! там где графический режим!

а в 1ой части, там где код дан уже, в текстовом режиме...там просто видимо что то добавить надо.
давно
Посетитель
7438
7205
01.12.2010, 17:59
общий
Предоставленный код - как раз работа в графике в режиме SVGA... А EGA?
И о каком текстовом режиме Вы говорите?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
01.12.2010, 18:07
общий
Текстовый режим:
Видеопамять в текстовом режиме а с точки зрения процессора реализуется следующим образом: на каждый символ приход- ся по 2 байта инф- ии: 1 байт хранит ASCII- код символа, а 2- й цвет символа и цвет фона знака места этого символа.

да, насчет кода вы правы!
давно
Посетитель
7438
7205
01.12.2010, 23:17
общий
Ок, понял Первым шагом рисуем линию псевдографикой в текстовом режиме...
Дальше - как я описал...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
02.12.2010, 02:11
общий
это ответ
Здравствуйте, Андреев Дмитрий Фёдорович!
Рисуем:
1) горизонтальную линию псевдографикой в текстовом режиме;
2) вертикальную линию в VESA-режиме101h 640х480х256
(предложенный Вами режим 103h (800x600x256) у меня не работает, полагаю, не хватает видеопамяти)
3) наклонную линию в EGA-режим 640x350x16
4) Ваш кусочек тоже оставил, только поменял режим 103h на 101h

Код:

.model tiny
.code
.startup

mov ax, 0003h ;текстовый 25х80, очистим экран
int 10h
mov ah, 2
mov dx, 0c00h ;установим курсор в начало 12 строки (середина экрана)
mov bh, 0
int 10h
mov cx, 2000h ;спрячем курсор
mov ah, 1
int 10h

mov ax, 0ac4h ;выводим псевдографикой код '-' текущим цветом (белым)
mov cx, 80 ;длиной 80 знаков
int 10h

mov ah, 8 ;ждем нажатия на клавишу
int 21h

mov ax, 4f02h ;установим VESA-режим
mov bx, 101h ;640х480х256
int 10h
;рисуем вертикальную линию
xor dx, dx ;строка (сверху экрана)
mov cx, 320 ;колонка (середина по горизонтали)
mov bh, 0 ;0 страница
line_vert_loop:
mov ax, 0c0ah ;al - цвет (зеленый)
int 10h
inc dx ;на следующую строку
cmp dx, 480 ;до самого низа
jb line_vert_loop

mov ah, 8 ;ждем нажатия на клавишу
int 21h

mov ax, 0010h ;EGA 640x350x16
int 10h

xor dx, dx ;левый верхний угол
xor cx, cx
mov bh, 0 ;страница 0
line_nakl_loop:
mov ax, 0c09h ;al - цвет (голубой)
int 10h
inc cx ;на следующую колонку
inc dx ;на следующую строку
cmp cx, 350 ;до конца строки
jb line_nakl_loop

mov ah, 8 ;ждем нажатия на клавишу
int 21h

mov AH,4Fh
mov AL,02h
mov BX,101h
int 10h
mov AH,10h
mov BX,150
mov DH, 0
mov CH, 63
mov CL, 0
int 10h
mov SI, 0
mov CX,640
line: push CX
mov AH,0Ch
mov AL,150
mov BH, 0
mov CX,SI
mov DX,240
int 10h
inc SI
pop CX
loop line

mov ah, 8 ;ждем нажатия на клавишу
int 21h

.exit 0

end
5
Огромное спасибо за то что отозвались и помогли!!!<br>
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа