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

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

Добавлено: Вс апр 15, 2012 23:15:51
IM1
BOB51 писал(а):а можно еще вставить jmp, а на новом участка дописать "выпавшие" два байта... :cry:
+100500!
Вообще то 3 байта.
И это часто применял, ставил в тексте галку, например: "вставка А" и jmp-ом уходил на свободный участок.

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

Добавлено: Пн апр 16, 2012 07:59:08
Lina_Inverse
комментариев нет, потому что лабы оформляем так :)) даже директивы и метки не ставим... разве что если когда заставляют, и то у многих это вызывает ступор))) особо разбирающихся в ассемблере нет, да и преподавание в институте было вообще никакое. ну да ладно, хоть что-то понятно, кроме этой вот задачки.

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

Добавлено: Пн апр 16, 2012 09:06:51
BOB51
а чего-то в моем исходнике непонятного? :?
для обратной обработки содержимое соответствующего накопителя в prodakt является счетчиком циклов суммирования соответствующей константы и накопителя результата в регистровой паре DE...
да,совсем склероз, забыл хранение регистров в стеке дописать (для случая вызова вида call decod, как и о трехбайтовости jmp addr) :oops:
ежли интересно, можно подбросить парочку древних ассемблеров... :sleep:

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

Добавлено: Пн апр 16, 2012 10:07:00
Lina_Inverse
вот то что есть

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

Добавлено: Пн апр 16, 2012 13:05:11
BOB51
скушайте подправленное - на это хотя-бы компилятор не матюкается, а вот работа в симуляторе не проверялась 8)

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

Добавлено: Пн апр 16, 2012 13:14:13
YS
580кр_то_в_чем_делаем_мы_лабы.rar
Так вы что ли даже с железом не работаете? :shock: Кибер-некрофилия?

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

Добавлено: Пн апр 16, 2012 13:51:52
BOB51
I8080 не совсем некрофилия...
когда начинал анализ avr/pic начальное мнение было avr-аналогия mcs51,pic- mcs48.
однако позже, после нескольких практических разработок мнение весьма изменилось :
AVR последователи архитектуры Z80 - исключение только внутренняя память программ и навороты периферии, свойственные МК;
С пиками посложнее - младшие и средние бесспорно разновидность mcs48, а вот 17/18 - практически "продвинутый" mcs51;
да и Z80 еще не окончательно вымер...
одначе сегодня и zilog и microchip и atmel совсем не гнушаются производством МК непосредственно на базе ядра mcs51... 8)



еще добавлю:

Весьма неплохие симуляторы...
Конечно не сравнить с
"8085 Simulator IDE - Registered Copy v2.73
Author: Vladimir Soso
ALL RIGHTS RESERVED.

The users of OshonSoft.com software must accept this disclaimer of warranty:
The software is supplied as is. The author disclaims all warranties,
expressed or implied, including, without limitation, the warranties of
merchantability and of fitness for any purpose. The author assumes no
liability for damages, direct or consequential, which may result from the
use of the software.

8085 Simulator IDE official web site is on the following address:
http://www.oshonsoft.com/

If you would like to buy the license to use 8085 Simulator IDE after the
evaluation period, please find all necessary information on the 8085
Simulator IDE web site."


Но это платный или "ля пиратос", что в официальном учебном заведении не приветствуется ревнителями правопорядка (ОМОН&прочая братва)...
Единственно чего нехватает - нормальной программы разработки ПО.
попробовал приколоть приложением архивчик от AD2500 (еще древнее, зато работает), но видимо великоват 7,26Mb - не прицепился, если интересно - сброшу на e-mail...
Еще рекомендую обзавестись редактором DPAD версии 5.0.1.2

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

Добавлено: Пн апр 16, 2012 15:57:01
Lina_Inverse
BOB51, большое спасибо, что снова уделили внимание такой глупости! всё понятно)) спасибо, что разжевали мне, такой глупой))) :)

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

Добавлено: Пн апр 16, 2012 15:59:35
Lina_Inverse
YS, да, мы не работаем с железом, пишем всё в этом эмуляторе (ну а также в эмуляторе 48 и 51и МК)... а еще у нашего преподавателя в лаборатории есть куча стендов с "раритетами" - ну, например, такими как мышка без колеса прокрутки))) собственно, по теме ничего такого нет... плохо, что в живую увидеть и поработать на этом не удаётся(((((

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

Добавлено: Пн апр 16, 2012 17:52:49
YS
не гнушаются производством МК непосредственно на базе ядра mcs51...
Ну, одно дело "на базе ядра" по современному техпроцессу и с современной периферией типа USB, а другое - аутентичные чипы. Вторым ныне место в музее.
плохо, что в живую увидеть и поработать на этом не удаётся
Ну, на самом деле это не большая беда. Лучше осваивайте те же AVR или MSP430. Кстати, отладка LaunchPad стоит всего где-то в районе 200р.

Кроме того, реальность такова, что для сколь-либо продвинутых занятий электоникой/программированием надо прежде всего выучить английский.

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

Добавлено: Пн апр 16, 2012 18:07:53
Lina_Inverse
ха, я немецкий учила)) но так-то некоторые вещи понятны на инглише

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

Добавлено: Пн апр 16, 2012 18:12:23
ChipKiller
плохо, что в живую увидеть и поработать на этом не удаётся(((((
... это хорошо, а не плохо. Зачем изучать устаревшее? К сожалению система образования очень инертна ( наверное до сих пор изучают 8080, 8086, МК51).....
ЗЫ. единственное,что можно сказать в оправдание этой системе - поняв "базу" новое изучать легче.

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

Добавлено: Пн апр 16, 2012 21:46:43
YS
поняв "базу" новое изучать легче.
Не всегда.

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

Добавлено: Пн апр 16, 2012 22:07:49
petrenko
Это "жжж" неспроста...
Изучают устройство "умных" кофеварок и т.п. В основном императивное программирование. Дзета- и сигма- архитектуры запрещены законодательно Конгрессом самой адекватной страны. Работы по AI строго под контролем "оборонного" ведомства. ФОРТ и ЛИСП не приветствуются.
Что-то моё предложение таблицей заменить умножение не критикует никто ? Или оно непонятное вообще ?

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

Добавлено: Пн апр 16, 2012 22:29:59
BOB51
табличный вариант оправдан в пределах 0-100 при требовании максимального быстродействия и отсутствия ограничений по объёму ПЗУ (ОЗУ) :))

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

Добавлено: Пн апр 16, 2012 22:51:29
Lina_Inverse
Нипонятна... (с)

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

Добавлено: Пн апр 16, 2012 23:49:02
BOB51
ой..! муристика сморозилась... забыл что размещение данных в регистровой паре обратное... :oops: ниже правильное прицеплено... :?

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

Добавлено: Вт апр 17, 2012 00:05:23
petrenko
BOB51 писал(а):табличный вариант оправдан в пределах 0-100 при требовании максимального быстродействия и отсутствия ограничений по объёму ПЗУ (ОЗУ) :))
Ну вариант оправдан даже в диапазоне от 0 до 99`999`999decimal , если есть куда поместить таблицу размерности 7*9 hexadecimal-значений, всего 63 doublewords(четырёхбайтовых, потому что самое большое табличное значение будет 90`000`000decimal=05`5D`4A`80hexadecimal , то есть займёт четыре байта)=252байта
А уж от 0 до 9999 всего 54байта таблица. Уложится в ограничения памяти ? :wink:
Сложение двухбайтовых hexadedimal - это очень сложно или совсем сложно ? :beer:

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

Добавлено: Вт апр 17, 2012 00:53:48
petrenko
Без привязки к системе команд примерно :
Взять старший байт исходного, поместить в A
Сдвинуть на 1 бит в младшую сторону с потерей удвигаемого младшего бита
Сдвинуть на 1 бит в младшую сторону с потерей удвигаемого младшего бита
Сдвинуть на 1 бит в младшую сторону с потерей удвигаемого младшего бита
Логическое "И" A с 00011110
Сложить с начальным адресом таблицы
Переместить из A в регистр, с которого можно адресовать память
Взять из указанного адреса в таблице значение и поместить в DE*(например)
Взять старший байт исходного, поместить в A
Сдвинуть на 1 бит в старшую сторону с потерей удвигаемого старшего бита
Логическое "И" A с 00011110
Сложить с начальным адресом таблицы
Переместить из A в регистр, с которого можно адресовать память
Взять из указанного адреса в таблице значение и поместить в AB*
Вызвать подпрограмму прибавления DE* к AB* (или вставка макро)
Переместить из AB* в DE*
Взять младший байт исходного, поместить в A
Сдвинуть на 1 бит в младшую сторону с потерей удвигаемого младшего бита
Сдвинуть на 1 бит в младшую сторону с потерей удвигаемого младшего бита
Сдвинуть на 1 бит в младшую сторону с потерей удвигаемого младшего бита
Логическое "И" A с 00011110
Сложить с начальным адресом таблицы
Переместить из A в регистр, с которого можно адресовать память
Взять из указанного адреса в таблице значение и поместить в AB*
Вызвать подпрограмму прибавления DE* к AB* (или вставка макро)
Переместить из AB* в DE*
Взять младший байт исходного, поместить в A
Сдвинуть на 1 бит в старшую сторону с потерей удвигаемого старшего бита
Логическое "И" A с 00011110
Сложить с начальным адресом таблицы
Переместить из A в регистр, с которого можно адресовать память
Взять из указанного адреса в таблице значение и поместить в AB*
Вызвать подпрограмму прибавления DE* к AB* (или вставка макро)
Переместить из AB* в DE*
Такой алгоритм будет работать почти на любом CPU в системе команд которого нет умножений, работы с отдельными нибблами, битами и т.д.
*_AB и DE могут быть и любые другие пары регистров, и это может быть макро из двух команд типа MOV
Ничего не перепутал ? Сильно сложно ? :beer:

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

Добавлено: Вт апр 17, 2012 06:14:08
BOB51
а зачем такой изворот ?
ведь в применении таблицы весь смысл в быстродействии преобразования
movc a,@a+dptr
или пресловутое
addwf pcl,f
всего-то (к примеру) :)
если потребуется более сложная конструкция, то применяется стандартное многобайтное умножение/деление + десятичная коррекция результата на промежуточных этапах (если надобно)
только вот зачем для обслуживания простых систем отображения информации или ввода/вывода такие "навороты"? тем более с упакованным двоично-десятичным форматом,
ведь в большинстве случаев затем последует вторая операция преобразования из десятичного числа в сегментный код... :cry: