Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
Заблокирован
1
TASM

Сортировка символов в строке по алфавиту

10.11.2011, 15:41. Показов 6160. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
не могу найти ошибку.теоретически всё правильно работает.но вот на деле походу зацикливается=(
основная программа
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
masm
model small
.data
         string db 0ah,73 dup ('$')
         kol db 0
.code
 
prog:
include lab5.txt    
    mov ax, @data
    mov ds, ax
    mov es,ax
          
    vvodstr
    
    mov ah, 10h
    int 16h
          
          sortirovka
         
    mov ah, 10h
    int 16h
    
    vivodstr string
    
    mov ah, 10h
    int 16h
    
    mov ax, 4c00h
    int 21h
end prog
файл lab5.txt
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
vivodstr macro z
    mov dx, offset z
    mov ah, 09h
    int 21h
endm
 
vvodstr macro
local n1,ex
    xor dx,dx
    mov cl,70
    lea bx,string+1
n1:
    mov ah,10h
    int 16h
    cmp al,10
    je ex
    cmp al,13
    je ex
    cmp al,61h
    jl n1
    cmp al,7ah
    jg n1        
    push dx
    mov dl,al
    mov ah,02h
    int 21h
    pop dx
    mov [bx],al
    inc bx
    inc dl                
    cmp dl,cl
    je ex
    loop n1
ex:                   
        mov kol,dl
    mov dl, 10          ;перевод курсора на новую строку
    mov ah, 02h
    int 21h
        mov dl, 13    
    mov ah, 02h
    int 21h
endm
 
sortirovka macro
local m0,m1,m2,m3,m4
    xor dx,dx
    xor bx,bx
    xor ax,ax
    xor cx,cx
m0: cmp cl,kol
    je m4
    inc cl
    lea di,string+1
m1: mov dx,[di]
    cmp dx,[di+1]
    jge m2
    jl m3
m2: mov dx,[di+1]
    mov ax,[di]
    mov [di+1],ax
    mov [di],dx 
m3: inc si
    cmp dx,24h
    jne m1
    je m0
m4:
endm
Добавлено через 3 часа 21 минуту
никто не может мне помочь??=(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2011, 15:41
Ответы с готовыми решениями:

Сортировка символов в строке по алфавиту
Добрейшего времени суток всем. Задача следующая: "Вывести буквы, имеющиеся в тексте, в алфавитном...

Сортировка символов в каждой строке по алфавиту
Программа не работает Код: #include <iostream> #include <fstream> using namespace std; int...

Сортировка массива символов по алфавиту
Отсортировать элементы массива символов по алфавиту.

Сортировка символов строки по алфавиту
Здравствуйте Форумчане! Вопрос детский, но никак не могу его решить. Есть 3 чекбокса, событие...

9
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
10.11.2011, 16:46 2
Alenka=), в основном напутано в макросе sortirovka, да и в основном файле много лишнего, вот, немного исправил, должно работать.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
masm
 
model small
.stack 100h
.data
         string db 73 dup ('$')
         kol db 0
.code
 
prog:
include lab5.txt        
        mov ax, @data
        mov ds, ax
        mov es,ax
          
        vvodstr
          
        sortirovka
       
        vivodstr string
        
        mov ah, 10h
        int 16h
        
        mov ax, 4c00h
        int 21h
end prog
lab5.txt:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
vvodstr macro
local n1,ex
        xor dx,dx
        mov cl,70
        lea bx,string
n1:
        mov ah,10h
        int 16h
        cmp al,10
        je ex
        cmp al,13
        je ex
        cmp al,61h
        jl n1
        cmp al,7ah
        jg n1        
        push dx
        mov dl,al
        mov ah,02h
        int 21h
        pop dx
        mov [bx],al
        inc bx
        inc dl                
        cmp dl,cl
        je ex
        loop n1
ex:                   
        mov kol,dl
        mov dl, 10              ;перевод курсора на новую строку
        mov ah, 02h
        int 21h
        mov dl, 13    
        mov ah, 02h
        int 21h
endm
 
sortirovka macro
local nxt,cntn,rpt
rpt:    lea di,string
    xor bx,bx
    mov cl,kol
    dec cl
cntn:   mov dl,byte ptr[di]
    cmp dl,byte ptr[di+1]
    jbe nxt
    xchg dl,byte ptr[di+1]
    mov byte ptr[di],dl
    inc bx
nxt:    inc di
    loop cntn
    or bx,0
    jnz rpt
endm
1
Заблокирован
10.11.2011, 17:07  [ТС] 3
спасибо вам большое!вы мне очень помогли!
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
29.10.2013, 16:47 4
Ant1971on, а с сортировкой строк поможете?
Программа должна отсортировать массив строк длинной по 6 символов первые два из которых числа, так вот сортировка должна происходить по числам по возростанию, код есть но работает плохо (не сортирует)

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
.686
.model flat,stdcall        
option casemap:none
include    \masm32\include\windows.inc
include    \masm32\include\kernel32.inc
include    \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
 
.data
mas1 db "72abcd ","23efgh ","14ijkl ","40mnop ","34qrst ","27uvwx "
mas2 dd 42 dup(1)
n dd 5
_c dd 0
min db 0
.code
_start:
xor eax,eax
xor ebx,ebx
xor edx,edx
lea esi,mas1
lea edi,mas2
mov min,bl
xor edx,edx
 
mov ecx,7
cld
rep movsb
mov ecx,n
    
_cycle1:
    mov _c,ecx
    mov al,[esi]
    mov bl,[edi]
    mov ecx,7
    _cycle2:
        .IF (bl > al)
            mov ecx,7
            cld
            rep movsb
            mov ecx,n
        .ENDIF
        add esi,7
    loop _cycle2
    sub esi,42
    mov ecx,_c
loop _cycle1
 
invoke MessageBox, 0, addr mas1, 0, 0
invoke MessageBox, 0, addr mas2, 0, 0
 
ret
end _start
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
29.10.2013, 19:53 5
qwertun, создайте массив адресов строк. проходите по этому массиву, командой lodsw грузите цифры и сравнивайте их. сортируйте адреса в массиве. все
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
29.10.2013, 20:17 6
Мотороллер, а можно пример?
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
29.10.2013, 23:13 7
qwertun, нет

Добавлено через 17 секунд
по крайней мере от меня. мне лень.
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
29.10.2013, 23:16 8
Цитата Сообщение от Мотороллер Посмотреть сообщение
нет
Добавлено через 17 секунд
по крайней мере от меня. мне лень.
я бы может и не просил ... если б не сидел над ней третий день подрят
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
29.10.2013, 23:21 9
я кушать хочу ._.
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
29.10.2013, 23:22 10
Цитата Сообщение от qwertun Посмотреть сообщение
третий день подрят
немного соврал, не подряд, суббота, воскресенье и сегодня
0
29.10.2013, 23:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2013, 23:22
Помогаю со студенческими работами здесь

Строки: сортировка символов по алфавиту
Прошу, не оставьте без внимания! Дана строка текста. Известно, что в ней есть один элемент...

Сортировка слов в строке по алфавиту
Собственно вот задание:Определить класс-строку. В класс включить два конструктора: для опре-деления...

Сортировка слов в строке по алфавиту
Нужно написать программу, которая бы отсортировала слова в введенной строке по алфавиту. Но только...

Сортировка слов в строке по алфавиту
Дана строка из слов через пробел.Надо рассортировать слова по алфавиту и распечатать новую строку....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru