Другие языки программирования и технологии

Помогите с заданием по написанию программы на языке ассемблер, вычисляющую значение переменной R.

Написать программу, вычисляющую значение переменной R при указанных значениях.

R=x+y, где x=a+b-c, y=b*c-a, где b=8; a=30; c=7
581
Программа написана специально для emu8086. Кроме того, она может выполняться и компилироваться только с помощью emu8086.

#make_exe#
include emu8086.inc

data segment
  a db 30
  b db 8
  c db 7
  x dw ?
  y dw ?
  R dw ?
  ResultMsg db "R = $"
  WaitPrompt db 13, 10, 10, "Для завершения работы нажмите любую клавишу... $"
ends

stack segment
    dw 64 dup (?)
ends

code segment
N184663205:
    mov bp, data
    mov ds, bp
    lea dx, ResultMsg
    mov ah, 9
    int 21h

    mov al, a
    cbw
    mov cx, ax
    add al, b
    sub al, c
    cbw
    mov x, ax
    mov al, b
    imul c
    sub ax, cx
    mov y, ax
    add ax, x
    call print_num

    lea dx, WaitPrompt
    mov ah, 9
    int 21h
    mov ah, 8
    int 21h
    mov ax, 4c00h
    int 21h
ends

    DEFINE_PRINT_NUM
    DEFINE_PRINT_NUM_UNS
    end N184663205
Юрий Соловьев
Юрий Соловьев
51 590
Лучший ответ
Спасибо большущее!
mov eax,dword ptr[a]
add eax,dword ptr[b]
sub eax,dword ptr[c]
mov dword ptr[x],eax
mov eax,dword ptr[c]
sub eax,dword ptr[a]
mov dword ptr[y],eax
add eax,dword ptr[x]
mov dword ptr[R],eax
вроде так
Михаил Гулов
Михаил Гулов
7 018
Вадим Канев Ток хотел добавить ответ =)

там mul ещё