Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаб15

.docx
Скачиваний:
0
Добавлен:
26.03.2021
Размер:
32.55 Кб
Скачать

ЛАБОРАТОРНА РОБОТА №15

Тема: Робота с відеобуфером у програмах на мові Асемблер.

Мета: Оволодіти навичками написання програм на мові Асемблер для роботи з відеобуфером.

Завдання 1:

data segment

mess0 db 'pershiy ryadock',13,10

db 'drugiy ryadock','$'

fname db 'text.txt',0

buff db 2000 dup(20h)

pkey db "press any key...$"

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

mov ax, data

mov ds, ax

mov es, ax

mov ax,3

int 10h

mov ah,9

mov dx, offset mess0

int 21h

mov di, offset buff

xor bx,bx

xor dx,dx

save:

mov cx,80

b:

mov ah,2

int 10h

mov ah,8

int 10h

stosb

inc dl

loop b

mov ax,0a0dh

stosw

xor dl,dl

inc dh

cmp dh,2

jnz save

mov ah,3ch

mov dx, offset fname

mov cx,20h

int 21h

xchg bx,ax

mov ah,40h

mov dx,offset buff

mov cx,2000

int 21h

mov ah,3eh

int 21h

exit:

xor ax,ax

int 16h

int 20h

lea dx, pkey

mov ah, 9

int 21h

mov ah, 1

int 21h

mov ax, 4c00h

int 21h

ends

end start

Завдання 2:

data segment

file db 'text.txt',0

mess0 db 'pershiy ryadock'

descr dw 0

str_len=$-mess0

buff db 100 dup(20h)

attr db 1eh

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

mov ax, data

mov ds, ax

mov es, ax

mov ax, 0b800h

mov es, ax

mov cx,str_len

mov si, offset mess0

cld

mov ah, attr

lodstor:

lodsb

stosw

loop lodstor

mov di, offset buff

mov bx,0

mov cx,1

mmm: push cx

mov cx,25

nnn: push cx

mov ax,es:[bx]

mov [di],ax

add bx,2

inc di

pop cx

loop nnn

mov ax,0a0dh

mov [di],ax

inc di

inc di

pop cx

loop mmm

mov ah,3ch

mov dx, offset file

mov cx,20h

int 21h

xchg bx,ax

mov ah,40h

mov dx,offset buff

mov cx,str_len

int 21h

mov ah,3eh

int 21h

mov ax, 4c00h

int 21h

ends

end start

Завдання 3:

data segment

fname db 'text.txt',0

mess0 db 'pershiy ryadock'

str_len=$-mess0

mess1 db '1234567890'

buff db 100 dup(20h)

attr db 1eh

ends

stack segment

dw 128dup(0)

ends

code segment

start:

mov ax, data

mov ds, ax

mov es, ax

mov ax, 0b800h

mov es, ax

mov cx,str_len

mov si, offset mess0

cld

mov ah, attr

lodstor:

lodsb

stosw

loop lodstor

mov di, 0

mov cx,10

mov si, offset mess1

cld

mov ah, attr

lodstor1:

lodsb

stosw

loop lodstor1

mov di, offset buff

mov bx,0

mov cx,1

mmm: push cx

mov cx,25

nnn: push cx

mov ax,es:[bx]

mov [di],ax

add bx,2

inc di

pop cx

loop nnn

mov ax,0a0dh

mov [di],ax

inc di

inc di

pop cx

loop mmm

mov ah,3ch

mov dx, offset fname

mov cx,20h

int 21h

xchg bx,ax

mov ah,40h

mov dx,offset buff

mov cx,str_len

int 21h

mov ah,3eh

int 21h

mov ax, 4c00h

int 21h

ends

end start

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]