![]() |
|
![]() ![]() ![]() |
|
Lefan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 ; на модуль сортировки в этом случае А вот на четность никак получается. Помогите плиз кто умеет ![]() |
|||
|
||||
DrLazy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 8.7.2005 Репутация: нет Всего: нет |
А что на четность, сравнение кокое?
ТОгда ora a для младшего байта числа и jpe jpo ( по моему такие мнемоники, ооооочень давно юзал ) ну или проверка состояния младшего бита - равен 1 значит нечетное. типа ani 1 jnz nechetnoe. А вообще, где так писать учат, про директивы типа db ничего неговорили, и про метки? Всетаки ассемблер, а не напрямую коды ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
IIRC, это не "или", а совершенно разные вещи. Parity flag ставится в зависимости от того, четное или нечетное число единичных бит в операнде.
А хотя бы у нас в универе... Меня даже сомнения взяли, не оттуда ли Lefan, как раз время курсовые сдавать подходит ![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
DrLazy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 8.7.2005 Репутация: нет Всего: нет |
Void
Согласен, про jpe jpo соврамши ![]() пьяный был ![]()
А что, правда, никаких ORG, DW, DB, DS и иже с ними? Никаких циклов типа dcr c jnz something ? |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
DrLazy
Ничего, кроме меток. Впрочем, ассемблер КР580 у нас так, побочный продукт одного предмета. И хотя по нему есть целая курсовая, работающего транслятора под него никто не видел. Ну разве что я его вместе с эмулятором напишу, который выпросил заместо обычной курсовой ![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 1 Всего: 124 |
Где-то в сети есть эмуляторы Радио-86РК... (не помню адрес)
Там есть и ассемблеры (2 килобайта) и отладчик (4 килобайта)... Можно подстроить под другой комп (там все вызовы системные в начале сгруппированы) Можно и на PC использовать с эмулятором Были у меня исходники, но, к сожалению, время... Их нет уж боле... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |