![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.04.2013
Сообщений: 8
|
![]()
Здравствуйте уважаемые форумчане! Помогите мне пожалуйста решить одну проблемку. У меня в университете есть такой замечательный предмет, как электроника. С этого семестра мы перешли к теме "микропроцессорная техника". Конкретно, микропроцессор - это старый советский аппарат - Электроника 580, 1986 г.в. Может быть, кто-нибудь и знаком с данным чудом техники). Но это всё лирика.
Программирование производится на ассемблере, данный язык видел я впервые, и он на меня произвёл какое-то устрашающее впечатление, если честно))) В саму электронику команды загоняются вообще в виде машинных кодов... Помогите мне пожалуйста решить задачку: Найти среднее значение 32х двухбайтных чисел, записанных в ячейки с 8300 до 833F. Среднее значение записать в ячейке 8400, 8401 Единственное, что я могу сделать здесь - это сложить несколько чисел в данном устройстве, но судя по всему, для решения данной задачи нужно использовать цикл... Плюсом, естественно, деление... Для электроники есть эмулятор - e580v0953b.rar |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
для начала уточните задание: среднее от числа в 256 разрядов (32-хбайтное) есть число 256 разрядное и никак не вместится в 16 разрядов.
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...не 32-х байтное, а 32 двухбайтных.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
упс) точно...
ну тогда все относительно просто: 1. цикл на 32 повторения 2. накапливаем в слово1 (16 разрядов) младшие байты 3. накапливаем в слово2 старшие байты 4. на п.1. пока цикл не закончится 5. прибавляем младший байт слова2 к старшему байту слова1 6. коррекция переноса для старшего байта слова2 7. сдвиг на 5 разрядов вправо слова1 8. сдвиг на 3 разряда влево старшего байта слова2 9 логическое или старших байтов слова1 и слова2 10. сохраняем слово1
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 18.04.2013 в 14:07. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 17.04.2013
Сообщений: 8
|
![]()
Вот спасибо! Конструктивный ответ, а то на одном форуме спросил, ударились в оффтоп и начали мне доказывать, что я зря сунулся на специальность)) ктож знал, что у меня такой предмет будет) Попробую порешать, и ещё вопрос - что значит коррекция переноса?
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 17.04.2013
Сообщений: 8
|
![]()
Сегодня разбирали сортировку, и, в процессе решения сортировки сделали программу переноса чисел массива из ячеек 8300-8308 в ячейки 8400-8408 (цикл, со счётчиком), в данном цикле мне не понятны некоторые операции, может быть кто-нибудь пояснит, как оно работает, а переделаю цикл под решение своей задачки. Принцип то вроде один, мне нужно заменить на сложение...
Код #ЯЧ-----МНЕМ-КОД---МАШ-КОД---КОММЕНТ 8200----MVI-B------------06---------------Счётчик-за 8201----------------------08---------------8-раз ------------------------------------------------------------------ 8202----LXI-H-------------21---------------Загр.-регистр 8203----------------------00---------------пары 8204----------------------83--------------- ------------------------------------------------------------------ 8205----LXI-D------------11---------------- 8206---------------------00--------------- 8207---------------------84--------------- ------------------------------------------------------------------ 8208----MOV-(A,-M)------7E---------------Перемещ-из-пам.-в-аккум ------------------------------------------------------------------ 8209----XCHG-------------EB-------------Содерж-регистр-пары-HL-и-DE-обменивается-- ------------------------------------------------------------------ 820A----MOV-(M,-A)------77---------------Перемещ-из-аккум-в-память ------------------------------------------------------------------ 820B----XCHG-------------EB--------------- ------------------------------------------------------------------ 820C----INX-H------------23---------------Добавл.-1-в-рег.-пару ------------------------------------------------------------------ 820D----INX-D------------13--------------- ------------------------------------------------------------------ 820E----DCR-B------------05--------------Вычитает-1- ------------------------------------------------------------------ 820F----JNZ---------------C2--------------Проверка-на-0- ------------------------------------------------------------------ 8210----------------------08------------------ 8211----------------------82--------------- ------------------------------------------------------------------ 8212----RST-32-----------E7---------------Выход-- ------------------------------------------------------------------ Ячейки - это ячейка памяти, с данными или командой, мне не очень ясна команда XCHG, зачем добавляют и вычитают 1, проверка на 0 Последний раз редактировалось Nik953; 18.04.2013 в 21:29. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]() Цитата:
например, 2 8 + 3 7 ____ 1 5 - вот тут возникает перенос в старший разряд + 5 ____ 6 5 аналогично и с байтами - если сумма чисел не вмещается в байт, то производится перенос в старший разряд
Правильно поставленная задача - три четверти решения.
|
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 17.04.2013
Сообщений: 8
|
![]()
ясно) никогда не задумывался, как называется эта операция))
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
массив, нахождение среднего арифметического | андрей.... | Помощь студентам | 4 | 21.12.2012 22:32 |
нахождение среднего арифметического двух длинных чисел | Nortos | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 31.12.2010 18:55 |
вычитывание чисел из файла, и нахождение их среднего арифметического | Sh@de | Помощь студентам | 1 | 18.08.2010 08:40 |
Нахождение среднего арифметического с помощью Паскаля | Regina | Помощь студентам | 3 | 15.11.2009 11:32 |
Нахождение среднего арифметического | AliVe | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 12.04.2007 00:25 |