Сложение, вычитание и умножение на Flat Assembler
Код:
format PE GUI 4.0
entry start ;Точка входа в программу
INCLUDE ‘INCLUDE\win32ax.inc’
INCLUDE ‘INCLUDE\encoding\win1251.inc’
INCLUDE ‘INCLUDE\api\user32.inc’
section ‘.data’ data readable writable
formats db «%d»,0
result db 256 dup(?) ;Когда будем преобразовавать число строку, сюда сохраним результат
section ‘.code’ code readable executable
start:
;Алгоритм сложения чисел 1 и 2
mov eax,1 ;Перемещаем в eax число 1
mov edx,2 ;Перемещаем в edx число 2
add eax,edx ;Складываем содержимое eax и edx (1+2). Выводим результат в eax.
invoke wsprintf,result,formats,eax ;Преобразуем число(результат) в строку для того чтобы можно было вывести его на экран.
invoke MessageBox,0,result,»Plus»,MB_OK ;Выводим результат на экран.
;Алгоритм вычитания 4 из 10
mov eax,10 ;Перемещаем в eax число 10
mov edx,4 ;Перемещаем в edx число 4
sub eax,edx ;Вычитаем из содержимого eax edx (10-4). Выводим результат в eax.
invoke wsprintf,result,formats,eax ;Преобразуем число(результат) в строку для того чтобы можно было вывести его на экран.
invoke MessageBox,0,result,»Minus»,MB_OK ;Выводим результат на экран.
;Алгоритм умножения 2 на 6
mov ax,2 ;Перемещаем в ax число 2
imul ax,6 ;Умножаем содержимое ax на 6 (2*6). Результат будет находиться в eax.
invoke wsprintf,result,formats,eax ;Преобразуем число(результат) в строку для того чтобы можно было вывести его на экран.
invoke MessageBox,0,result,»Umnojenie»,MB_OK ;Выводим результат на экран.
invoke ExitProcess,0 ;Выход из программы
section ‘.idata’ import data readable
library kernel32,’KERNEL32.DLL’,user32,’USER32.DLL’
INCLUDE ‘INCLUDE\api\kernel32.inc’