Реализации алгоритмов/Факториал: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 450:
</source>
 
===Программируемые калькуляторы «Электроника» (советские Б3-34, МК-54, МК-56, МК-61, МК-52 и российские [[w:Электроника МК-152|МК-152, МК-161]])===
Примечание: команда ВП по адресу <code>00.</code> превращает 0 в 1, позволяя корректно вычислять ''0! = 1''.
 
====Вариант № 1====
С использованием счётчика в адресуемом регистре (в качестве r следует выбрать один из регистров: 0, 1, 2, 3).
<source>
 
00. ВП 01. Пr 02. 1 03. ИПr 04. × 05. FLr 06. 03 07. С/П
<code>
</source>
00. ВП 01. Пr 02. 1 03. ИПr 04. × 05. FLr 06. 03 07. С/П
</code>
 
====Вариант № 2====
С использованием регистров стека X, Y, Z (значение, находившееся в регистре Y, сохраняется).
<source>
 
00. ВП 01. В↑ 02. КНОП 03. 1 04. − 05. Fx≠0 06. 11 07. × 08. FВx 09. БП
<code>
0010. ВП 01. В↑ 02. КНОП 03. 1 04. 05. Fx≠0 06. 11 07. ×F⟳ 08. FВx 09. БП 10. 03 11. F⟳ 12. С/П
</codesource>
 
====Вариант № 3====
С использованием регистров стека X, Y, Z, T (т. е. стек используется целиком).
<source>
 
00. ВП 01. ↔ 02. FВx 03. В↑ 04. FВx 05. 1 06. - 07. × 08. Fx=0 09. 03
<code>
00. ВП 0110. ↔ 02. FВx 03. В↑ 04. FВx 05. 1 06. - 07. × 08. Fx=0 09. 03 10. ↔ 11. С/П
</codesource>
 
=== AT&T x86 Assembler ===