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

лб10

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

Лабораторна робота № 10

ПРОГРАМУВАННЯ ПРОСТИХ ЦИКЛІВ І РОЗГАЛУЖЕНЬ

Мета роботи – вивчення правил побудови простих циклів і розгалужень, способів адресації змінних і набуття навиків їх реалізації у програмах мовою асемблера.

Завдання на виконання роботи

  1. Ввести з клавіатури довільний текст (не більше рядка на екрані). Виконати його оброблення згідно варіанта. Текст після обробдення вивести на екран.

Варіанти завдання 1

12. Додати після кожного символа новий символ, введений з клавіатури.

Лістинг програми:

data segment

t1 db 13,10,'Vvedit ryadok: $'

t3 db 13,10,'Vvedit simvol: $'

t2 db 13,10,'Rez: $'

s db 100 dup(' ')

s1 db ?

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

mov ax, data

mov ds, ax

mov es, ax

xor bx,bx

xor cx,cx

mov dx, offset t1

mov ah, 9

int 21h

lea dx, s

mov ah,0Ah

int 21h

mov dx, offset t3

mov ah, 9

int 21h

mov ah, 1

int 21h

mov s1,al

lea si, s

inc si

xor cx,cx

mov cl,byte [si]

inc si

mov dx, offset t2

mov ah, 9

int 21h

for2:

xor ax,ax

xor dx,dx

mov ah, 2

mov dl,[si]

int 21h

xor ax,ax

xor dx,dx

mov ah, 2

mov dl,s1

int 21h

inc si

loop for2

mov ah, 1

int 21h

mov ah, 4Ch

int 21h

end start

Варіанти завдання 2

  1. Визначити кількість знакочергувань елементів, тобто переходів з мінуса на плюс і навпаки.

Лістинг програми:

data segment

zn db 20

mas DB 1,2,-2,-4,6,$

len = $-mas

rez db 13,10,"Vsbogo - $"

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

mov ax, data

mov ds, ax

mov es, ax

mov si, offset mas

mov cx, len - 1

xor dx, dx

cld

cykl: lodsw

xor ax, [si]

jns odinznak

inc dx

odinznak: loop cykl

add dl,30h

mov bx,dx

mov dx, offset rez

mov ah, 9

int 21h

mov dl, bl

mov ah, 2

int 21h

mov ax, 4c00h

int 21h

ends

end start

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