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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2016, 22:45   #1
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию Ассемблер ( отсортировать массив методом вставки, количество элементов 15 элементы массива должны вводиться с клавиатуры...)

Здраствуйте!! Простите за беспокойство но в универе дали задание по ассемблере, а я занимаюсь веб разработкой (в ассемблере полный 0). Помогите, кому не трудно. В задании нужно отсортировать массив методом вставки, количество элементов 15 элементы массива должны вводиться с клавиатуры на экран вывести количество нечетных элементов
Crosb вне форума Ответить с цитированием
Старый 02.06.2016, 22:58   #2
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию есть код но я в нем ниче не понимаю...

Код:
;== FASM code =======================
org 100h
jmp start

mes0   db   13,10,'ARRAY.....:  $'
mes1   db   13,10,'SORTED....:  $'
mes2   db   13,10,'MIN.UNEVEN:  $'
buff   db   16 dup(0)
fName  db   'array.txt',0

start:
;------ Заполняем буфер данными -------------------------------------
       mov   dx,mes0             ;
       call  message             ;
       mov   cx,16               ; всего элементов
       mov   di,buff             ;
       mov   ah,1                ;
@1:    int   21h                 ;
       stosb                     ; запись в ES:DI
       loop  @1                  ;

;------ Cортировка прямым выбором -----------------------------------
       mov   dx,mes1             ;
       call  message             ;
       mov   di,buff             ; DI = указатель на массив
       mov   cx,16               ; CX = его длина
a0:    mov   bx,buff+16          ; BX = макс.индекс в проходе
       mov   al,byte[di]         ; AL = значение первого элемента
a1:    dec   bx                  ; уменьшаем индекс..
       cmp   al,byte[bx]         ; сравниваем первый с последним
       jbe   a2                  ; пропускаем, если первый меньше последнего
       xchg  al,byte[bx]         ; иначе: меняем их местами
a2:    cmp   bx,di               ;
       jnz   a1                  ; проход закончился?
       stosb                     ; перезапись элемента
       loop  a0                  ; мотаем СХ-раз..

;------ Выводим отсортированный массив на экран ---------------------
       mov   cx,16               ; всего
       mov   si,buff             ; адрес
print: lodsb                     ; читаем из SI
       int   29h                 ; выводим на консоль
       loop  print               ; на повтор..

;------ Выводим на экран наименьший/нечётный элемент ----------------
       mov   dx,mes2             ;
       call  message             ;
       mov   cx,16               ;
       mov   si,buff             ;
@5:    lodsb                     ; читаем байт
       test  al,1                ; у нечётных мл.бит = 1
       jnz   stop                ; закончить, если не нуль
       loop  @5                  ; сл.элемент..
stop:  int   29h                 ; выводим найденый эл.на экран

;------ Запись массива в файл ---------------------------------------
       mov   ah,3Ch              ; создать файл!
       mov   cx,20h              ; атрибут
       mov   dx,fName            ;
       int   21h                 ;
       xchg  bx,ax               ; отправляем дескриптор в BX
       mov   ah,40h              ; запись в файл!
       mov   cx,16               ; кол-во байт для записи
       mov   dx,buff             ; буфер с данными
       int   21h                 ;
       mov   ah,3Eh              ; закрыть файл!
       int   21h                 ;

exit:  xor   ax,ax               ; выход..
       int   16h                 ;
       int   20h                 ;

;ннннннннннннннннн П Р О Ц Е Д У Р Ы нннннннннннннннннннннннннннннннннннн
;------------------------------------------------------------------------
message:                      ;
      mov   ah,9              ; вывод строки на экран
      int   21h               ;
ret
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 03.06.2016 в 11:20.
Crosb вне форума Ответить с цитированием
Старый 02.06.2016, 23:00   #3
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

а и еще массив должен записываться в файл
Crosb вне форума Ответить с цитированием
Старый 03.06.2016, 07:39   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Crosb, ты чё прикалываешся? Под твоей-же темой висит пост..
Сортировка массива пузырьковым методом
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 03.06.2016, 11:12   #5
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

нет ето не моя тема
Crosb вне форума Ответить с цитированием
Старый 03.06.2016, 11:21   #6
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

помогите плиз, а то я совсем не розбыраюсь что к чему
Crosb вне форума Ответить с цитированием
Старый 03.06.2016, 11:21   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Crosb Посмотреть сообщение
нет ето не моя тема
тема не ваша, но задания с одной странички задачника.
98% кода/идей можете взять оттуда.

Цитата:
Сообщение от Crosb Посмотреть сообщение
помогите плиз, а то я совсем не розбыраюсь что к чему
т.е. - "сделайте всё за меня" ?!
Может быть, стоит рассмотреть платную помощь в разделе Фриланс?
Или договоритесь с R71MT, думаю, что от вознаграждения он не откажется и напишет Вам вашу программу!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.06.2016, 11:27   #8
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

если R71MT захочет то я не против
Crosb вне форума Ответить с цитированием
Старый 03.06.2016, 11:39   #9
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Crosb, пиши на мыло: rumit-71@mail.ru
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 03.06.2016, 12:05   #10
Crosb
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

хорошо
Crosb вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать любой типизированный файл, ввести в него элементы массива количества 50 элементов, отсортировать массив, вывести в файл vany Паскаль, Turbo Pascal, PascalABC.NET 6 01.04.2014 07:19
Отсортировать массив методом вставки vasa415 Общие вопросы C/C++ 2 04.09.2013 19:11
Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму programmerr Общие вопросы C/C++ 7 16.02.2013 16:40
Отсортировать по убыванию элементы массива с нечетными номерами методом выбора 95% Помощь студентам 0 07.01.2013 16:50
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04