Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
qwertun
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 490
1

Переместить строки по возрастанию числе в начале строк (MASM)

31.10.2013, 12:45. Просмотров 425. Ответов 4
Метки нет (Все метки)

Здравствуйте, уважаемые форумчаме!

Имеется задача: Дано 8 строк по 6 символов, в начале каждой строки есть две цифры, нужно переставить (отсортировать) строки по возрастанию номеров. Начальную строку и результат вывести в MessageBox

З.Ы. Тема относится к категории "сделайте, я не умею" )

З.Ы.Ы. Начало положено, но работает не правильно, программа в результате выводит 1-ую строку начального массива, можете полностью переделать или написать заново, если Вы считаете нужным

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 " ; использую 6 строк для облегчения жизни, ;добавлен 7-ой символ - пробел, чтоб вывод был по-красивее
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,_c
        .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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 12:45
Ответы с готовыми решениями:

Ввод строк с клавиатуры MASM
Здравствуйте , подскажите пожалуйста , как считать несколько строк (заданное...

[Masm] Записать отрицательные элементы массива в его начале, а положительные в конце
Добрый день! Мне нужно записать отрицательные элементы массива в его начале, а...

[MASM] Ввод строки цифр и преобразование её в число
Необходимо, запросить строку символов, положить в di соответствующее число. ...

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию произведения чётных элементов строк
Дана матрица X. Упорядочить элементы строк матрицы по возрастанию, а сами...

Поставить в начале каждой строки (в том числе и пустой) ее порядковый номер
по условию задачи В файле input.txt записан некоторый текст, общая длина...

4
Mikl___
Автор FAQ
11987 / 6254 / 596
Регистрация: 11.11.2010
Сообщений: 11,316
31.10.2013, 15:09 2
qwertun,
посмотри здесь
0
qwertun
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 490
31.10.2013, 16:02  [ТС] 3
Цитата Сообщение от Mikl___ Посмотреть сообщение
посмотри здесь
код точно рабочий?
у меня список ошибок присутствует
C:\masm32\bin\_____dskjbsdjkg.asm(7) : error A2022: instruction operands must be the same size
C:\masm32\bin\_____dskjbsdjkg.asm(11) : error A2022: instruction operands must be the same size
C:\masm32\bin\_____dskjbsdjkg.asm(16) : error A2022: instruction operands must be the same size
C:\masm32\bin\_____dskjbsdjkg.asm(27) : error A2022: instruction operands must be the same size
C:\masm32\bin\_____dskjbsdjkg.asm(45) : error A2022: instruction operands must be the same size
C:\masm32\bin\_____dskjbsdjkg.asm(61) : warning A4023: with /coff switch, leading underscore required for start address : BEGIN

Особенно интересует последний варнинг. Он вобще о чём?
0
Mikl___
Автор FAQ
11987 / 6254 / 596
Регистрация: 11.11.2010
Сообщений: 11,316
31.10.2013, 17:06 4
qwertun,
если не заметил, мои программы начинаются строкой
Assembler
1
; masm dos com #
что это означает догадаться не сложно, а вот ты пытаешься собрать Windows /coff программу и еще пытаешься меня упрекнуть
0
qwertun
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 490
31.10.2013, 20:20  [ТС] 5
Mikl___, можете просто доделать программу с использование строковых команд? Если сделаете я Вам буду безгранично благодарен!
0
31.10.2013, 20:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 20:20

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию суммы элементов
Дана матрица Х. Упорядочить элементы строк матрицы по возрастанию, а сами...

Массив: Упорядочить элементы строк матрицы по возрастанию, а сами строки по неубыванию произведения четных элементов строк
Дана матрица. Упорядочить элементы строк матрицы по возрастанию, а сами строки...

При открытии файла каретка расположена в самом начале 1 строки, а не в начале 3
Доброго времени суток! Интересует вопрос, почему при открытии файла каретка...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru