- •Напишите программу, которая запрашивает у пользователя имя (максимум 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
- •Ввести с клавиатуры натуральное число. Проверить будут ли его цифры все различны. Вывести на экран сообщение. Преобразование строки в число производить в макрокоманде.
- •Ввести с клавиатуры два натуральных числа. Проверить есть ли у них одинаковые цифры. Если да, вывести их на экран. Преобразование строки в число произвести с помощью макрокоманды
- •Напишите программу, в которой вводится массив целых чисел. С помощью макроса отсортируйте массив любым известным алгоритмом.
- •Дана длина ребра куба. Найти площадь грани.
- •Дана длина ребра куба. Найти площадь полной поверхности этого куба.
- •Дана длина ребра куба. Найти объем этого куба.
Вывести на экран своё имя, фамилию и группу, используя макрокоманду.
stacksg segment para stack 'Stack'
dw 32 dup(?)
stacksg ends
write macro str
mov ah,02h
mov dl,'*'
int 21h
mov ah,09h
lea dx,str
int 21h
endm
datasg segment para 'Data'
message db 'Hello World!$'
datasg ends
codesg segment para 'Code'
begin:
assume cs:codesg, ds:datasg, ss:stacksg, es:datasg
push ds
sub ax,ax
push ax
mov ax,datasg
mov ds,ax
mov dh,0
mov dl,0
mov bh,0
mov ah,02h
int 10h
write message
mov ah,8
int 21h
mov ah,4ch
int 21h
codesg ends
end begin
Написать программу, которая спрашивала бы сокращенное имя, а печатала бы полное. В случае незнакомого имени – печатать "я с Вами не знакома".
exit macro
mov ah,4ch ; Выход в DOS в 21 прерывании
int 21h
endm
vivod macro mm
mov ah, 09h ; Вызов функции вывода
lea dx, mm
int 21h
endm
iff macro string1,string2,i,net
local m1,m2
cld ;Сравнение вперед
mov SI, offset string1 ;DS:SI ® strl
mov DI, offset string2 ;ES:DI ® str2
mov CX,i ;Длина сравниваемых строк
repe cmpsb ;Поиск различия в строках
je m1
jmp m2
m1: vivod string2 ;Переход, если строки совпадают
mov bx,10
m2: vivod net
endm
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h
begin: call start
im1 db 'vadim','$'
im2 db 'maksim','$'
im3 db 'aleksandr','$'
im4 db 'vladik','$'
net1 db '','$'
net2 db 'Ia s vami ne znakom!!!','$'
mes db 'Vvedite sokrashennoi imia, a ia napishy polnoe: ', '$'
string label byte ;Список параметров
symb db 19 ;Максимальная длина
real db ? ;Реальная длина
all db 20 dup (?),'$' ; Введенные символы
start proc near
mov ah, 09h ; Вызов функции вывода
lea dx, mes ; Загрузка адреса строки сообщения
Int 21h ; Вызов 21 прерывания dos
lea dx, string ; Загрузка адреса списка параметров
mov ah, 0ah ; Запрос функции ввода
Int 21h ; Вызов 21 прерывания dos
mov dh, 02 ; Установка позиции курсора
mov dl, 01
mov bh, 00
mov ah, 02h ; Вызов функции установки курсора
int 10h
mov bl,real ; Поместить указатель на конец строки
mov all[bx],'$'
mov bx,00 ; обнуляю флаг
iff string+2,im1,3,net1 ;проверяю каждое введенное слово на схожесть с именами
iff string+2,im2,4,net1
iff string+2,im3,5,net1
iff string+2,im4,4,net1
cmp bx,00;проверяю флаг
je m1
jmp m2
m1: vivod net2;если флаг обнулен тогда пишу что такого имени нет
m2: exit;выход из программы
start endp
codesg ends
end begin
Ввести с клавиатуры натуральное число. Проверить будут ли его цифры все различны. Вывести на экран сообщение. Преобразование строки в число производить в макрокоманде.
input macro inter,var
mov ah,inter
lea dx,var
int 21h
endm
ravnchifr MACRO strб,col ;ў®§ўа и Ґв 1 Ґб«Ё Ґбвм ®¤Ё Є®ўлҐ жЁдал
local l1,l2,l3,l4
mov ax,0
lea si,strб
xor ch,ch
mov cl,col
l1:
mov di,si
inc di
push cx
dec cx
jz l4
l2:
mov dl,[di]
mov dh,[si]
inc di
cmp dl,dh
jz l3
loop l2
pop cx
inc si
loop l1
jmp l4
l3:
mov ax,1
l4:
ENDM
codes SEGMENT para 'code'
assume cs:codes,ds:codes,es:codes,ss:codes
org 100h
main:
jmp begin
chislo db 20,?,20 dup (?)
mes db 13,10,'Есть одинаковые цифры !!!','$'
mesn db 13,10,'Одинаковых цифр нет','$'
mespr db 13,10,'Введите пожалуйста число : ','$'
begin:
input 09h,mespr
input 0ah,chislo
ravnchifr chislo+2,chislo+1
test ax,ax
jz m2
input 09h,mes
jmp m3
m2:
input 09h,mesn
m3:
mov ah,4ch
int 21h
codes ends
end main
