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
мусор в конце строк
вообщем мне требуется из заданной строки вывести с конца сначала нечётные символы, а во вторую строку - чётные
алгопитм простой, а вот с выводом проблема =(
в конце строк мусор
Код:
буду очень благодарен за помощь
буду очень благодарен за помощь
Вставь за последним символом $.
Попробуй такой формат строки, в конце строки должно быть "$"
str db 'Hello','$' - Hello- сожержание строки, $- считывание строки происходит по этот символ.
-----
endl db 0Dh, 0Ah, '$' -- Эта строка без ошибки
В этих: str2 db 80 dup ('$') -- По крайней мере добавь в конце '$' вот так: str2 db 80 dup ('$'),'$' - так получилась строка из 80-ти символов($), как по мне то твое "dup ('$')" блокирует конец строки, попробуй для убедительности вот так: str2 db 80 dup ('A'),'$' - программа выведет 80 букв "А"
сделай посимвольный вывод . лучше будет . )