- •Напишите программу, которая запрашивает у пользователя имя (максимум 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
- •Ввести с клавиатуры натуральное число. Проверить будут ли его цифры все различны. Вывести на экран сообщение. Преобразование строки в число производить в макрокоманде.
- •Ввести с клавиатуры два натуральных числа. Проверить есть ли у них одинаковые цифры. Если да, вывести их на экран. Преобразование строки в число произвести с помощью макрокоманды
- •Напишите программу, в которой вводится массив целых чисел. С помощью макроса отсортируйте массив любым известным алгоритмом.
- •Дана длина ребра куба. Найти площадь грани.
- •Дана длина ребра куба. Найти площадь полной поверхности этого куба.
- •Дана длина ребра куба. Найти объем этого куба.
Напишите программу, которая получает строку и слово. С помощью макроса определить входит ли данное слово в строку.
vvod macro str, fun
mov ah,fun
lea dx,str
int 21h
endm
cmpstr1 macro s11,s22,real11,real22,col,ravn,Yes1,NO1
local s,t,m1,m2,m3,exit
xor si,si
s: xor di,di
t: mov cl,byte ptr s22[di]
cmp byte ptr s11[si],cl
je m1
inc col
mov si,col
cmp si,real11
je m3
jmp s
m1: inc ravn
inc si
inc di
mov cx,ravn
cmp cx,real22
je m2
jmp t
m2: vvod Yes1,09h
jmp exit
m3: vvod NO1,09h
jmp exit
exit:endm
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h ; Їа®ЇгбвЁвм 256 Ў ©в
begin: jmp start
message db 'Введите строку: ','$'
message2 db 'Введите подстроку: ','$'
string1 label byte
maxs1 db 40
reals1 db ?
s1 db 40 dup ('$')
string2 label byte
maxs2 db 10
reals2 db ?
s2 db 10 dup ('$')
coll dw 0
ravnno dw 0
real1 dw ?
real2 dw ?
Yes db 'YES********','$'
NO db 'NO+++++++++','$'
start:
vvod s1,09h
mov ah,02
mov dl,0dh
int 21h
mov dl,0ah
int 21h
vvod message,09h
vvod string1,0ah
;vvod s2,09h
mov ah,02
mov dl,0dh
int 21h
mov dl,0ah
int 21h
vvod message2,09h
vvod string2,0ah
mov ah,02
mov dl,0dh
int 21h
mov dl,0ah
int 21h
xor ax,ax
mov al,reals1; перевод длині введенной строки из байта в слово
mov real1,ax
xor ax,ax
mov al,reals2;перевод длині введенной подстроки из байта в слово
mov real2,ax
cmpstr1 s1, s2, real1, real2, coll, ravnno, Yes, NO
mov ah, 4ch;
int 21h
codesg ends
end begin
Напишите программу, в которой вводятся целые числа а, b. Напишите макрокоманду определения min.
Write MACRO mes ;вывод сообщения на экран
LEA dx, mes
MOV ah, 09h
INT 21h
ENDM
;----------------------------------------------
WriteLine MACRO mes ; вывод сообщения на экран
Write mes
ENDM
;---------------------------------------------
getch MACRO
MOV ah, 8h
int 21h
ENDM
;---------------------------------------------
Exit MACRO
MOV ah, 4ch
INT 21h
ENDM
;---------------------------------------------
ReadLine MACRO
LEA dx, Temp
MOV ah, 0ah
INT 21h
ENDM
;---------------------------------------------
newline macro ; переход на новую строку
mov ah, 02h
mov dl,0ah
int 21h
mov ah,02h
mov dl,0dh
int 21h
endm
;----------------------------------------------
min macro f1,f2 ; минимальное число
local x,en
mov ax, f1
mov bx, f2
cmp ax,bx
ja x
mov dx, ax
jmp en
x: mov dx,bx
en:
endm
;----------------------------------------------
Convert MACRO num ;перевод строки в число
LOCAL m1
XOR ax, ax
XOR cx, cx
MOV cl, real
MOV di, 10
LEA bx, Text
m1:
MUL di
MOV dl, [bx]
SUB dl, 48
ADD al, dl
INC bx
LOOP m1
MOV num, ax
ENDM
;---------------------------------------------
WriteInt MACRO num
LOCAL m1
LOCAL m2
XOR cx, cx
MOV di, 10
MOV ax, num
m1:
MOV dx, 0
DIV di
INC cx
PUSH dx
CMP ax, 0
JG m1
MOV ah, 2h
m2:
POP dx
ADD dl, 48
INT 21h
LOOP m2
ENDM
;----------------------------------------------
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h
begin:
call start
amsg db 'Vvedite a:', '$'
ra dw ?
bmsg db 'Vvedite b:', '$'
rb dw ?
str1 db 'Rezultat = ', '$'
minn1 dw 0
Temp LABEL BYTE
len db 3
Real db ?
Text db 4 DUP(0)
start proc near
;----------------------------------------------
WriteLine amsg
ReadLine
Convert ra
newline
WriteLine bmsg
ReadLine
Convert rb
newline
min ra,rb
mov minn1,dx
WriteLine str1
WriteInt minn1
getch
exit
;-----------------------------------------------
start endp
codesg ends
end begin
