Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

C0 - Нижний левый угол B3 - Вертикальная линия

Напишите программу, запрашивающую у оператора строку, а затем выводящую ее на экран. Выполните трассировку программы. | Ввести с клавиатуры натуральное число. Найти сумму его первой и последней цифры и вывести на экран. Выполните трассировку программы. | Напишите программу, запрашивающую у оператора строку, а затем выводящую каждое слово в отдельной строке. Выполните трассировку программы. | Дополните программу. Введите строку текста и выведите его по буквам в режиме телетайпа разными по цвету буквами. | Введите две строки. В случае если они одинаковые. Выводится сообщение о том что строки совпали, в противном случае выводится сообщение, о том что строки не совпадают. | Напишите программу, которая получает строку и слово. С помощью макроса определить входит ли данное слово в строку. | Напишите программу, в которой вводятся целые числа а, b. Напишите макрокоманду определения min. | Напишите программу, в которой вводятся целые числа c, d. Напишите макрокоманду определения max. | Ввести с клавиатуры натуральное число. Проверить будут ли его цифры все различны. Вывести на экран сообщение. Преобразование строки в число производить в макрокоманде. | Дана длина ребра куба. Найти площадь полной поверхности этого куба. |


Читайте также:
  1. I. ТЕАТРАЛЬНАЯ ЛИНИЯ ПРОЛЕТКУЛЬТА
  2. Ампульная линия
  3. Бюджетная линия
  4. Бюджетная линия показывает различные комбинации двух продуктов, которые могут быть приобретены при фиксированной величине денежного дохода и ценах.
  5. Глава 24. Линия разлома
  6. Задняя линия. Улыбка вдоль позвоночника

codesg segment para 'code'

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

org 100h

 

begin: call start

message db 'Vvedite parol: *', '$'

message2 db 'Parol ne > 6 simvolov!!!', '$'

string label byte

 

start proc near

;устанавливаю курсор в нужном месте

mov dh, 01;номер строки

mov dl, 00;символ в строке

mov ah, 02h;символ установки курсора

int 10h

 

mov ah, 09h;вывод строки символов

lea dx, message;приглашение к вводу пароля

int 21h

 

mov k,14;с каого места будет рисовать снежинки

mov cx,5

l1:;цикл

inc k

call verh;рисую верхнию линию

call niz;рисую нижнию линию

loop l1

 

mov col,17

call stenca

wr:

;устан курсор в рамке

mov dh, 01

mov dl, col

mov ah, 02h

int 10h

;ожидание ввода с клавиатуры без эхоотображения

mov ah,00h

int 16h

;вместо символв записываю #

mov ah,02h

mov dl,'#'

int 21h

;рисую продолжение рамки

inc k

call verh

call niz

call r1

call stenca

 

inc col

inc coun

cmp coun,6;пароль не больше 6 символов

jne wr

je r2

 

coun db 00;перемен-кол-во символов пароля

col db 00;перемен-где рисует снежинку

k db 00;перемен-устанвка курсора для ввода символов

 

mov ah,4ch;выход из программы

int 21h

start endp

 

r1 proc near;стираю снежинку

add col,2

mov dh, 01

mov dl, col

mov ah, 02h

int 10h

 

mov ah,02h

mov dl,' '

int 21h

sub col,2

ret

r1 endp

 

r2 proc near;если пароль > 6 символов

mov dh, 01

mov dl, 30

mov bh, 00

mov ah, 02h

int 10h

 

mov ah, 09h

lea dx, message2

int 21h

 

mov ah,4ch

int 21h

ret

r2 endp

 

verh proc neaar

mov dh, 00

mov dl, k

mov ah, 02h

int 10h

call snejinka

ret

verh endp

 

niz proc neaar

mov dh, 02

mov dl, k

mov ah, 02h

int 10h

call snejinka

ret

niz endp

 

stenca proc near

mov dh, 01

mov dl, k

mov ah, 02h

int 10h

call snejinka

ret

stenca endp

 

snejinka proc neaar

mov ah,02h

mov dl,'*'

int 21h

ret

snejinka endp

codesg ends

end begin

 

 

2. Дополните программу: ввод пароля пока не будет введено правильное слово. При каждом неверном вводе выводите сообщение об этом.

csg segment para

 

assume cs:csg, ds:csg, es:csg, ss:csg

org 100h

 

start:

jmp main

 

main proc near

 

call clrscr

 

mov ah, 0bh

mov bh, 01h; Применять палитру 1.

mov bl, 01h; Установить белый цвет для сообщений

int 10h

 

lea bp, [msg]

mov cx, 09h; В выводимой строке 9 букв.

mov dx, 0000h; Вывод в 0-ю строку, 0-й столбец.

mov bl, 07h; Белый цвет.

call puts

 

again:

 

lea si, inpas; Загрузить адрес строки для сохранения символов.

 

input:

mov ah, 02h

mov dh, 01h; Установить курсор в 1-ю строку.

mov dl, col; Установить курсор в нужный столбец.

mov bh, 00h; Установить курсор на 0-й видеостранице.

int 10h

 

mov ah, 00h; Ожидание появления символа в буфере клавиатуры.

int 16h

 

cmp al, 0dh

je check_pass

 

mov [si], al; Сохранение текущего символа.

inc si

 

mov ah, 09h

mov al, '*'; Выводимый символ.

mov bh, 00h; Номер видеостраницы.

mov bl, 04h

mov cx, 01h; Количество повторений.

int 10h

 

inc cnt

inc col

cmp cnt, 06h

je check_pass

jmp input

 

check_pass:

lea si, inpas

lea di, pass

xor cx, cx

xor bx, bx

dec cnt

l1:

mov ah, [si+bx]

mov al, [di+bx]

cmp ah, al

jne pass_error

cmp bl, 05h

je exit_ok

inc bl

jmp l1

 

pass_error:

call err_msg

mov col, 00h

mov cnt, 00h

jmp again

 

exit_ok:

call ok

 

exit:

mov ah, 04ch

int 21h

 

ret

main endp

 

; Процедура err_msg

err_msg proc near

call clrscr

lea bp, [errmsg]

xor cx, cx

mov cl, 18h

mov dx, 0000h

mov bl, 04h; Красный цвет.

call puts

ret

err_msg endp

 

; Процедура OK

ok proc near

call clrscr

lea bp, [okmsg]

xor cx, cx

mov dx, 0000h

mov cl, 02h

mov bl, 02h; Зеленый цвет.

call puts

mov ah, 00h

int 16h

ret

ok endp

 

; Процедура puts

puts proc near

mov ah, 13h

mov al, 01h; Курсор в конец строки.

mov bh, 00h; Вывод на 0-ю видеостраницу.

int 10h

ret

puts endp

 

; Процедура clrscr

clrscr proc near

mov ah, 06h

mov al, 00h; Число прокручиваемых строк.

mov cl, 00h; Номер столбца верхнего левого угла.

mov ch, 00h; Номер строки верхнего левого угла.

mov dl, 4fh; Номер столбца правого нижнего угла.

mov dh, 18h; Номер строки правого нижнего угла.

mov bh, 07h

int 10h

ret

clrscr endp

 

msg db "Password: "

okmsg db "OK"

errmsg db "Error, Please try again:"

pass db '111111'

row db 0

col db 0

cnt db 0

inpas db 6 dup("?")

csg ends

end start

 


Дата добавления: 2015-08-17; просмотров: 98 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Ввести с клавиатуры натуральное число. Поменять порядок следования цифр в числе и вывести на экран.| Дополните программу. При верном вводе пароля он появляется на экране через временную задержку разного цвета.

mybiblioteka.su - 2015-2024 год. (0.016 сек.)