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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 20.12.2007, 18:20   #1
Yep
Новичок
Джуниор
 
Регистрация: 20.12.2007
Сообщений: 2
По умолчанию строки

что нужно сделать:
проверить, есить ли все буквы в строке для составления слова бегин. порядок букв не важен.

что уже сделал:
Код:
model tiny

codes SEGMENT para 'CODE'
assume cs:codes, ds:codes, es:codes, ss:codes
org 100h
begin: JMP main ;переход на метку main
     yep db 10,13,'All Ok$' 
     nope db 10,13,'Oh shi--$'
     inp db 6,6,6 dup(?) ;вводится только 5 символов
     str_end = $;
     str_len = str_end - offset inp ; длина вводимой строки
     mov cl, 0 ;обнуляем сумму
	 mov bl, 0 ;обнуляем счетчик итераций
	 
summ: ; накапливается сумма совпадений с cl
     inc cl ;добавляем сумму
	 cmp cl, 5 ; если сумма совпадений равна 5
	 je exit ; то идем на выход
err_: ; в том случае если кончились символы, но совпадений меньше чем надо
	 cmp bl, offset str_len ; сравниваем кол-во итераций с кол-вом символов
	 je oshibka ; если совпадает то идем на err
	 jmp compare ; если нет то берем следующий символ
	 
main:
     cld ;сбрасывает флаг направления в о (df) далее инкремент si и di
     
     mov AH,0Ah ;ввод строки с клавиатуры           
     mov dx, offset inp
     int 21h
     mov SI, offset inp     ;Адрес введенной строки в SI
	 
Compare: ;тут происходит сравнение очередного символа с каждой буквой из слова begin
     inc bl ; добавляем 1, что проходит очередной символ
     lodsb   ;берет очередной символ символ из строки и помеает его в al. si увеличивается
     cmp al, 'b'
     je summ ; если равны
     cmp al, 'e'
     je summ ; если равны
	 cmp al, 'g'
     je summ ; если равны
	 cmp al, 'i'
     je summ ; если равны
	 cmp al, 'n'
     je summ ; если равны
     jmp err_
     
	 oshibka:
;_____проверка_________
mov ah, 02h ; вывод al
mov dl, al
int 21h

mov ah, 02h ; вывод bl
mov dl, bl
int 21h
;______кнец проверки_____

     mov ah,09h
     mov dx,offset nope ; при ошибке
     int 21h
     
     mov ah,4ch
     int 21h
     jmp endw
	 
     exit:
     mov ah,09h
     mov dx,offset yep
     int 21h
     
     mov ah,4ch
     int 21h
     endw:
codes ends


end begin
я вообще правильно делаю?
если правильно то где ошибка?
Yep вне форума
Старый 22.12.2007, 16:22   #2
Yep
Новичок
Джуниор
 
Регистрация: 20.12.2007
Сообщений: 2
По умолчанию

уже все сделал
Yep вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки Настена Помощь студентам 1 07.01.2008 23:47
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45