Старый 12.07.2012, 21:33   #1   
Форумец
 
Аватар для r_c_m
 
Сообщений: 595
Регистрация: 27.03.2004
Возраст: 45

r_c_m вне форума Не в сети
Вопрос по асму Z80.

Приветствую.

Нужно написать небольшую процедуру, которая будет находить mod b, от числа a.

a <- a mod b

Помогите с данной задачкой.

Спасибо заранее.
 
Старый 16.07.2012, 17:14   #2   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,873
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
http://chilliant.blogspot.com/2010/1...assembler.html
 
Старый 16.07.2012, 21:07   #3   
Форумец
 
Аватар для r_c_m
 
Сообщений: 595
Регистрация: 27.03.2004
Возраст: 45

r_c_m вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
Видел я этот пример. Не подходит он.

Поставлю задачу более конкретно. mod высчитывается в подпрограмме.
Обращение к подпрограмме идет с разными входными данными.

Входные данные:
HL - делимое
С - делитель
(т.е.) надо найти HL mod C

Выходные данные:
A = HL mod C

Самый простой способ - вычитание (HL - C) в цикле до тех пор, пока HL не станет отрицательным. Прибавив к нем вычитаемое получим значение mod-а.

Вот набросал код. Кто может посмотреть наметанным глазом и сказать что-нибудь про его работоспособность. Просто используется флаг переноса, а с флагами у меня беда .

MOD:
LD B,0 ;создаем пару BC
_Loop:
AND A ;Сброс флага переноса для SBC
SBC HL,BC ;HL <- HL - BC - Carry
JR NC,_Loop ;Если HL >= BC, то переходим в SUB
RET ;Возврат
 
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind