ага, "прогресс затягивает" дальше потихоньку мозги отмирать начинают... в плане раньше все в собственной голове прокручивал, а чем дальше, тем больше без компового экрана ни туда ни сюда... с одной стороны вроде как быстрее и "покруче", а с другой... без компа то мы уже и ...
как-то против шшшерррсссти...
YS писал(а):Я вот на своих лабах в машинных кодах писал.
Прям воспоминания нахлынули, сплошная ностальгия.
В 80-х досыта написался в машинных кодах под интел 80. Ничего страшного, сам себе ассемблер
Раздражал только момент, когда надо вставить новый кусок кода в середину программы. Приходилось в ручную сдвигать все адреса, включая переходы и подпрограммы. Потом стал оставлять кусочки с NOP ами, чтобы можно было всунуть команду безусловного перехода или вызова подпрограммы.
а можно еще вставить jmp, а на новом участка дописать "выпавшие" два байта...
а для mcs51 и z80 у меня еще вот такая добавочка была ( это для быстрого рассчета значения "коротких"переходов )
Раздражал только момент, когда надо вставить новый кусок кода в середину программы. Приходилось в ручную сдвигать все адреса, включая переходы и подпрограммы.
+100!
у меня еще вот такая добавочка была
Сурово... Ох, как хорошо, что я живу в век развитых компиляторов и разнообразных IDE, ICD и ETM...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Смотрю, на вас ностальгия напала))) а для меня это теперь жуткая реальность. Раньше с задачами проблем не было, писала сама, а с переводом 2-х байтового двоично-десятичного числа в двоичное прям ступор какой-то... никак не получается.
в старых курсовых нашла что-то похожее, но там в задаче (вычисление функции) 4-х байтные числа. в общем, ужас один для меня.... и помочь некому
-А есть аудиокниги по схемотехнике?
- Нет, наверно. Но ты попроси какую-нибудь девушку прочитать..так, эротичным голосом.
обьявим:
рвх тысяч
рвх сотен
рвх десяитков
обнулим их
цикл вычитания двухбайтовой константы тысяч
количество тысяч разместить в рвх тысяч
цикл вычитания константы сотен
количество сотен разместить в рвх сотен
цикл вычитания константы десятков(однобайтовый)
количествол десятков в рвх десятков
в остатке единицы
приимерно так...
я не умею работать с многобайтными числами(((( алгоритм-то понятен, но первое не даёт мне это сделать. знакомая попробывала написать программу (сравнение чисел, вычет содержимого... но и это не понятно). вот программа с алгоритмом, которая, кстати, работает косяком (точнее, вообще не работает ). различия в проге и алгоритме есть (адреса и операции не совпадают, видимо, что-то эта девочка перепутала). нужна отладка, а я не понимаю...а, да..еще адреса переходов не указаны (ну это в процессе написания можно исправить).
Мнемоника программы:
LXI H, 0003H
LXI B, 0001H
LXI B, 0005H
XRA A
LDAX B
ACI 01
STAX B
DCX B
LDAX B
ACI 00
STAX B
INX B
MOV A, M
ACI 01
DAA
MOV M, A
DCX H
MOV M, A
ACI 00
DAA
MOV M, A
INX H
LDAX D
CMP M
DCX D
DCX H
MOV A, M
JNZ
SBI 01
JC
CMP M
INX D
INX H
JNZ H
XRA
LDAX B
SBI 01
STAX B
DCX B
LDAX B
SBI 00
STAX B
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, только ПО маловато было.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
проблема в том, что не все популярные МК имеют даже команду десятичной коррекции (тем более умножение/деление), а алгоритм более "продвинутого" умножения/деления многобайтных чисел не совсем явный для понимания и часто весьма избыточен для простейших применений...
попробую набросать, только вот без привязки к директивам какого-либо ассемблера (по "ручным табличкам") ибо неведомо чем народ пользуется...
Вроде верно, но у TopickStarter-а задание ровно противоположное, кажется..
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста