Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

мусор в конце строк

52K
06 декабря 2009 года
zmaxon
4 / / 06.12.2009
Добрый день, я новичёк, не ругайте)

вообщем мне требуется из заданной строки вывести с конца сначала нечётные символы, а во вторую строку - чётные
алгопитм простой, а вот с выводом проблема =(
в конце строк мусор

Код:
ideal
model small
dataseg
    str1 db 80, 80 dup ('$')
    str2 db 80 dup ('$')
    str3 db 80 dup ('$')
    endl db 0Dh, 0Ah, '$'
codeseg
start:
    mov ax,@data
    mov ds, ax

    mov ah, 0Ah
    lea dx, [str1]
    int 21h

    lea si, [str1+1]
   
    xor ax,ax
    mov al, [str1+1]
    add si, ax 
   
    lea di, [str2]
    lea bp, [str3] 
       
    xor cx, cx
    mov cl, [str1+1]
   
    ;shr cx, 1 - делит нацело, не подходит, т.к. все символы требуется вывести
   
cycle:
    jcxz ex
    dec cx
    mov ah, [ds:si]
    mov [ds:di], ah
       
    dec si
    mov ah,[ds:si]        
    mov [ds:bp],ah        
       
    dec si;

    inc di
    inc bp
    jmp cycle
       
ex:        
    mov ah,09h
    lea dx,[endl]
    int 21h
       
    mov ah,09h
    lea dx,[str2]
    int 21h
       
    mov ah,09h
    lea dx,[endl]
    int 21h  
       
    mov ah, 09h
    lea dx, [str3]
    int 21h
       
    mov ax,4c00h
    int 21h
    end start


буду очень благодарен за помощь
буду очень благодарен за помощь
247
07 декабря 2009 года
wanja
1.2K / / 03.02.2003
Вставь за последним символом $.
53K
21 декабря 2009 года
WR_L
6 / / 21.12.2009
В первый раз такую строку вижу
Попробуй такой формат строки, в конце строки должно быть "$"

str db 'Hello','$' - Hello- сожержание строки, $- считывание строки происходит по этот символ.
-----
endl db 0Dh, 0Ah, '$' -- Эта строка без ошибки
В этих: str2 db 80 dup ('$') -- По крайней мере добавь в конце '$' вот так: str2 db 80 dup ('$'),'$' - так получилась строка из 80-ти символов($), как по мне то твое "dup ('$')" блокирует конец строки, попробуй для убедительности вот так: str2 db 80 dup ('A'),'$' - программа выведет 80 букв "А"
252
21 декабря 2009 года
koderAlex
1.4K / / 07.09.2005
сделай посимвольный вывод . лучше будет . )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог