Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Факториал числа

Автор:   •  Июнь 29, 2021  •  Практическая работа  •  1,182 Слов (5 Страниц)  •  423 Просмотры

Страница 1 из 5

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«Южно-Уральский государственный университет

(национальный исследовательский университет)»

Высшая школа электроники и компьютерных наук

Кафедра системного программирования

Задание 4: «Факториал числа»

По дисциплине: «Архитектура вычислительных систем»

бакалавра направления «Фундаментальная информатика и информационные технологии»

Выполнил: _________________

студент группы КЭ-102

А.Е. Абзалтинов

Проверил:

Преподаватель кафедры СП ВШ ЭКН

А.В. Сейфер

Дата:__________ Оценка:________

Челябинск - 2021

Задача

Написать на языке ассемблера программу, реализующую вычисление факториала числа (арифметическая прогрессия).

  • Использовать ассемблер NASM
  • Использовать компоновщик link (из комплекта MS Visual Studio Express под Windows).
  • Все манипуляции при сборке программ выполняются в командной строке (в Windows — cmd.exe)
  • Число, факториал которого необходимо вычислить, вводится с клавиатуры, результат выводится на экран.

; подключение внешних функций, реализованных на языке программирования Си, обеспечивающих

; ввод информации с клавиатуры и вывод результата на экран, а также функцию завершения

; работы программы

extern printf

extern scanf

extern exit

; точка входа в программу

global mystart

section .text

mystart:

    push dword msg0                ; вывод на экран сообщения о необходимости ввести число

    call printf

    add esp, 4  

; ввод числа с клавиатуры

    push dword a                        ; помещение параметров для вызова функции в стек

    push dword msg1

    call scanf                        ; вызов внешней функции с параметрами из стека

    add esp, 12                        ; очистка стека

; максимальное число для вычисления факториала = 20. Далее возникает переполнение

; регистров и необходимо реализовывать дополнительные методы хранения и переноса

; результатов вычислений

    mov eax, [a]    

    cmp eax, 20

    jg crop

start:

; установка начальных значений регистров

    mov eax, 1

    mov ebx, 0

    mov ecx, 1

    mov edx, 0

; вычисление факториала от 0 до 12 включительно. Переполнения регистра нет.

; Результат помещается в eax. Флаг переполнения равен 0 (OF = 0)

; Если возникает переполнение (вычисление факториала от 13 до 20 включительно), то

; флаг переполнения устанавливается в 1 (OF = 1) и происходит переход к усложненному

; алгоритму

calclow:

    mul ecx

...

Скачать:   txt (7.7 Kb)   pdf (126.6 Kb)   docx (13 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club