Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 18:01   #1
155hatws
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 11
По умолчанию Умножение на дробное число (ассемблер 580)

Пишу большую программу на ассемблере 580 процессора, но т.к. опыта большого не имею, уже битый час пытаюсь понять как правильно реализовать умножение 5,125*Х. До этого случая приходилось иметь дело только с целыми числами.
Буду благодарен за помощь!
155hatws вне форума Ответить с цитированием
Старый 12.01.2014, 19:06   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Имеется в виду КР580ИК80? Он же Intel8080A ?
У не же вообще нет умножения.
type_Oleg вне форума Ответить с цитированием
Старый 12.01.2014, 19:15   #3
155hatws
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Имеется в виду КР580ИК80? Он же Intel8080A ?
У не же вообще нет умножения.
Да, но надо реализовать всё таки каким-то образом.
Я вот тут сделал, но не знаю на сколько это корректно. 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
Подскажите, так оно будет корректно работать?
155hatws вне форума Ответить с цитированием
Старый 12.01.2014, 19:30   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

А если надо будет 5,25*х или -1,5*х и т.д.
То есть получается, будете писать для каждого числа свою программу?
Нет, лучше сделайте программу умножения целых чисел - как это обычно делается, с помощью цикла со сложениями, с условиями (если очередной разряд множителя 0, то ...) . И лучше в виде подпрограммы.
А потом предствляйте дробное число как два целых - 1 байт - целая часть, 1 байт - дробная.
type_Oleg вне форума Ответить с цитированием
Старый 12.01.2014, 19:43   #5
155hatws
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 11
По умолчанию

А можете подсказать, как это делается через цикл?
155hatws вне форума Ответить с цитированием
Старый 12.01.2014, 20:05   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Найдите книгу " Левенталь Л. Программирование на языке ассемблера для микропроцессоров 8080 и 8085 " Там есть решение, и для целых и для нецелых. Там вообще куча примеров.
И еже. Можете сами проверять ? Эмулятор есть у вас? Если нет, пользуйтесь этим - Лабораторный комплекс УМПК-80 - эмулятор. Очень простой и удобный.
Вложения
Тип файла: rar y.rar (362.0 Кб, 11 просмотров)
type_Oleg вне форума Ответить с цитированием
Старый 12.01.2014, 20:13   #7
155hatws
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 11
По умолчанию

Спасибо, буду разбираться.
155hatws вне форума Ответить с цитированием
Старый 12.01.2014, 23:21   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Вот, для этой пргораммы эмулятора - простой пример. Сложение двух чисел (по 1 байту) . Одно слагаемое в ячейке 0810, другое - в 0811, результат получится в 0812.
Можно редактировать прямо в кодах. Все цифры - 16-ричные конечно.
Вложения
Тип файла: rar summa.rar (92 байт, 8 просмотров)
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение среднего арифметического. Ассемблер. Электроника 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