- •Напишите программу, которая запрашивает у пользователя имя (максимум 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
- •Ввести с клавиатуры натуральное число. Проверить будут ли его цифры все различны. Вывести на экран сообщение. Преобразование строки в число производить в макрокоманде.
- •Ввести с клавиатуры два натуральных числа. Проверить есть ли у них одинаковые цифры. Если да, вывести их на экран. Преобразование строки в число произвести с помощью макрокоманды
- •Напишите программу, в которой вводится массив целых чисел. С помощью макроса отсортируйте массив любым известным алгоритмом.
- •Дана длина ребра куба. Найти площадь грани.
- •Дана длина ребра куба. Найти площадь полной поверхности этого куба.
- •Дана длина ребра куба. Найти объем этого куба.
Напишите программу, запрашивающую у оператора строку, а затем выводящую ее на экран в pамке. Выполните трассировку программы.
.model small
.stack 100h
.const
msg db "Enter string:", "$"
crlf db 0dh, 0ah, "$"
.data
max db 10
len db ?
all db 10 dup("?")
.code
main:
mov ax, @data
mov ds, ax
mov dx, offset msg
mov ah, 09h ; BbIBOD CTPOKU
int 21h
mov dx, offset crlf
mov ah, 09h
int 21h
mov dx, offset max
mov ah, 0ah
int 21h
xor bx, bx
mov bl, len
mov all[bx], "$"
mov ah, 00h
mov al, 03h
int 10h
xor cx, cx
mov cl, len
inc cx
inc cx
mov dl, "="
m1:
mov ah, 02h
int 21h
loop m1
mov dx, offset crlf
mov ah, 09h
int 21h
mov dl, "|" ; PAMKA
mov ah, 02h
int 21h
mov dx, offset all
mov ah, 09h
int 21h
mov dl, "|"
mov ah, 02h
int 21h
mov dx, offset crlf
mov ah, 09h
int 21h
xor cx, cx
mov cl, len
inc cx
inc cx
mov dl, "="
m2:
mov ah, 02h
int 21h
loop m2
mov ah, 04ch
int 21h
end main
Напишите программу, запрашивающую у оператора строку str1. Необходимо скопировать в строку str2 последний символ из str1 три раза. Выполните трассировку программы.
.model small
.stack 100
.data
message DB 'Enter the string:',10,13,'$'
maxlength DB 11
curlength DB ?
s1 DB 11 DUP(?)
s2 DB 4 DUP(?)
new_line DB 10,13,'$'
.code
ASSUME DS:@data, SS:@stack, CS:@code
begin:
PUSH DS
PUSH 0
MOV AX, @data
MOV DS, AX
MOV AH, 9
LEA DX,message ;выводим на экран
;MOV DX, OFFSET message ;строку message с помощью
INT 21h
MOV AH, 0Ah ;вводим строку s1,
LEA DX, maxlength ;указывая на байт, содержащий
INT 21h
MOV BL,BYTE PTR curlength ;помещаем в BX количество введенных
MOV BH, 0
MOV Al, s1 [BX-1] ;копируем последний символ из s1 в s2
MOV s2 ,Al
MOV Al, s1 [BX-1] ;копируем последний символ из s1 в s2
MOV s2+1 ,Al
MOV Al, s1 [BX-1] ;копируем последний символ из s1 в s2
MOV s2+2 ,Al
MOV s2+3, '$' ;помещаем символ $ в конец строки s2
MOV s1[BX], '$' ;заменяем символ ENTER на $
MOV AH, 9 ;выводим строку
MOV DX, OFFSET s1 ;s1
INT 21h
MOV AH, 9 ;выводим строку
LEA DX, new_line ;new_line
INT 21h ;на экран
MOV AH, 9 ;выводим строку
LEA DX, s2 ;s2
INT 21h ;на экран
MOV AH, 9 ;выводим строку
MOV DX, OFFSET new_line ;new_line
INT 21h ;на экран
MOV AH, 4Ch ;завершаем программу с помощью
INT 21h ;функции 4c прерывания 21h
end begin
end
Напишите программу, запрашивающую у оператора строку, а затем выводящую каждое слово в отдельной строке. Выполните трассировку программы.
stacksg segment para stack 'Stack'
dw 32 dup(?)
stacksg ends
datasg segment para 'Data'
message db 'vvedite predlojenie: $'
string label byte
max db 50
len db ?
str db 100 dup ('$')
k db 1
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 ah,09h
lea dx,message
int 21h
mov ah, 0ah
lea dx, string
int 21h
mov bx,offset str
mov dh,k
mov dl,00
mov bh,00
mov ah,02h
int 10h
inc k
next: mov dl,[bx]
mov ah,02h
int 21h
cmp dl,0Dh
je exit
inc bx
cmp dl,' '
jne next
mov dh,k
mov dl,00
mov bh,00
mov ah,02h
int 10h
inc k
jmp next
exit: mov ah, 8h
int 21h
mov ah,4ch
int 21h
codesg ends
end begin
