- •Напишите программу, которая запрашивает у пользователя имя (максимум 10 символов) и затем трижды признаётся пользователю в любви.
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Напишите программу, запрашивающую у оператора строку, а затем выводящую ее на экран. Выполните трассировку программы.
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Напишите программу, вводящую строку запроса и ожидающую ответ. В зависимости от ответа “y” или “n” вывести на экран ту или иную строку. Выполните трассировку программы.
- •Напишите программу, запрашивающую у оператора строку. Количество вводимых букв ограничьте программно. Выполните трассировку программы.
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Ввести с клавиатуры натуральное число. Найти сумму его первой и последней цифры и вывести на экран. Выполните трассировку программы.
- •Напишите программу, запрашивающую у оператора строку, а затем выводящую ее на экран, предварительно изменив заглавные английские буквы на строчные. Выполните трассировку программы.
- •Напишите программу, запрашивающую у оператора строку, а затем выводящую ее на экран в pамке. Выполните трассировку программы.
- •Напишите программу, запрашивающую у оператора строку str1. Необходимо скопировать в строку str2 последний символ из str1 три раза. Выполните трассировку программы.
- •Напишите программу, запрашивающую у оператора строку, а затем выводящую каждое слово в отдельной строке. Выполните трассировку программы.
- •Напишите программу, запрашивающую у оператора строку, а затем выводящую символы введенной строки на экран в обратном порядке. Выполните трассировку программы.
- •Ввести с клавиатуры натуральное число. Поменять порядок следования цифр в числе и вывести на экран.
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Напишите программу, которая вводит с клавиатуры слово и выводит слово лесенкой, уменьшая длину на один символ.
- •Оформите ввод пароля в рамке. Рамка расширяется при вводе символов. Для рисования рамки используйте коды символов:
- •Дополните программу: ввод пароля пока не будет введено правильное слово. При каждом неверном вводе выводите сообщение об этом.
- •Дополните программу. При верном вводе пароля он появляется на экране через временную задержку разного цвета.
- •Дополните программу. Введите строку текста и выведите его по буквам в режиме телетайпа разными по цвету буквами.
- •Дополните программу: вводите пароль 3 раза, каждый раз после ввода отображайте введенное слово и сообщайте верно или неверно введен пароль. Затем выход в dos.
- •Дополните программу: измените цвет выводимых на экран символов и при неверном вводе пароля в правом верхнем углу выводите сообщение «Ха-ха, Вы ошиблись!!!»
- •Дополните программу: измените цвет выводимых на экран символов и при неверном вводе пароля в правом нижнем правом углу выводите сообщение «Ха-ха, Вы ошиблись!!!»
- •Дополните программу: измените цвет выводимых на экран символов и при неверном вводе пароля в центре экрана выводится сообщение «Ха-ха, Вы ошиблись!!!»
- •Введите две строки. В случае если они одинаковые. Выводится сообщение о том что строки совпали, в противном случае выводится сообщение, о том что строки не совпадают.
- •Напишите программу, которая получает строку и слово. С помощью макроса определить входит ли данное слово в строку.
- •Напишите программу, в которой вводятся целые числа а, b. Напишите макрокоманду определения min.
- •Напишите программу, в которой вводятся целые числа c, d. Напишите макрокоманду определения max.
- •Напишите программу, в которой вводятся целые числа а, b, c, d. Найти max{min(a, b), min(c, d)}, для чего написать макрокоманды определения max и min.
- •Вывести на экран своё имя, фамилию и группу, используя макрокоманду.
- •Написать программу, которая спрашивала бы сокращенное имя, а печатала бы полное. В случае незнакомого имени – печатать "я с Вами не знакома".
- •Int 21h ; Вызов 21 прерывания dos
- •Int 21h ; Вызов 21 прерывания dos
- •Ввести с клавиатуры натуральное число. Проверить будут ли его цифры все различны. Вывести на экран сообщение. Преобразование строки в число производить в макрокоманде.
- •Ввести с клавиатуры два натуральных числа. Проверить есть ли у них одинаковые цифры. Если да, вывести их на экран. Преобразование строки в число произвести с помощью макрокоманды
- •Напишите программу, в которой вводится массив целых чисел. С помощью макроса отсортируйте массив любым известным алгоритмом.
- •Дана длина ребра куба. Найти площадь грани.
- •Дана длина ребра куба. Найти площадь полной поверхности этого куба.
- •Дана длина ребра куба. Найти объем этого куба.
Дополните программу: измените цвет выводимых на экран символов и при неверном вводе пароля в правом нижнем правом углу выводите сообщение «Ха-ха, Вы ошиблись!!!»
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h
begin: jmp main
;******************************************************************
main proc near
call clear_scrin
; вывод сообщения на экран
mov row,09
mov col,10
lea bp, [message] ; адрес строки
mov cx, 15 ;длина строки
call write_string
;Cмещение курсора на конец выведеного сообщения
add col, 18
lea si, cout
wr:
; Установка позиции курсора
mov ah, 02h
mov bh, 00
mov dl, col
int 10h
;ожидание ввода с клавиатуры без эхоотображения
mov ah, 00h
int 16h
CMP al, 0dh ; конец ввода «Enter»
je wr1
; Введенный символ из al записывается в строку cout
mov [si], al
inc si
; выводится на экран в текущую позицию курсора символ '*'
mov ah, 09
mov al, '*'
mov bh, 00
mov cx, 1
int 10h
inc col
inc coun
CMP coun, 8 ;вводится только 8 символов
jne wr ;повторяем ввод символа
lea si, parol
lea bp, [cout]
wr1:
mov ah, [si]
mov al, [bp]
cmp ah, al
jne q ;выход из программы
cmp cl, coun
je wr2
inc si
inc bp
inc cl
jmp wr1
;выход из программы
MOV ah, 8h
int 21h
q:
call clear_scrin
mov ah, 13h ;установка курсора
mov bh, 0
mov bl, 11001010b
mov dh, 23 ; координаты y
mov dl, 65 ; координата x
lea bp, mess1
mov cl, 14
mov ch, 0
mov al, 1
int 10h
ret
wr2: call ok
main endp
;********************************************************************
;вывод на экран сообщения о правильном вводе пароля
ok proc near
call clear_scrin
lea bp,[mess] ;адрес строки
mov cl, 14
call write_string
ret
ok endp
;********************************************************************
clear_scrin proc near
; Очистка экрана
mov ax, 0600h ; ah=06-прокрутка экрана
; al=00-весь экран
mov bh, 07
mov cx, 0000
mov dx, 184fh
int 10h
ret
clear_scrin endp
;********************************************************************
write_string proc near
mov ah, 13h ; функция вывода на экран
mov al, 1
mov bh, 00 ; номер видео страницы
mov bl, 00001110b
mov dh, 6 ;координаты по строке
mov dl, 6 ;координаты по столбцу
int 10h
ret
write_string endp
message db 'Input password:'
mess db 'You are right!'
mess1 db 'You are wrong!'
row db 00
col db 00
cout db 9 dup (' ')
parol db 'tiraspol'
coun db 0
codesg ends
end begin
