0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 18
1

Как заполнить окно в центре экрана символами "*"

20.02.2018, 14:40. Показов 3016. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. У меня программа почти готова, только вот заполняет символы на весь экран, а мне нужно заполнить только окно в центре экрана, как это сделать, что нужно исправить, помогите пожалуйста. Я в ассемблере вообще полный 0, но что-то получилось.
Вот код:
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
data SEGMENT
char    db  ? ; символ
data ENDS
code SEGMENT
ASSUME   cs:code,ds:data
start:
    mov ax,3
    int 10h ; видеорежим
    mov ax,0B800h ; 0-ая видеостраница
    mov es,ax
 
    ; окно в центре экрана
    mov ah,7
    xor al,al
    mov bh,0f0h
    mov ch,6
    mov cl,20
    mov dh,18
    mov dl,60
    int 10h
 
 ; ввод начального символа
input:  mov ah, 0
    int 16h
    cmp al, 0
    je input       ; если символ не введён, то запрашиваем снова
    mov char, al
 
    ; главный цикл
_loop:     call char_out ; выводим символ на экран 
    mov ah, 0   ; считываем код нажатой клавиши
    int 16h
    cmp al, 0   ; если это символ
    mov char, al    ; сохраняем его и проверяем условие выхода
    cmp al, 09
    jne _loop
 
    char_out proc near     ; вывод текущего символа
    mov ah, 0Ah
    mov bh, 0
    mov al, char
    mov cx, 25*80
    int 10h
    ret
 
char_out endp
 
code ENDS
end start
Вот результат:
Как заполнить окно в центре экрана символами "*"

Вот это серое окно мне и нужно заполнить символами "*", ну ещё проблема: в этом окне мерцают символы, как это исправить?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2018, 14:40
Ответы с готовыми решениями:

Программа вырезает в центре экрана инверсное окно, в которое мы вводим символ, полностью заполняющий это окно
Всем доброго время суток. Пытаюсь разобраться с задачей. Программа очищает экран и вырезает в...

Нарисовать окно в центре экрана
Нарисовать окно в центре экрана. Осуществить изменение размеров окна при нажатии клавиши Enter.)

Нарисуйте окно в центре экрана
Нарисуйте окно в центре экрана. При нажатии клавиши "энтер" окно должно изменить свои размеры....

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

1
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
20.02.2018, 17:36 2
Лучший ответ Сообщение было отмечено ФЕРЗЬ1 как решение

Решение

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
code SEGMENT
ASSUME   cs:code
xTopLeft    equ 20
yTopLeft    equ 6
szX     equ 60-xTopLeft
szY     equ 18-yTopLeft
org 100h
start:
    mov ax,3
    int 10h ; видеорежим
    mov ax,0B800h ; 0-ая видеостраница
    mov es,ax
    mov al,20h
    mov bx,2*(yTopLeft*80+xTopLeft)
@@00:   mov di,bx
    mov cx,szY
@@01:   push    cx
    push    di
    mov ah,70h
    mov cx,szX
    rep stosw
    pop di
    add di,160
    pop cx
    loop    @@01
    xor ax,ax
    int 16h
    cmp al,13
    jnz @@00
    ret
code ENDS
end start
2
20.02.2018, 17:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2018, 17:36
Помогаю со студенческими работами здесь

Заполнить прямоугольник в центре экрана данным символом
x-32 ассемблер Видела решение этой задачи, но там она не правильная, а сама не знаю как еще...

Изобразить в центре экрана квадратное окно зеленого цвета со стороной 20
3. Лабораторная работа №3. Функции вывода для консольных устройств Задание: разработать...

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

Построить в центре экрана треугольник заданного размера и заполнить его произвольным изображением
Построить в центре экрана треугольник заданного размера и заполнить его произвольным (жестко...

Программа очищает экран и вырезает в центре экрана инверсное окно разумных размеров
Программа очищает экран и вырезает в центре экрана инверсное окно разумных размеров. Далее, при...

При открытии любых сайтов в центре экрана появляется неопознанное окно и иногда внизу слева всплывает реклама
Windows 7 x64. При открытии любых сайтов в центре экрана появляется неопознанное окно и иногда...

Установить цветной текстовый режим с 40 символами по горизонтали. Создать окно 7х7 символов в левом верхнем углу экрана.
Решить нужно в Турбо-среде Borland C++ Текстовый режим Постановка задачи 1 Установить цветной...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru