Страница 1 из 7

Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 20:10:42
Lina_Inverse
Здравствуйте, многоуважаемые пользователи данного форума!
Осмелюсь попросить вас о помощи... Поставлена задача: перевести двухбайтное двоично-десятичное число в двоичное на КР580ВМ80. В голове не укладывается, как реализовать это. Слышала о методе сдвига и т.д.
Понимаю, задачка глупая, но она у меня не получается.
Пожалуйста, помогите!
:cry:
С наилучшими пожеланиями, студент из г. Муром..... )

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 20:45:55
YS
О-о-о, КР580ВМ80! Только сегодня днем лабу с ним делал. :)))

В обчем, коли Вы не читали методички, BCD (двоично-десятичные числа) - это (чаще всего) когда в одном байте записано две цифирки (packed BCD). Т.е., 0x54 понимается именно как 54, а не как 0x54 = 84.

Мораль: надо выдвинуть каждую цифру, умножить ее на множитель, соответствующий позиции и сложить с остальными.

Код: Выделить всё

binary = (bcd & 0x000F) + ((bcd & 0x00F0) >> 4) * 10 + ((bcd & 0x0F00) >> 8) * 100 + ((bcd & 0xF000) >> 12) * 1000;


А вообще, они у Вас упакованные, или по одной цифре в байте?

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 20:53:24
Lina_Inverse
упс, ясненько))) у меня тоже сегодня была лабораторная по КР580Вм80... странное совпадение, не правда ли?))
По одной цифре в байте... видимо.
Мысль интересная. Будем думать дальше. Спасибо за идею.

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 21:42:16
YS
странное совпадение, не правда ли?))


Да чо там совпадение, это же судьба! :)))

Мысль интересная. Будем думать дальше.


Так а чего тут думать-то? Тут переписывать надо на тот язык, на котором пишете, вот и все.

Я вот на своих лабах в машинных кодах писал.

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 21:54:52
SmarTrunk
А аппаратного умножения в ВМ80 нет... Что же, надо писать подрограмму... в машинных кодах?

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 21:57:02
pyzhman
В машкодах на 580 даже мне не доводилось писать! Вы там чего? На асме батенька, на асме.

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 22:11:45
Lina_Inverse
дяденьки, ну помогите, ну реализуйте хоть как-нибудь эту задачку с переводом... я волшебное слово знаю - ПОЖАЛУЙСТА)))) :))

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 22:14:25
SmarTrunk
А мне приходилось, в ЮТ-88. 8) Но это было привычно после замечательного очень мощного программируемого калькулятора МК-61. В него тоже программа вводилась в кодах, больше 100 шагов!! И программу в него приходилось вводить заново каждый раз при включении, энергонезависимой памяти не было. :cry: А батарейки (3 АА) жрал страшно своим люминесцентным дисплеем.

Lina
Может, удастся уговорить преподавателя на более современные МК, например AVR?

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 22:22:00
Lina_Inverse
нет, что Вы, это не реально, уговорить его))) мы делаем эти задачи на восьмидесятом, на 48 и 51 процессорах. так что, долго еще мучиться)

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Чт апр 12, 2012 22:25:14
YS
Вы там чего?


А вот так. Стоят стенды с КР580ВМ80, в них зашита программа-монитор. Она умеет записать (с одновременным отображением) HEX-последовательность в память (только последовательно! Ошибся - входи в режим по новой), запустить программу, заполнить память, посчитать КС. Есть кнопка перехода в пошаговый режим. Все.

Отображение на семисегментниках. В пошаговом режиме - только двоичный код на светодиодах (адрес/данные, тупо уровни на шинах).

Сегодня писал бегущий огонек...

Изображение

Кусок методички:

Изображение

***

я волшебное слово знаю - ПОЖАЛУЙСТА))))


Не-е-е-е... Упомянутое слово в значительной мере устарело... :)))

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 06:50:50
BOB51
можно и в машинных кодах при помощи таблицы "ручного транслятора" и листочка бумаги :tea:
а можно сначала еще книжки почитать... к примеру
Токхейм Р.
Основы цифровой электроники: Пер. с англ.-М.: Мир, 1988
:beer:
кстати, MCS51 отнюдь не "вымирающий" и также позволяет делать дамп машинных кодов с помощью "ручного транслятора" 8)

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 07:46:24
TripleKill
BOB51, вот именно так я на лабах и программировал этот 580. Руками и калькулятором переводя асм в машкод) MPLAB для пика после этого просто райским звоном показался))

Lina_Inverse, вот вам информация к размышлению.
Для перевода BCD в двоичный вид в общем потребуется всего два действия: в двоичном коде перемножить цифру десятков на 10 и сложить с цифрой единиц (поправьте, если ошибаюсь). Вот например, я хочу умножить 9(BCD) на 10. 9 в двоичном коде - это 1001, 10 - это 1010.
Умножение в столбик:

00001001
*00001010
----------
00000000
00010010
00000000
01001000
----------
01011010

Умножение на 10 любых полубайтных чисел будет аналогично. Чтобы число умножить на 10, нужно сдвинуть его на разряд влево и сложить с ним же, сдвинутым на 3 разряда влево. По сути это и есть алгоритм. Ну а складывать кр580 умеет, если память мне не изменяет. Пример в командах привести не могу, ибо давно их забыл, а быстро не гуглятся. Если зальёте куда-нибудь список ассемблерных команд камня, попробую сообразить чего-нибудь.

Оффтоп: люди, никто не знает ссылок, где бы можно было почитать про работу с USART STM32 в кейле? Хотел отсюда передрать (http://www.scienceprog.com/connecting-stm32-usart-to-standard-io-streams-in-gcc/), но не компилится. Библиотеку усарта в проект добавлял.

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 08:37:45
Engineer_Keen
YS писал(а):А вот так. Стоят стенды с КР580ВМ80, в них зашита программа-монитор. Она умеет записать (с одновременным отображением) HEX-последовательность в память (только последовательно! Ошибся - входи в режим по новой), запустить программу, заполнить память, посчитать КС. Есть кнопка перехода в пошаговый режим. Все.

Эти стенды случаем не выполнены в виде здоровенного чУмадана? :)))

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 10:08:26
Dmitry Dubrovenko
SmarTrunk писал(а):Может, удастся уговорить преподавателя на более современные МК, например AVR?
Для начала, i8080 - CPU, а AVR - MCU, и i8080 очень хорошо подходит для изучения основ построения микропроцессорных систем.
Так что, это зря такие "наезды".
А вот вам "виртуальный стенд". :wink:

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 10:43:54
SmarTrunk
Dmitry
Да я в курсе, хотя и тут i8086 были бы приятнее. Но раз есть уже стенды...

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 11:42:05
Dmitry Dubrovenko
Ну, коль хотите, вот вам для i8086. :wink:

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 18:51:01
Lina_Inverse
Спасибо всем большое-пребольшое!!! :))
Всё, побежала делать лабораторную по этой теме.

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 19:51:56
YS
Эти стенды случаем не выполнены в виде здоровенного чУмадана?


Именно. С серым таким верхом. :) И еще плата расширения с контроллером портов втыкается. В методичке советуют записывать программу начиная с адреса 0x0800...

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 19:56:40
Engineer_Keen
Классный чумадан, на нем я впервые в жизни написал реальную прогу в маш-кодах, правда методички не было, писал по справочнику от Z80 :))) Жаль доступ к нему был всего пару раз, вне учебной программы :(

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80

Добавлено: Пт апр 13, 2012 20:04:40
YS
Ой не, я, пока писал ту прогу, миллион раз с тоской вспомнил и LaunchPad с FET'ом, и STM8/32(L) Discovery с ST-LINK'ами, и остальные внутрисхемные отладчики... :)))