реклама на сайте
подробности

 
 
> Алгоритм вычитания по произвольному модулю
U235
сообщение Aug 30 2007, 10:10
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 30-06-07
Пользователь №: 28 807



Никто не подскажет, как на ARM-ассемблере организовать вычитание по модулю, к примеру, 55580? Согласен и просто на пригодный к ассемблированию алгоритм для 32х разрядного процессора. А то уже успел сильно пожалеть, что дрых на лекциях по булевой алгебре sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
U235
сообщение Sep 5 2007, 10:21
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 30-06-07
Пользователь №: 28 807



Смысл последней строки в том, что если получится отрицательное число, то его можно просто сложить и за счеть арифметических свойств дополнительного кода получится правильный результат? Я хотел так сделать, но меня смутило, что будет если результат первого вычитания окажется меньше -32768. Не уверен, что тогда сложение будет корректно работать. Поэтому в итоге написал топорно, но зато вроде на 100 процентов надежно:

cmp r1, r2
bcc MOD55
sub r1, r1, r2
b RES
MOD55 ldr r3, =55581
sub r1, r2, r1
sub r1, r3, r1
RES ...

Попутно, кстати, по неопытности сначалав условном переходе поставил проверку флага N, а не C. В итоге где то с полчаса наблюдал замечательные глюки, пока не перечитал по 33ему разу документацию и не усвоил, в чем разница между этими флагами smile.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 03:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01909 секунд с 7
ELECTRONIX ©2004-2016