Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача о сравнении строк 
:(
    Опции темы
Mcdimas
Дата 6.12.2012, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.12.2012

Репутация: нет
Всего: нет



Ну, есть задача:
Сведения о книге состоят из названия, фамилии автора, цены, года издания и кол-ва страниц. Найти кол-во книг, название которых "Assembler", фамилия автора не "Петров" и не "Иванов", а год издания не ранее 1980 года.

Вот написал код, компилируется, но нужную книжку не находит, все время количество (kol) равно 0, что бы ни вводил. Ну я так понимаю, что ошибка в сравнении строк. Что же не так? Подскажите, пожалуйста.

Код

inint n
  mov cx, n
  mov di, 0
l1: 
  outch "N"
  lea dx, books[di].Name1
  push cx
  mov cx, 30
  mov ah, 3fh
  mov bx, 0
  int 21h
  pop cx
  outch "F" 
  lea dx, books[di].Fam
  push cx
  mov cx, 30
  mov ah, 3fh
  mov bx, 0
  int 21h
  pop cx
  outch "C"
  inint ax
  mov books[di].price, al
  
  outch "Y"
  inint ax
  mov books[di].year, al
  outch "P"
  inint ax
  mov books[di].pages, al
  add di, type book
  loop l1
 
  mov cx, n
  mov di,0
 ll:call srav1
    cmp j, 0
    je next
    call srav2
    cmp k, 0
    je next
    call srav3
    cmp l, 0
    je next
    mov books[di].year, al
    cmp ax, 1980
    jl next
    inc kol
next: add di, type book
      loop ll
 outch "R"
 newline
 outint kol
 outint j
 outint k
 outint l
finish
 
 srav1 proc
    push cx
    CLD
    lea SI, AS
    lea DI, books[DI].name1
    mov cx, 30
l2:
    REPE  cmpsb
      jne not1
      loop l2
      mov j, 1
  not1: pop cx
       mov j, 0
       ret
       srav1 endp
 
srav2 proc
    push cx
    CLD
    lea SI, PET
    lea DI, books[DI].fam
    mov cx, 30
l3:
   REPE cmpsb
   jne not2
   loop l3
   mov k, 1
not2:pop cx
   mov k, 0
   ret
srav2 endp
 
srav3 proc
   push cx
   CLD
   lea SI, IV
   lea DI, books[DI].fam
   mov cx, 30
l4:
   REPE cmpsb
   jne not3
   loop l4
   mov l, 1
not3:pop cx
   mov l, 0
   ret
srav3 endp
 
 
 
main endp
code ends
end main


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.