Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь. i8080 (K580BM80), Отсортировать массив на чет. нечет. и на 
:(
    Опции темы
Lefan
  Дата 12.1.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.1.2006

Репутация: нет
Всего: нет



В массиве из 15-ти двухбайтовых чисел со знаком расположить: четные элементы в порядке убывания модулей, нечетные элементы в порядке убывания. Найти средне-арифметическое модулей всех чисел


Данные вродевы расположил...
Расположение исходных данных, результатов и рабочих данных в ОЗУ

0B8E – 0BAB – исходный массив чисел
0B00 – используется при проверке четности
0B01 – 0B04 – используется для размещения рабочих адресов четных (01-02) и нечетных (03-04) чисел
0B05 – 0B08 - используется для записи рабочего адреса пол.четных (05-06) и пол.нечетных (07-08) чисел
0B09 – 0B0С используется для записи рабочего адреса отр.четных (09-0A) и отр.нечетных (0B-0C)чисел
0B0D – используется как счетчик пол. четных чисел
0B0E – используется как счетчик отр. четных чисел
0B0F – используется как счетчик пол. нечетных чисел
0B10 – используется как счетчик отр. нечетных чисел
0B11 – используется для хранения рабочего адреса при прогоне пол. четных чисел
0B12 – используется для хранения рабочего адреса при прогоне отр. четных чисел
0B13 – используется для хранения рабочего адреса при прогоне пол. нечетных чисел
0B14– используется для хранения рабочего адреса при прогоне отр. нечетных чисел
0B15– используется для хранения рабочего адреса при прогоне четных чисел
0B16 – используется для хранения рабочего адреса при прогоне нечетных чисел
0B17 – используется как счетчик четных чисел
0B18 – используется как счетчик нечетных чисел
0A10 – 0A2D массив результата четных чисел
0A30 – 0A4D массив результата нечетных чисел
0A50 – 0A6D массив результата отрицательных четных чисел
0A70 – 0A8D массив результата отрицательных нечетных чисел
0B30 – 0B4D массив четных чисел
0B50 – 0B6D массив нечетных чисел

И начало прог-мы сделал. Ввод адресов...

start: lxi b, 0bff ; Загрузка начального адреса для очистки или загр
start1: inr c ; Увеличение адреса

ldax b
xra a ; Очистка памяти
stax b

mov a, c ; Проверка окончания очистки
cpi 8d

jnz start1 ; Если адрес не 008D- продолжить с srart1

xra a

sta 0bae ; Обнуление дополнительных адресов
sta 0baf
sta 0b07
sta 0b08

mvi a, 0b ; Загрузка старшего байта адресов 0B
sta 0b01
sta 0b03

mvi a, 95 ; Загрузка 95 в указатель адреса четных чисел
sta 0b02

mvi a, B5 ; Загрузка B5 в указатель адреса нечетных чисел
sta 0b04

mvi a, 15 ; Загрузка 15 в указатель адреса положительных
sta 0b05 ; четных чисел

mvi a, 35 ; Загрузка 35 в указатель адреса положительных
sta 0b06 ; нечетных чисел

mvi a, 55 ; Загрузка 55 в указатель адреса отрицательных
sta 0b07 ; четных чисел

mvi a, 75 ; Загрузка 75 в указатель адреса отрицательных
sta 0b08 ; нечетных чисел

lxi h, 0b8e ; Загрузка адреса 0B8E в пару регистров HL
; адрес рабочего числа

start4et: mov b,m ; Загрузка рабочего числа в пару BC
inr l
mov c,m
inr l

mov a,l ; Проверка на окончание чисел для проверки и переход
cpi ae ; на модуль сортировки в этом случае

А вот на четность никак получается.


Помогите плиз кто умеетsmile
PM MAIL   Вверх
DrLazy
Дата 13.1.2006, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.7.2005

Репутация: нет
Всего: нет



А что на четность, сравнение кокое?
ТОгда
ora a для младшего байта числа и jpe jpo ( по моему такие мнемоники, ооооочень давно юзал )
ну или проверка состояния младшего бита - равен 1 значит нечетное. типа ani 1 jnz nechetnoe.

А вообще, где так писать учат, про директивы типа db ничего неговорили, и про метки?
Всетаки ассемблер, а не напрямую коды smile
PM   Вверх
Void
Дата 13.1.2006, 01:29 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



Цитата(DrLazy @ 13.1.2006, 03:08 Найти цитируемый пост)
ora a для младшего байта числа и jpe jpo ( по моему такие мнемоники, ооооочень давно юзал )
ну или проверка состояния младшего бита - равен 1 значит нечетное. типа ani 1 jnz nechetnoe.

IIRC, это не "или", а совершенно разные вещи. Parity flag ставится в зависимости от того, четное или нечетное число единичных бит в операнде.

Цитата(DrLazy @ 13.1.2006, 03:08 Найти цитируемый пост)
А вообще, где так писать учат, про директивы типа db ничего неговорили, и про метки?

А хотя бы у нас в универе... Меня даже сомнения взяли, не оттуда ли Lefan, как раз время курсовые сдавать подходит smile


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
DrLazy
Дата 13.1.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.7.2005

Репутация: нет
Всего: нет



Void
Согласен, про jpe jpo соврамши smile
пьяный был smile

Цитата

А хотя бы у нас в универе...

А что, правда, никаких ORG, DW, DB, DS и иже с ними?
Никаких циклов типа

dcr c
jnz something

?
PM   Вверх
Void
Дата 13.1.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



DrLazy
Ничего, кроме меток.
Впрочем, ассемблер КР580 у нас так, побочный продукт одного предмета. И хотя по нему есть целая курсовая, работающего транслятора под него никто не видел. Ну разве что я его вместе с эмулятором напишу, который выпросил заместо обычной курсовой smile


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
SergeCpp
Дата 16.1.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 1
Всего: 124



Где-то в сети есть эмуляторы Радио-86РК... (не помню адрес)
Там есть и ассемблеры (2 килобайта) и отладчик (4 килобайта)...
Можно подстроить под другой комп
(там все вызовы системные в начале сгруппированы)

Можно и на PC использовать с эмулятором

Были у меня исходники, но, к сожалению, время... Их нет уж боле...

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.