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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 02:05   #1
.asm
Новичок
Джуниор
 
Регистрация: 30.05.2011
Сообщений: 2
Вопрос Комбинаторика в Assembler

Есть программа, в которой вводится строка, переворачивается и выводится (посимвольно). Нужно переделать так, чтобы на экран выводились все возможные комбинации символов.
Сейчас так: qwer -> rewq
Нужно: qwer -> qwre, qrwe, rqwe, qewr, eqwr, wqer

Помогите пожалуйста, заранее благодарен.

Код:
OutStr macro str ;макрос вывода строки
push dx
mov ah,09h
lea dx,str
int 21h
pop dx
endm 
;------------------------------------------------------------
.model small
.code
org 100h
begin:
jmp start
;--------------------- описание переменных
Return db '',10,13,'$'
Hello db 'Vvedite stroku:',10,13,'$'
param label byte ;Список параметров для int 21h
maxlen db 32 ;Максимальная длина вводимой строки - 32 символа
reallen db ? ;Реальная длина
string db 32 dup (' '),'$' ;Введенные символы
stringOut db 32 dup (' '),'$' ;Выводимые символы
;--------------------- начало проги
start:

OutStr Hello ;приглашение к вводу
mov ah,0Ah ;функция DOS считывания строки, param - параметры ввода
lea dx,param
int 21h
OutStr return ;перевод строки

xor cx,cx
xor ax,ax
xor bx,bx ;bx - индекс очередного символа для обработки (равен cx(уменьшается) при считывании и увел. при записи в строку)
mov cl,reallen ;в cx - размер строки для цикла обработки

loopLabel:
 push bx ;сохраняем индекс записи
 mov bx,cx ;и записываем в bx индекс чтения
 mov al,string[bx]
 pop bx
 mov stringOut[bx],al ;запись в выходную строку
 inc bx ;увел. индекс чтения
 dec cx
 cmp cx,0
 jge loopLabel

OutStr stringOut ;вывод результата на экран

mov cx,0ffffh
label1:
	push cx
	mov cx,0ffffh
	label2:
	loop label2
	pop cx
loop label1

exit: ;стандартный выход
mov ax,4C00h
int 21h
END begin
.asm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комбинаторика Dima170792 Помощь студентам 8 20.04.2011 00:01
Комбинаторика music66 Помощь студентам 13 18.04.2011 18:01
Комбинаторика kiborrgg Помощь студентам 6 25.03.2011 15:50
Комбинаторика MadReason Помощь студентам 4 09.12.2010 22:52