620.91K
Category: programmingprogramming

Арифметические операции. Лабораторная работа №2

1.

Лабораторная работа №2
Арифметические операции

2.

Цель работы:
Изучить арифметические операции ассемблера
Программирование арифметических выражений в языке
Ассемблер происходит через некоторые команды, такие как:
mul, div, sub, add. Эти команды называются командами
арифметических операций.
• iMul – команда умножения. Она умножает регистр eax на тот
операнд, что стоит после него. Результат заносится в eax.
• Div – команда деления. Делит регистр eax на операнд,
находящийся после него. Результат заносится в eax.
• Add – команда сложения. Складывает два числа. Результат
заносится в первый регистр.
• Sub – команда вычитания. Вычитает два числа. Результат
заносится в первый регистр.

3.

Пример:
Написать программу на ассемблере
вычисления выражения:
a-e/b-d*e
a=2986
b=27
e=1134
d=2
РЕЗУЛЬТАТ: 676

4.

include <\masm32\include\msvcrt.inc>
include <\masm32\include\kernel32.inc>
includelib <\masm32\lib\msvcrt.lib>
includelib <\masm32\lib\kernel32.lib>
Первые строки задают архитектуру
процессора, модель памяти и другие
настройки сборки программы. Затем
подключаются заголовочный файл и
библиотека , содержащие функции
операционной системы Windows для
работы с консолью и другими
ресурсами.
Объявляется область данных (.data) и
определяются переменные
data segment
print_format db "%d ", 0
data ends
.586
.model flat, stdcall
text segment
print PROC
enter 0, 0
mov eax, [ebp + 8]
invoke crt_printf, offset print_format, eax
leave
ret 4
print ENDP
Данный код представляет собой
процедуру (procedure) с именем "print".
Вкратце данная процедура нужна для
вывода на экран результат. Более
подробно этот код разберём в
следующих занятиях посвящённая
процедурам .

5.

Основной код с комментариями

6.

Результат

7.

Самостоятельная работа
Вычислите значения выражений:
English     Русский Rules