Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 20:06 29.06.24 
Клубове/ Компютри и Интернет / Програмисти Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема процедурка. [re: svetlin]
Автор Kpoмид (непознат )
Публикувано16.12.00 16:29  



това отдолу е една процедурка за целочислено делене на 16-битово число на друго 16-битово число. доколкото разбрах от това, което си написал, би трябвало И целочислено делене да ти свърши работа - въпроса е колко битови операции ти трябват - 16 и 24. тази отдолу съвсем лесно се преработва да работи с 24-битови числа, ше ползва 3 регистъра повече. процедурката за умножение е още-по лесна. дал съм отговора тук, щото лично аз ползвам за "develop" на асемблер notepad-a ;) и нямам начин даже да го компилирам, камо ли да го тествам. така че ако някой забележи някаква простотия, да каже - не съм писал на асемблер от близо 10 годинки, а тоя го разглеждах към полвин час. демек, не ми се смейте...

r1,r2 - the number to be divided
r3,r4 - divisor
r5,r6 - the result
the odd registers contain Hi part of the numbers
r7 is destroyed after the procedure ends (=0)
no checks for such things as division by zero ;), so careful

sub r7,r7
mov r5,r7
mov r6,r7
tst r1
brmi dividedShifted
shiftDivided:
dec r7
lsl r2
rol r1
brpl shiftDivided
dividedShifted:
tst r3
brmi divisorShifted
shiftDivisor:
inc r7
lsl r4
rol r3
brpl shiftDivisor
divisorShifted:
cp r1,r3
brmi shiftResult
brne subtract
cp r2,r4
brpl subtract
shiftResult:
lsl r6
rol r5
lsl r2
rol r1
brcs subtract
brpl shiftDivided2
subtract:
sub r2,r4
sbc r1,r3
inc r6
tst r1
brne divisorShifted
tst r2
brne divisorShifted
tst r7
breq endProc
brmi ShiftResultRight
ShiftResultLeft:
lsl r6
rol r5
dec r7
brne ShiftResultLeft
rjmp endProc
ShiftResultRight:
lsr r5
ror r6
inc r7
brne ShiftResultRight
endProc:
ret




Цялата тема
ТемаАвторПубликувано
* Умножение и деление на асемблер svetlin   14.12.00 17:52
. * Отг: Умножение и деление на асемблер Kpoмид   14.12.00 20:06
. * Отг: Умножение и деление на асемблер svetlin_anon_anon   15.12.00 08:40
. * Отг: Умножение и деление на асемблер Дизeлджия   15.12.00 16:41
. * Абе я се стегни...Ето ти една идея. Shveik   15.12.00 23:47
. * Отг: Абе я се стегни...Ето ти една идея. Tonimir_anon   16.12.00 01:01
. * Отг: Абе я се стегни...Ето ти една идея. svetlin   21.12.00 22:26
. * Отг: Абе я се стегни...Ето ти една идея. b3453_anon   16.12.00 04:12
. * Отг: Абе я се стегни...Ето ти една идея. maxmaniak_anon   19.12.00 21:19
. * Отг: Умножение и деление на асемблер b35765_anon   16.12.00 04:04
. * процедурка. Kpoмид   16.12.00 16:29
. * сори... не съобразих... Kpoмид   16.12.00 16:33
. * Отг: Битовете, битовете! OldAss_anon_anon   20.12.00 09:10
. * Отг: Умножение и деление на асемблер CALL-151   20.12.00 16:19
. * Отг: Умножение и деление на асемблер CALL-151   20.12.00 16:21
. * скива ли кво е гадно :)? Kpoмид   20.12.00 19:14
. * Отг: скива ли кво е гадно :)? Tonimir_anon   21.12.00 00:57
. * Отг: скива ли кво е гадно :)? Tonimir_anon   21.12.00 00:58
. * Отг: скива ли кво е гадно :)? lnfoMatic   21.12.00 08:32
. * Отг: скива ли кво е гадно :)? Tonimir_anon   22.12.00 03:01
. * Отг: скива ли кво е гадно :)? lnfoMatic   22.12.00 14:56
. * Отг: скива ли кво е гадно :)? Tonimir_anon   23.12.00 04:51
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.