![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.10.2011
Сообщений: 11
|
![]()
Пишу большую программу на ассемблере 580 процессора, но т.к. опыта большого не имею, уже битый час пытаюсь понять как правильно реализовать умножение 5,125*Х.
![]() Буду благодарен за помощь! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Имеется в виду КР580ИК80? Он же Intel8080A ?
У не же вообще нет умножения. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 15.10.2011
Сообщений: 11
|
![]() Цитата:
Я вот тут сделал, но не знаю на сколько это корректно. 5,125=41/8 MOV C,A x в регистр с ADD A 2*x ADD A 4*x ADD A 8*x ADD A 16*x ADD A 32*x MOV D,A 32*x в регистр D MOV A,C x в А ADD A 2*x ADD A 4*x ADD A 8*x ADD С 9*x ADD D 9*x+32*x=41*x RRC 41*x/2 RRC 41*x/4 RRC 41*x/8 Получаем (41/8)*x=5,125*x Подскажите, так оно будет корректно работать? |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
А если надо будет 5,25*х или -1,5*х и т.д.
То есть получается, будете писать для каждого числа свою программу? Нет, лучше сделайте программу умножения целых чисел - как это обычно делается, с помощью цикла со сложениями, с условиями (если очередной разряд множителя 0, то ...) . И лучше в виде подпрограммы. А потом предствляйте дробное число как два целых - 1 байт - целая часть, 1 байт - дробная. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.10.2011
Сообщений: 11
|
![]()
А можете подсказать, как это делается через цикл?
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Найдите книгу " Левенталь Л. Программирование на языке ассемблера для микропроцессоров 8080 и 8085 " Там есть решение, и для целых и для нецелых. Там вообще куча примеров.
И еже. Можете сами проверять ? Эмулятор есть у вас? Если нет, пользуйтесь этим - Лабораторный комплекс УМПК-80 - эмулятор. Очень простой и удобный. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.10.2011
Сообщений: 11
|
![]()
Спасибо, буду разбираться.
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Вот, для этой пргораммы эмулятора - простой пример. Сложение двух чисел (по 1 байту) . Одно слагаемое в ячейке 0810, другое - в 0811, результат получится в 0812.
Можно редактировать прямо в кодах. Все цифры - 16-ричные конечно. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нахождение среднего арифметического. Ассемблер. Электроника 580 | Nik953 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 21.04.2013 22:20 |
Дробное число прописью | taran1 | Microsoft Office Access | 7 | 17.06.2011 15:35 |
класс «дробное число» | RodionL3 | Общие вопросы C/C++ | 5 | 24.04.2010 12:44 |
класс «дробное число»(С++) | RodionL3 | Помощь студентам | 2 | 22.04.2010 21:30 |