Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задачи(решённые)2.3.4 лабы.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
103.22 Кб
Скачать

Л/р №2

  1. Напишите программу, которая запрашивает у пользователя имя (максимум 10 символов) и затем трижды признаётся пользователю в любви.

codesg segment para 'code'

assume cs:codesg, ds:codesg, ss:codesg, es:codesg

org 100h

begin: call start

message db 'Dobri den, vvedite svoe imia: ', '$'

message2 db 13,10,'I love you!!! ','$'

string label byte ;Список параметров

symb db 19 ;Максимальная длина

real db ? ;Реальная длина

all db 20 dup (?),'$' ; Введенные символы

start proc near

mov ah, 00h ;Установка видеорежима

mov al, 03h ; Стандартный цветной текст 80х25

int 10h

mov dh, 01 ; Установка позиции курсора

mov dl, 01

mov bh, 00

mov ah, 02h ; Вызов функции установки курсора

int 10h

mov ah, 09h ; Вызов функции вывода

lea dx, message ; Загрузка адреса строки сообщения

int 21h ; Вызов 21 прерывания DOS

lea dx, string ; Загрузка адреса списка параметров

mov ah, 0ah ; Запрос функции ввода

Int 21h ; Вызов 21 прерывания dos

mov dh, 03 ; Установка позиции курсора

mov dl, 01

mov bh, 00

mov ah, 02h ; Вызов функции установки курсора

int 10h

mov cx, 3 ; цикл

povtor:

lea dx, message2 ; добавляю

mov ah, 09h ; Запрос функции ввода

Int 21h ; Вызов 21 прерывания dos

mov bl,real ; Поместить указатель на конец строки

mov bh,00

mov all[bx],'$'

lea dx, string+2

mov ah, 09h

Int 21h ; Вызов 21 прерывания dos

loop povtor

mov ah,4ch ; Выход в DOS в 21 прерывании

int 21h

  1. Напишите программу, запрашивающую у оператора строку, а затем выводящую ее на экран. Выполните трассировку программы.

codesg segment para 'code'

assume cs:codesg, ds:codesg, ss:codesg, es:codesg

org 100h

begin: call start

message db 'Vvedite stroky: ', '$'

string label byte ;Список параметров

symb db 19 ;Максимальная длина

real db ? ;Реальная длина

all db 20 dup (?),'$' ; Введенные символы

start proc near

mov ah, 00h ;Установка видеорежима

mov al, 03h ; Стандартный цветной текст 80х25

int 10h

mov dh, 01 ; Установка позиции курсора

mov dl, 01

mov bh, 00

mov ah, 02h ; Вызов функции установки курсора

int 10h

mov ah, 09h ; Вызов функции вывода

lea dx, message ; Загрузка адреса строки сообщения

Int 21h ; Вызов 21 прерывания dos

lea dx, string ; Загрузка адреса списка параметров

mov ah, 0ah ; Запрос функции ввода

Int 21h ; Вызов 21 прерывания dos

mov dh, 03 ; Установка позиции курсора

mov dl, 01

mov bh, 00

mov ah, 02h ; Вызов функции установки курсора

int 10h

mov bl,real ; Поместить указатель на конец строки

mov all[bx],'$'

lea dx, string+2

mov ah, 09h