Assembler. Обработка Строковых Переменных

Rolana

New Member
29.11.2013
4
0
#1
Ооооочень нужна помощь. У нас Ассемблер изучается ознакомительно, а лабораторные сдавать надо.

Задание: Ввести строку текста. Проверить, является ли этот текст гиперссылкой в формате «http:\\www.abc.ua». Если да, то напечатать сообщение: «Это гиперссылка» в другом случае: «Это не гиперссылка».

Был дан пример работы со строковыми переменными:

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
Код:
.model	small
.stack	100h
.data
string db 80 dup(?)
promt db 0Dh,0Ah,'Enter password: $'
all db 0Dh,0Ah,'That is all$'
ok db 0Dh,0Ah,'Working!!! $'
password db 'pass$'
pass_len dw 3
.code 
start:
mov	ax,@data
mov	ds,ax	;В АХ-адреса початку сегмента даних
@beg1:
mov 	ah,09h ;Вивiд запиту на введення пароля
mov 	dx,offset promt;Адреса запиту
inc 	dx
int 	21h
;Введемо пароль
mov 	bx,0 	 ;iнiцiалiзацiя iндексацiї введення
lea	si, string
@pass:
mov 	ah,08h ;Функцiя введення символу в AL без ехо
int 	21h
cmp 	al,13 	;<Enter> ?
je 	@compare;Так, на порiвняння
mov 	[si],al
mov	ah,02
mov 	dl,'*' 	;Запишемо на екран *
int 	21h
inc 	si
jmp 	@pass ;Повторювати
;Порiвняння введеного пароля з дiйсним (порiвняння рядкiв)
@compare:
push 	ds 	;Встановити ES на сегмент даних
pop 	es
lea 	si,string ;DS:SI- початок string
inc 	si
lea 	di,password ;ES:DI- початок password
inc 	di
cld 		;DF=0- перегляд вперед
mov 	cx,pass_len ;Встановити лiчильник порiвняння
repe 	cmpsb ;Порiвнювати, поки CX<>0 i ZF=1 (тобто повторювати
;поки символи двох рядкiв спiвпадають, але не бiльш CX раз)
jne 	@err 	;Рядки не рiвнi
;Виведення повiдомлення ОК, пiдтверджуючого правильнiсть пароля
mov 	ah,09h
mov 	dx,offset OK
inc 	dx
int 	21h
jmp 	@end1
@err:
jmp 	@beg1 ;Повторити введення пароля
@end1:
mov 	ah,09h
mov 	dx,offset All
inc 	dx
int 	21h
jmp 	@beg1
MOV 	AH,4ch ;DOS-функцiя завершення роботи програми
INT 	21h 	;Виклик переривання DOS
start end
end
Я что-то там пыталась переделывать. Например, чтобы подсчитывало длину строки... на этом и заглохло всё((