Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите, отказывается писать по адресу 
:(
    Опции темы
Гость_Владимир
Дата 12.6.2005, 14:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите пожалуйста:
Сначала выделяю память:
Код

mov    ah, 48h
    mov    bx, Par
    int    21h
    cmp    ax,8
    je    mem1
    mov    Text_ad,ax
    mov    ah,48h
    mov    bx, Par
    int    21h
    cmp    ax,8
    je    mem1
    mov    Text_num,ax
    jmp    mem2
mem1:
    mov    ah,09h
    mov    dx, offset mem_err
    int    21h
    jmp    fin2
mem2:

...........
(При выделении памяти не возникает ошибка)
потом когда заполняю область памяти в цикле следующим кодом (привожу весь цикл, потому что уже совсем не понимаю где ошибка):
Код


cikle:
    call    Glasn
    cmp    Ind, 01h
    jne    c1
    mov    bl, 01h
    mov    es:[si],bl
    jmp    c4
c1:
    call    Nsym
    cmp    Ind, 01h
    jne    c2
    mov    bl, 03h
    mov    es:[si], bl
    jmp    c4
c2:    
    mov    es, Text_ad
    mov    bl, 20h
    cmp    es:[si], bl
    jne    c3
    mov    es, Text_num
    mov    bl, 00h
    mov    es:[si],bl
    jmp    c4
c3:
    mov    es, Text_num
    call    Soglasn
    cmp    Ind, 01h
    je    c5
    mov    es, Text_ad
    mov    bl,0ah
    cmp    es:[si],bl
    jne    c7
    mov    es, Text_num
    mov    bl,00h
    mov    es:[si],bl
    jmp    c4

c7:
    mov    bl,0dh
    mov    bh, es:[si]
    cmp    bh, bl
    jne    c6
    mov    es, Text_num
    mov    bl, 00h
    mov    bh, es:[si]
    mov    bh, bl
    jmp    c4

c6:                ;выход из программы с сообщением о неправильном формате файла
    mov    ah,49h
    mov    es, Text_ad
    int    21h
    mov    ah,49h
    mov    es, Text_num
    int    21h
    mov    ah,9
    mov    dx, offset err_str
    int    21h
    mov    ax, 4c00h
    int    21h


c5:
    mov    bl, 02h
    mov    es:[si], bl
c4:
    inc    si
    dec    cx
    cmp    cx,0
    je    c8
    jmp    cikle
c8:

;создаем файл для вывода
    mov    ah,3ch
    mov    cx,0
    mov    dx,offset fname2
    int    21h
    jb    fl3
    mov    ax,3d01h
    mov    cx,0
    mov    dx,offset fname2
    int    21h
    jb    fl3
    mov    handle2, ax
    jmp    fl7


fl3:
    mov    ah,09h
    mov    dx, offset fl_err3
    int    21h
    jmp    fin2

fl7:


Процедуры используемые здесь:

Код

Glasn    proc        ;определяем гласная или нет
    cld
    push    cx
    push    di
    push    es
    mov    es, Text_ad
    lea    di, glasn_str
    mov    cx,22    
    mov    al,es:[si]
    push    ds
    pop    es
    repne scasb
    jne    met1
    mov    ind,01h
    jmp    met2
met1:
    mov    ind,00h
    
met2:    
    pop    es
    pop    di
    pop    cx
    ret
endp    

Nsym    proc        ;определяем ъ или ь
    cld
    push    cx
    push    di
    push    es
    mov    es, Text_ad
    lea    di, nsym_str
    mov    cx,4
    mov    al,es:[si]
    push    ds
    pop    es
    repne scasb
    jne    met3
    mov    ind,01h
    jmp    met4
met3:
    mov    ind,00h
    
met4:    
    pop    es
    pop    di
    pop    cx
    ret    
endp    

Soglasn    proc        ;определяем согласная или нет
    cld
    push    cx
    push    di
    push    es
    mov    es, Text_ad
    lea    di, soglasn_str
    mov    cx,40
    mov    al,es:[si]
    push    ds
    pop    es
    repne scasb
    jne    met5
    mov    ind,01h
    jmp    met6
met5:
    mov    ind,00h
    
met6:    
    pop    es
    pop    di
    pop    cx
    ret    
endp



Записываю 01 если гласная, 02 если согласная, 03 если ъ или ь знак, 00 если пробел.
При проходе цикла в 28 раз встречается символ 03 и кусок примерно из 20 байт не записывается , дальше все продолжается, причем когда не пишет ничего не происходит как-будто всё в порядке вещей.

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

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

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


 




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


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

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