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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2011, 17:04   #1
kka495
Новичок
Джуниор
 
Регистрация: 28.04.2011
Сообщений: 2
Печаль FASM 2 строки

помогите пожалуйста с заданием:
Вводим 2 строки, например:
але(1)ша(3)
пет(2)ров(4)

Нужно вывести в таком виде - алепетшаров
Используется FASM
Есть аналогичная задача, мне по сути надо чуть изменить, но я не знаю что.
Код:
format mz
entry main: start
segment main use16
start:
        mov dx,cs
        mov ds,dx
        mov es,dx
 
        call read
        call change
        call write
 
        mov ah,3fh
        mov bx,0
        mov cx,1
        mov dx,_str
        int 21h
        mov ax,4c00h
        int 21h
 
read:
        mov ah,3fh
        mov bx,0
        mov cx,40
        mov dx,_str
        int 21h
        
        mov ah,3fh
        mov bx,0
        mov cx,40
        mov dx,_str2
        int 21h
        ret
 
change:
        mov dx,_str
        mov si,dx
        mov di,_str3
        cld
 
_1:     lodsb
        cmp al,13
        jne _1
        sub si,4
        lodsb
        stosb
 
_2:     lodsb
        cmp al,13
        jne _2
        sub si,3
        lodsb
        stosb
 
_3:     lodsb
        cmp al,13
        jne _3
        sub si,2
        lodsb
        stosb
 
        mov dx,_str2
        mov si,dx
        mov cx,4
        rep movsb
 
        mov dx,_str
        mov si,dx
        mov cx,4
        rep movsb
 
        mov dx,_str2
        mov si,dx
        cld
 
_4:     lodsb
        cmp al,13
        jne _4
        sub si,3
        lodsb
        stosb
 
_5:     lodsb
        cmp al,13
        jne _5
        sub si,2
        lodsb
        stosb
 
        mov byte [di],'$'
        ret
 
write:  
        mov ah,09h   ;
        mov dx,_str3
        int 21h
        ret
_str db 40 dup('$')  
_str2 db 40 dup('$') 
_str3 db 1
kka495 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учебник по FASM Roof Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 33 09.12.2013 23:16
FASM (assembler). Удалить пробелы в начале и в конце строки Zart Помощь студентам 4 23.04.2011 21:18
FASM. Удалить часть строки Zart Помощь студентам 0 12.04.2011 17:14
Сравнить строки. FASM. Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 15.09.2009 17:27
Вопросы по FASM Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.06.2009 12:02