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

Ассемблер. Помогите решить. Для выполнения в emu8086

Написать программу, используя операторы условного и безусловного переходов.
Для эмулятора проще писать, чем под MS DOS. С ним в комплекте идёт файл с макросами и подпрограммами ввода-вывода.

#make_exe#
include emu8086.inc

stack segment
  dw 100h dup (?)
ends

data segment               
  a dw ?
  b dw ?
  y dw ?
  PromptA db "Введите A: ", 0
  PromptB db 13, 10, "Введите B: ", 0
  ResultMsg db 13, 10, "Y = ", 0
  WaitPrompt db 13, 10, 10, "Для завершения работы нажмите любую клавишу... ", 0
ends

code segment
N185004117:
    mov cx, data
    mov ds, cx
    mov si, offset PromptA
    call print_string
    call scan_num
    mov a, cx
    mov si, offset PromptB
    call print_string
    call scan_num
    mov b, cx
    mov ax, a
    imul cx
    test ax, ax
    js Second
    jz Second
    add ax, a
    sub ax, b
    jmp Save
Second:
    mov cx, b
    shl cx, 1
    add ax, cx
Save:
    mov y, ax
    mov si, offset ResultMsg
    call print_string
    mov ax, y
    call print_num

    mov si, offset WaitPrompt
    call print_string
    mov ah, 1
    int 21h
    mov ax, 4c00h
    int 21h
ends
   
    DEFINE_SCAN_NUM
    DEFINE_PRINT_STRING
    DEFINE_PRINT_NUM
    DEFINE_PRINT_NUM_UNS
    end N185004117
Иван Плигин
Иван Плигин
51 590
Лучший ответ
Я под эмулятор не писал, но под обычным досом тут дохрена делов. Сделать запрос на ввод a и b, конвертация строки в число (при чем может быть и конвертация в число с плавающей точкой) умножение, сложение и вычитание попроще. Потом конвертация числа в строку и вывод строки на экран. А код на планшетке я вам не напишу, сейчас комп сломался. Да и не стал бы возиться за бесплатно.
Сергей Лупу
Сергей Лупу
15 388
Ярослав Дихтиевский И на этом спасибо. Здесь есть пример: https://otvet.mail.ru/question/184909265