powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Асемблер help
3 сообщений из 3, страница 1 из 1
Асемблер help
    #34205663
DinamiT87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите плизз решить задачки, зарание благадарю.
1.Создать код программы на Ассемблере, который должен выполнить следую-щие действия:
• определить текущую позицию курсора на экранной странице;
• установить курсор в позицию 10, 10 экрана;
• вставить символ и его атрибут в текущее место нахождения курсора (в качестве символа – «в», в качестве атрибута – красный цвет: код 10001100в);
• прочитать символ и его атрибут из текущей позиции экранной страницы.


2.Используя соответствующую функцию прерывания, создайте код на Ассемб-лере, который должен выполнить следующие действия:
• прокрутить вверх текущее окно на 5 строк;
• очистить экран;
• вывести на экран 15 раз заранее заготовленную строку.
...
Рейтинг: 0 / 0
Асемблер help
    #34205812
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо читать Абеля и Брауна, либо в форум "Работа", дополнив задание предлагаемой оплатой.
...
Рейтинг: 0 / 0
Асемблер help
    #34205832
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
определить текущую позицию курсора на экранной странице;

Код: plaintext
1.
2.
3.
mov ah, 03h              ; Функция получения позиции курсора
xor bh, bh               ; Видеостраница  0 
int 10h                  ; Прерывание BIOS

Результат: dh - строка; dl - столбец;


установить курсор в позицию 10, 10 экрана;

Код: plaintext
1.
2.
3.
4.
5.
mov ah, 02h              ; функция позиционирования
xor bh, bh               ; видеостраница  0 
mov dl,  10                ; столбец
mov dh,  10                ; строка
int 10h                  ; прерывание BIOS


вставить символ и его атрибут в текущее место нахождения курсора (в качестве символа – «в», в качестве атрибута – красный цвет: код 10001100b);

Код: plaintext
1.
2.
3.
4.
5.
6.
mov ah, 09h              ; Функция записи символа и его атрибута в видеопамять
xor bh, bh               ; Видеостраница  0 
mov al, 'в'              ; ASCII-код символа
mov bl, 10001100b        ; атрибут
mov cx,  1                 ; число повторений
int 10h                  ; Прерывание BIOS


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

Код: plaintext
1.
2.
3.
mov ah, 08h              ; Функция Чтения символа и его атрибута из видеопамяти 
xor bh, bh               ; Видеостраница  0 
int 10h                  ; Прерывание BIOS

Результат: al - ASCII-код символа; ah - байт-атрибут


прокрутить вверх текущее окно на 5 строк;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
mov ah, 06h
mov al,  5 
mov bh, ...              ; атрибут символов (цвет) в строке для заполнения
mov ch, ...              ; верхняя y-координата.
mov cl, ...              ; левая x-координата.
mov dh, ...              ; нижняя y-координата. 
mov dl, ...              ; правая x-координата.
int 10h                  ; прерывание BIOS


очистить экран;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
; Очистка путем наложения черно-белого окна
mov ah, 06h              ; Функция задания окна
xor al, al               ; Режим создания
mov bh, 07h              ; атрибут всех символов в окне (ч/б)
xor cx, cx               ; ch =  0  - верхняя y-координата, cl =  0  - левая x-координата
mov dh,  24                ; нижняя y-координата
mov dl,  79                ; правая x-координата
int 10h


вывести на экран 15 раз заранее заготовленную строку.

это пример вывода строки. 15 раз, думаю, сделаете сами.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
; Вывод в окно строки без атрибутов (т. е. с атрибутами окна).
mov cx, len             ; длина строки. 
mov bx, offset mes      ; адрес строки символов.
mov ah, 0eh             ; функция вывода одного символа. 
out_str: 
mov al, [bx]            ; символ в al.
inc bx                  ; cдвиг по строке.
int 10h                 ; прерывание BIOS.
loop out_str            ; цикл по строке.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
		
; Вывод строки вне окна, с заданием атрибутов символов.
mov ah, 13h             ; функция вывода строки.
xor al, al              ; режим (атрибут в bl).
xor bh, bh              ; видеостраница.
mov bl, 04h             ; атрибут всех символов.
mov cx, len             ; длина строки. 
mov dh,  16               ; начальная позиция - строка.
mov dl,  25               ; начальная позиция - столбец. 
push ds                 ; настройка es  
pop es                  ; на сегмент данных.
mov bp, offset mes      ; es:bp - выводимая строка.
int 10h
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Асемблер help
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]