Правильно ли написана программа (решение уравнения) - Assembler

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

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

Такое уравнение Y=А−3*(А+В) +С
data segment
;------------------------------------
    A dw ?
    B dw ?
    C dw ?
    Y dw ?
;------------------------------------
data ends
code segment
    assume cs: code, ds: data
    start: mov ax, data         ; загрузить адрес
    mov ds, ax          ;сегмента данных
;--------------------------------------------------
    mov ax, A               ; ax:=A
    mov bx, B               ; bx:=B
    add bx, ax              ; bx:=A+B
    mov     ax, bx              ; ax:=A+B
    add bx, bx              ; bx:=2*(A+B)
    add bx, ax              ; bx:=3*(A+B)
    sub bx, A               ; bx:=3*(A+b)-A
    neg bx              ; bx:=A-3*(A+B)
    add bx, C               ; bx:=A-3*(A+B)+c
    mov y, bx               ; y:=A-3*(A+B)+c
;-----------------------------------------------------------------
    quit:       mov ax, 4c00h           ; код завершения 0
    int 21                  ; выход в dos
code ends
end START
И не могу запустить. Ну точнее запускаю (tasm,tlink потом td...), а дальше забыл... В какой строчке мне можно будет вписать А, б и ц?

Решение задачи: «Правильно ли написана программа (решение уравнения)»

textual
Листинг программы
data segment
;------------------------------------
    A dw 45 <---вот здесь
    B dw 87 <----
    C dw 193
    Y dw -7

Объяснение кода листинга программы

Список элементов кода:

  1. data segment - сегмент данных, в котором хранятся переменные
  2. A dw 45 - определение переменной A, которая содержит значение 45
  3. B dw 87 - определение переменной B, которая содержит значение 87
  4. C dw 193 - определение переменной C, которая содержит значение 193
  5. Y dw -7 - определение переменной Y, которая содержит значение -7 В данном коде определены четыре переменные (A, B, C, Y) и инициализированы их значениями (45, 87, 193, -7) в сегменте данных.

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

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