Условие: x=2*b-1+4*(a-3*c): не могу найти ошибку - Assembler

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

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

условие: x=2*b-1+4*(a-3*c) Выводит какой-то непонятный результат, причём при любых переменных
кто-нибудь откликнетесь...

Решение задачи: «Условие: x=2*b-1+4*(a-3*c): не могу найти ошибку»

textual
Листинг программы
data segment
   
    str1 dw " vvedite chislo A  $",0
    str2 dw " vvedite chislo B  $",0
    str3 dw " vvedite chislo C  $",0
    a dw ?
    b dw ?
    c dw ?
    x dw ?
ends
 
stack segment
    dw   256  dup(0)
ends
 
code segment
    include "emu8086.inc" 
    
start:
 
    mov ax, data
    mov ds, ax
    mov es, ax
    
 
    print "x=2*b-1+4*(a-3*c)"
                              
    printn " "
     
    lea dx, str2
    mov ah, 9
    int 21h   
    call scan_num
    
    sal cx, 1
    sub cx, 1
    mov b, cx                      
    
    printn " "  
    
    lea dx, str3 
    mov ah, 9
    int 21h
    call scan_num 
    
    mov c, cx
    sal cx, 1
    add cx, c
    mov c, cx
    
    printn " "
   
    lea dx, str1 
    mov ah, 9
    int 21h 
    call scan_num
    
    mov ax, c
    sub cx, ax
    sal cx, 2
    mov a, cx
     
     printn " "
    
    print "Otvet : " 
    mov ax, b
    mov bx, a
    add ax, bx
    mov x, ax
    js gon
     
    call print_num_uns
    jmp tor        
gon:
    print "-"
    neg x
    call print_num_uns    
           
tor: mov ax, 4c00h ; exit to operating system.
    int 21h    
ends    
define_scan_num
define_print_num_uns
 
end start ; set entry point and stop the assembler.

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

Список действий в коде:

  1. Загрузить сегменты данных и стека.
  2. Вывести на экран формулу расчета x.
  3. Прочитать значение переменной b с помощью функции scan_num и добавить его в конец строки.
  4. Прочитать значение переменной c с помощью функции scan_num и добавить его в конец строки.
  5. Прочитать значение переменной a с помощью функции scan_num и добавить его в конец строки.
  6. Вычислить значение выражения 2b-1+4(a-3*c) и сохранить его в переменной x.
  7. Если результат вычисления отрицательный, то вывести на экран знак - и отрицательное значение выражения.
  8. Вывести на экран значение переменной x с помощью функции print_num_uns.
  9. Выполнить выход из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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