Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 15

Как на прямоугольнике белого цвета нарисовать полосы?

12.04.2017, 16:43. Показов 1625. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно нарисовать на ассемблере в графическом режиме белый прямоугольник и на нем нарисовать 6 линий черного цвета, приблизительно как на скриншоте(без фона красного конечно, добавлен он для понятности), как это можно сделать? БУДУ ОЧЕНЬ благодарен за комментарии к коду!!!!
Миниатюры
Как на прямоугольнике белого цвета нарисовать полосы?  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2017, 16:43
Ответы с готовыми решениями:

Как называется штекер питания белого цвета?
как называется штекер питания белого цвета?

Как нарисовать текст в прямоугольнике с переносом слов по ширине и отрезанием текста по высоте?
Привет всем. собсно сабж. У кого есть идеи? Спасибо.

Изобразить три вертикальные полосы разного цвета на экране, которые меняют свои цвета
Прохожу учебную практику, имеется порядка 30 задач. С этими возникли трудности 1)модуль crt Изобразить три вертикальные полосы...

2
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
12.04.2017, 17:56
Ну как-как? Левый верхний угол - это адрес A000:0000 - от него отсчитвыаете кадровый буфер в засимости от вашего разрешения и цветности. На чёрном фоне, я так понимаю, это будут просто 6 прямоугольников. Вот адреса их углов прям на калькуляторе считаете, а дальше двойным циклом на каждый прямоугольник stosb или stosd нужный код белого цвета.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,931
Записей в блоге: 13
13.04.2017, 01:09
В теме Флаг Норвегии и Панамы процедура bar рисует закрашенную полосу. Это и будет прямоугольник, а чёрные полосы - просто в цикле нарисовать полосы тольщиной в 1-2 точки - это и будут линии.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
LOCALS
 
.model small
 
.stack 100h
 
.data
        White   equ     15
        Black   equ     0
        SizeX   equ     320 shr 1
        SizeY   equ     200 shr 1
        ShiftX  equ     (320-SizeX) shr 1
        ShiftY  equ     (200-SizeY) shr 1
.code
 
;макрос для упрощения вызова процедур с параметрами
invoke  macro   CallProc, Params
        IRP     P, <Params>
                mov     ax,     P
                push    ax
        endm
        call    CallProc
endm
 
main    proc
        mov     ax,     @data
        mov     ds,     ax
 
        mov     ax,     0013h   ;переключение в графический режим
        int     10h
 
        invoke  Bar, <SizeY, SizeX, ShiftY, ShiftX, White>
        invoke  Bar, <SizeY, 2, ShiftY, ShiftX+25, Black>
        invoke  Bar, <SizeY, 2, ShiftY, ShiftX+52, Black>
        invoke  Bar, <SizeY, 2, ShiftY, ShiftX+79, Black>
        invoke  Bar, <SizeY, 2, ShiftY, ShiftX+106, Black>
        invoke  Bar, <SizeY, 2, ShiftY, ShiftX+133, Black>
 
        ;ожидание нажатия клавиши
        mov     ah,     10h
        int     16h
 
        mov     ax,     0003h   ;переключение в текстовый режим
        int     10h
        mov     ax,     4C00h
        int     21h
main    endp
 
;рисование полосы (залитого прямоугольника)
;на входе:
; color - цвет заливки
; x_pos, y_pos - координаты левого верхнего угла
; x_size, y_size - размеры прямоугольника
;на выходе:
; -
Bar     proc    color: word, x_pos:word, y_pos: word, x_size: word, y_size: word
        push    bp                      ;формирование кадра параметров
        mov     bp,     sp
 
        push    ax                      ;сохранение регистров
        push    bx
        push    cx
        push    dx
        push    si
        push    di
 
        mov     ah,     0Ch             ; настройка параметров для вызова функции 0Ch
        mov     al,     byte ptr color           ;цвет точек
        mov     bh,     0               ;номер видеостраницы
        mov     dx,     y_pos           ;строка
        mov     cx,     x_pos           ;колонка
 
        mov     di,     y_size
@@Vertical:
 
        mov     cx,     x_pos           ;колонка
        mov     si,     x_size          ;вывести x_size точек в горизонтальной линии
@@Horizontal:
        int     10h                     ;вывести точку
        inc     cx                      ;прирастить координату x
        dec     si
        jnz     @@Horizontal
 
        inc     dx                      ;переход к следующей горизонтальной линии с
        dec     di
        jnz     @@Vertical
 
        pop     di                      ;восстановление рагистров
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
 
        pop     bp
        ret     10                      ;удаление параметров из стека
Bar     endp
 
end     main
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2017, 01:09
Помогаю со студенческими работами здесь

Нарисовать прямоугольник в прямоугольнике
Напишите программу рисующую на экране несколько вложенных друг в друга разноцветных прямоугольников. Сколько будет прямоугольников вводим...

Нарисовать крест в прямоугольнике
В квадрате я нарисовал, а вот в прямоугольнике с неравными сторонами никак не соображу, помогите пожалуйста x=y=width=height=0 from...

Шар белого цвета
В урне 3 белых, 2 черных и 1 синий шар. Из урны наудачу вынули один шар и вместо него положили черный шар. Найти вероятность того, что шар,...

Все файлы белого цвета
Есть подозрения на вирус, из этой темы:https://www.cyberforum.ru/windows7/thread1075511.html направили в этот раздел. Все ярлыки, файлы...

Нужно нарисовать в прямоугольнике прыгающий шарик
нужно нарисовать в прямоугольнике прыгающий шарик на QBASICе нужно сделать так, чтобы когда шарик сталкивается прямоугольника, он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru