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

Написать программу вывода строки на экран: прямой записью в видеопамять / функциями BIOS

07.10.2014, 11:16. Показов 1687. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: Написать программу вывода строки на экран:
- прямой записью в видеопамять;
-с использованием функции BIOS
Цветность символов- разные цвета, в цветности задан цвет фона.Направление строки вниз.
Вот код программы:
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
use16
org 100h
 
    mov ax, 3
    int 10h        ;stiraem s ekrana i ustanavlivaem rezhim 80*25
 
    mov si,message
    mov dx, si
    push    0B800h
    pop es        ;v ES adres tekstovogo videobufera
    mov di, 30
    mov cx, len
    mov ah, 1
@@: lodsb         ;chitaem simvol
    stosw         ;vyvodim simvol na ekran 
    add di, 158   ; perehodim na sleduyuschuu stroku
    inc ah
    loop    @B
 
;cursor pos
    mov si, dx
    mov di, 1
    mov bp, di
    xor dx, dx
    mov cx, len
@@: mov ah, 2
    mov bx,0
    int 10h
    push    dx
    xchg    cx, bp
    push    ax
    lodsb
    xchg    di, bx
    mov ah, 9
    int 10h
    xchg    cx, bp
    pop ax
    pop dx
    inc dh
    inc bl
    xchg    di, bx
    loop    @B
    mov ah,00h
    int 16h
 
    mov ax,4c00h
    int 21h
    message db 'HELLO WORLD!'
    len=$-message
Помогите написать комментарии.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2014, 11:16
Ответы с готовыми решениями:

Вывод на экран прямой записью в видеопамять
мне надо вывести на экран символ строки используя прямую запись в видеопамять vivod macro str ...

Вывод строки средствами BIOS и с помощью прямой записи в видеопамять
Всем привет Помогите пожалуйста сделать такое задание: Вывести строку "Hello World" средствами...

Вывод последовательности символов прямой записью в видеопамять
Нужна очень ваша помошь, мне завтра нужно показать, а я сама в этом не бум-бум) Зарание спасибо ...

Написать программу для измерения скорости вывода данных в видеопамять в графическом режиме
Задача: "Написать программу для измерения скорости вывода данных в видеопамять в графическом...

3
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
08.10.2014, 14:36 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
    org 100h
 
    mov ax,3        ;vidmode 3 - 80*25
    int 10h
 
    mov si,message  ; si -> 'HELLO WORLD!'
    mov dx, si
    push    0B800h
    pop es      ; es = начало видеобуффера
    mov di, 50      ; 25 колонка, от балды
    mov cx, len     ; длина мессаги
    mov ah, 1       ; начальный атрибут, синий
@@: lodsb           ; получаем байт
    stosw           ; сохраняем вместе с атрибутом
    add di, 158     ; (80*2)-2, следующая строка
    inc ah      ; увеличиваем атрибут
    loop    @B      ; по длине строки
 
;cursor pos
    mov si, dx      ; возвращаем указатель взад
    mov di, 1       ; начальный атрибут, синий
    mov bp, di      ; сколько раз вывести символ, потом пригодится
    xor dx, dx      ; начальные координаты: 0,0
    mov cx, len     ; длина мессаги
@@: mov ah, 2           ; выставить позицию курсора
    mov bx,0        ; видеостраница 0
    int 10h
    push    dx      ; сохраняем координаты
    xchg    cx, bp      ; CX=1, сколько раз вывести символ
    push    ax              ; сохраняем двойку
    lodsb           ; AL=символ из строки
    xchg    di, bx      ; BH=видеостраница(0), BL=атрибут
    mov ah,9        ; выводим
    int 10h     ; символ
    xchg    cx, bp      ; вертаем взад длину строки
    pop ax      ; -//- # ф-ции
    pop dx      ; -//- координаты
    inc dh      ; увеличиваем # строки
    inc bl      ; прибавляем аттрибут
    xchg    di, bx
    loop    @B      ; по длине строки
    mov ah,00h      ; getch();
    int 16h
    ret         ; gtfo
    message db 'HELLO WORLD!'
    len=$-message
2
0 / 0 / 0
Регистрация: 07.10.2014
Сообщений: 6
16.10.2014, 14:07  [ТС] 3
А как цвет фона задать??не могли бы подсказать
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
21.10.2014, 16:35 4
Цитата Сообщение от linusik Посмотреть сообщение
А как цвет фона задать??
В BH старшие 4 бита - цвет фона, младшие - цвет символа, то же с аттрибутами символа в видеопамяти.
0
21.10.2014, 16:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2014, 16:35
Помогаю со студенческими работами здесь

Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки
Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных...

Написать программу определения вывода на экран
написать программу определения и вывода на экран всех двузначных чисел у которых при умножении на 2...

Написать программу вывода на экран таблицы Пифагора
Помогите написать программу вывода на экран таблицы Пифагора

Написать программу вывода на экран анимированного изображения.
Пожалуйста кто сможет,решите задачки.Очень надо.Заранее спасибки!!! 1)Дана ведомость учащихся,...


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

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

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