организовать вычисления по формуле Assembler
задание:
Создать программу на языке Ассемблер, что позволяет организовать вычисления по формуле H=a1+a2*x+a3*x2+a4*x3
заранее всем огромное спасибо!
Код:
format PE console
entry start
include 'D:fasmw16726INCLUDEwin32a.inc'
section '.data' data readable writeable
message db '%d',0
a1 db 1
a2 db 1
a3 db 1
a4 db 1
x db 1
res dw 0
section '.code' code readable executable
;H=a1+a2*x+a3*x2+a4*x3
start:
xor eax,eax
mov al,[a2]
mul [x]
xor ebx,ebx
mov bl,[a3]
mul [x]
xor ecx,ecx
mov cl,[a2]
mul [x]
add ax,bx
add ax,cx
add al,[a1]
mov [res],ax
cinvoke printf,message,dword [res]
cinvoke getch
invoke ExitProcess,0
section '.idata' import data readable
library kernel,'kernel32.dll',
msvcrt,'msvcrt.dll'
import kernel,
ExitProcess,'ExitProcess'
import msvcrt,
setlocale,'setlocale',
printf,'printf',
getch,'_getch'
entry start
include 'D:fasmw16726INCLUDEwin32a.inc'
section '.data' data readable writeable
message db '%d',0
a1 db 1
a2 db 1
a3 db 1
a4 db 1
x db 1
res dw 0
section '.code' code readable executable
;H=a1+a2*x+a3*x2+a4*x3
start:
xor eax,eax
mov al,[a2]
mul [x]
xor ebx,ebx
mov bl,[a3]
mul [x]
xor ecx,ecx
mov cl,[a2]
mul [x]
add ax,bx
add ax,cx
add al,[a1]
mov [res],ax
cinvoke printf,message,dword [res]
cinvoke getch
invoke ExitProcess,0
section '.idata' import data readable
library kernel,'kernel32.dll',
msvcrt,'msvcrt.dll'
import kernel,
ExitProcess,'ExitProcess'
import msvcrt,
setlocale,'setlocale',
printf,'printf',
getch,'_getch'