Написал половину кода уравнение дальше ступор( - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. У меня есть уровненние и не выходит его записать его в ассемблере. Ятолько начал учить ассамблер не судите строго чайника. Уровнение: x=d^3+(b^2-3cb)/(a^2+9)+350 Переменные: a=-4 c=5 b=10 d=-7 Вот что у меня получилось
        IDEAL
    MODEL   small
    STACK   256
    DATASEG
exCode  DB  0
a       DB      -4
V       DB      9 
b   DB  10
d   DB  -7
c       DB      5
k       DB      3
f       DB      350
X       DW      ?
    CODESEG
Start: mov  ax,@data
       mov  ds,ax 
;
       mov ax, [k]
       mul [k]
       mul [c]; AX=k*c
       mul [b]; AX=k*c*b
;    
       
      mov ax [b]
      mul [b]
      mul [b]; AX=b^2
;
     sub ax [k],[c],[b]; AX=k*c*b-b^2 
 
      mul [a] 
      mul [a] ; AX=a^2
      add [V] ; AX=a^2+v

Решение задачи: «Написал половину кода уравнение дальше ступор(»

textual
Листинг программы
;x=d^3+(b^2-3cb)/(a^2+9)+350 
    org 100h
    mov esi, [d]
    imul    esi, esi
    imul    esi, [d]
    add esi, 350    ;esi = d^3+350
    mov ecx, [a]
    imul    ecx, ecx
    add ecx, 9      ;ecx = a^2+9
    mov ebx, [c]
    mov eax, [b]
    imul    ebx, eax
    lea ebx, [ebx*2+ebx]; ebx = 3cb
    imul    eax, eax    ; eax = b^2
    sub eax, ebx    ; eax = b^2 - 3cb
    cdq 
    idiv    ecx
    add eax, esi    ; eax = d^3+(b^2-3cb)/(a^2+9)+350 
    mov [X], eax
    ret
 
a   DD  -4
b   DD  10
c   DD  5
d   DD  -7
X   DD  ?

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы