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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 19:58   #1
klin41
Новичок
Джуниор
 
Регистрация: 01.06.2010
Сообщений: 1
По умолчанию Сортировка слов

В общем задание такое "Отсортировать слова в строке по последней букве"
Что я более менее смог найти это как отсортировать слова по 1-й букве.

Вот что получилось:

Код:
data segment
a db 0
b db 0
msg db ' $'
mes1 db ' $'
mes4 db 10,15,' $',10,15
buf db 80 dup(' ') 
buf1 db 80 dup(' ') 
slovar db 80 dup('abcdefghijklmnopqrstuvwxyz0123456789')                                
actlen dw 0                                                                               
data ends                                          
stk segment stack                                  
dw 128 dup (?)                                     
stk ends                                           

code segment                                       
assume cs:code, ds:data                            
main proc                                          
    	mov ax,data 		   
	mov ds,ax		
mov ah,9h
mov dx,offset msg
int 21h 
                                              
mov ah,3fh                                         
mov bx,0			
mov cx,80                                          
mov dx,offset buf                                  
int 21h                                            
mov actlen,ax                                      
sub actlen,1
mov si,actlen
dec si 
mov buf[si],' '  
add actlen,1
mov si,actlen
dec si 
mov buf[si],' '        
mov si,0      
mov cx,36
                                               
lm:                                                
	mov bl,slovar[si] 			
	inc si                                                      
	mov a,0  
	mov b,0  
	mov di,0           
	jmp sovpad     

next1:   
loop lm    
jmp endin        

sovpad:           
	mov al,buf[di]       
	inc di           
	inc a     
	cmp a,1   
	jne kl          
	cmp al,bl 
	jne ert   
	mov b,1   

ert:                
kl:         
	cmp al,' '
	jne op1   
	mov a,0
	cmp b,1 
	jne m1     
	mov b,0
	mov bp,di
	dec bp
	jmp vivodslov    
m1:                  
op1:      
	cmp al,','
	jne op2   
	mov a,0
	cmp b,1 
	jne m2     
	mov b,0
	mov bp,di
	dec bp
	jmp vivodslov    
m2:                
op2:               
next:          
	cmp di,actlen
	je next1        
	jmp sovpad  

vivodslov:   
	dec bp 
	mov al,buf[bp]    
	cmp bp,-1
	je next3   
	cmp al,' '
	je next3
	cmp al,','
	je next3    
	jmp vivodslov  

next3: 
	inc bp
	mov al,buf[bp]
	cmp al,','
	jne next12
	mov ah,2
	mov al,' '
	mov dl,al
int 21h
je next

next12: 
	mov ah,2
	mov dl,al
	int 21h    
	cmp al,' '
	je next
	jmp next3       
endin:
mov ah,10h
int 16h
mov ah,4ch
int 21h
main endp
code ends
end main
Но это не совсем то + желательно использовать строковые функции типа cld и т.п. Может кто поможет переделать этот код или у кого есть что то похожее в исходниках ?
klin41 вне форума Ответить с цитированием
Старый 02.06.2010, 04:38   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

klin41
читаем задание "Отсортировать слова в строке по последней букве". "слова" это последовательность букв разделенных пробелами или знаками препинания. в вашем примере
slovar db 80 dup('abcdefghijklmnopqrstuvwxyz0123 456789') 80 повторов, состоящие из букв и цифр, слов здесь нет и сортировать нечего
Mikl___ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка слов по алфавиту vital_56 Microsoft Office Word 16 23.12.2009 17:09
Сортировка слов по алфавиту dom1nator Помощь студентам 0 11.11.2009 00:04
Сортировка слов по длине. Артин Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 05.05.2009 12:01
сортировка слов(Пузырек) chipset Общие вопросы C/C++ 2 11.02.2008 08:58
Сортировка слов по алфавиту victorio Microsoft Office Word 7 15.12.2007 19:03