SmarTrunk писал(а):А аппаратного умножения в ВМ80 нет... Что же, надо писать подрограмму... в машинных кодах?
Художественное отступление:
"SmarTrunk"- всегда помогает людям, за что ему большое спасибо !
По теме: Мне кажется, можно без умножения обойтись - если разрядов немного -
к примеру пусть 8 десятичных разрядов, ну а цифр, разумеется 10 ({0|1|2|3|4|5|6|7|8|9}=decimal), то составим заранее таблицу размерности 7*9 hexadecimal-значений, самое большое из которых будет 90`000`000decimal=05`5D`4A`80hexadecimal , то есть всего 63 doublewords(четырёхбайтовых) и небольшую подпрограммку сложения четырёхбайтовых hex-чисел.
Два байта в
Binary-
Coded-
Decimal_packed вмiщувають усiго четыре десятичных цифры, из которых наибольшая - 9 в разряде тысяч, её "вес" в hexadecimal=02328h , таблица будет всего 3*9 words(двухбайтовых), т.е. 54байта и подпрограмка (или вообще макро-для ASM) сложения двухбайтовых - это в конкретном случае задачки TopickStarter-а.
Необязательно в кодах, мне вот ФОРТ нравится, но на вкус, на цвет...
Вообще вариантов тут много...
to:
BOB51 А для нашего старого знакомого - i8051~=1816ве51 (в его кодах кстати умножение и деление есть) даже есть библиотечки с математикой многоразрядных чисел, определённых, как словечки FORTH-а. Был в своё время даже стенд с дисплейчиком на основе 51-го, своего рода обучательная ФОРТ-машинка. Не хуже, чем Бэйсик-машинки на 8080, только ПО маловато было.