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

Но это было привычно после замечательного очень мощного программируемого калькулятора МК-61. В него тоже программа вводилась в кодах, больше 100 шагов!! И программу в него приходилось вводить заново каждый раз при включении, энергонезависимой памяти не было.

А батарейки (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
можно и в машинных кодах при помощи таблицы "ручного транслятора" и листочка бумаги
а можно сначала еще книжки почитать... к примеру
Токхейм Р.
Основы цифровой электроники: Пер. с англ.-М.: Мир, 1988

кстати, MCS51 отнюдь не "вымирающий" и также позволяет делать дамп машинных кодов с помощью "ручного транслятора"

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 очень хорошо подходит для изучения основ построения микропроцессорных систем.
Так что, это зря такие "наезды".
А вот вам "виртуальный стенд".

Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80
Добавлено: Пт апр 13, 2012 10:43:54
SmarTrunk
Dmitry
Да я в курсе, хотя и тут i8086 были бы приятнее. Но раз есть уже стенды...
Re: Помогите, пожалуйста!!! Перевод чисел в КР580ВМ80
Добавлено: Пт апр 13, 2012 11:42:05
Dmitry Dubrovenko
Ну, коль хотите, вот вам для i8086.

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'ами, и остальные внутрисхемные отладчики...
