Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2012, 20:44   #1
Zeal0t
 
Регистрация: 30.11.2012
Сообщений: 3
По умолчанию ввод/вывод Assembler

есть такой код
Код:
.model small
.stack 100h
message1 db 'vvedite simvol'	    ,13,10,'$'
message2 db 'cifra'    	   	    ,13,10,'$'
message3 db 'bolshaya latinskaya'   ,13,10,'$'
message4 db 'malenkaya latinskaya'  ,13,10,'$'
massage5 db 'bolshaya russkaya'     ,13,10,'$'
massage6 db 'malenkaya russkaya'    ,13,10,'$'
massage7 db 'error'	 	     ,13,10,'$'


.code
begin:
mov ax,@data
mov ds,ax
	
mov dx,offset message1
mov ah,9
int 21h
	
moc ah,01h
int 21h	
	
cmp al,30h
jl warning
cmp al,39h
jl cufa
cmp al,41h
jl warning
cmp al,5bh
jl bug_lat

cmp al,61h
jl warning
cmp al,76h
jl smal_lat
cmp al,80h
jl warning
cmp al,0a0h
jl bir_rus

cmp al,61h
jl warning
cmp al,7bh
jl small_lat

cmp al,80h
jl warning
cmp al,0a0h
jl big_rus

cmp al,0e0h
jl warning
cmp al,0f0h
jl small_rus
cmp al,0ffh
jl warning

	small_rus:
	mov dx,offset message6
	mov ah,9
	int 21h
	jmp begin

	big_rus:
	mov dx,offset message5
	mov ah,9
	int 21h
	jmp begin

	small_lat:
	mov dx,offset message4
	mov ah,9
	int 21h
	jmp begin

	big_lat:
	mov dx,offset message3
	mov ah,9
	int 21h
	jmp begin

	cufra:
	mov dx,offset message2
	mov ah,9
	int 21h
	jmp begin

	warning:
	mov dx,offset message7
	mov ah,9
	int 21h
	jmp begin

		exit:
	mov ah,4ch
	int 21
	end begin
в нем есть строки jl warning, какова их функция ? спасибо
Zeal0t вне форума Ответить с цитированием
Старый 05.12.2012, 21:19   #2
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Код:
mov ah,01h
int 21h	
	
cmp al,30h
jl warning
Если память не изменяет, функция 01h принимает из стандартного потока ввода символ и помещает его код в регистр AL. А после , сравниваем код символа, который считали, с 30h (это цифра 0 в ASCII кодах). Если значение в регистре AL меньше 30h - прыгаем на метку warning
Код:
warning:
	mov dx,offset message7
	mov ah,9
	int 21h
        jmp begin
А дальше выводится сообщение об ошибки и программа начинается сначала.
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод данных не в коде, а в программу с клавиатуры (Assembler) Марик73 Помощь студентам 2 31.05.2012 08:10
Assembler - ввод данных (имени и фамилии) с клавиатуры и вывод на экран МартинИ Помощь студентам 1 25.05.2010 00:40
Сравнение строк, ввод пароля (assembler) You_must_help Помощь студентам 7 19.04.2009 23:53