Написать программу вычисления выражения - Assembler

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

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

z={x^2/8 3<x<15 _={17x+25 в остальных случаях |\ | | Система

Решение задачи: «Написать программу вычисления выражения»

textual
Листинг программы
;z={x^2/8 3<x<15
;z={17x+25 в остальных случаях
.model  small
.386
.stack
.data
x   db  9
z   dw  ?
.code
start:
    mov ax, @data
    mov ds, ax
    mov bx,0F03h ; bh=15, bl=3
    mov al, [x]
    cmp al, bh
    jae non_lim
    cmp al, bl
    jb  non_lim
;z=x^2/8
    cbw
    imul    ax, ax  ;x^2, dx нафиг не нужен
    sar ax, 3   ;x/8
    jmp done
; вне диапазона
non_lim:
    cbw
    imul    ax, 17
    sub ax, 25
done:   mov [z], ax
 
    mov ax, 4c00h
    int 21h
    end start

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

Выполняемая программа вычисляет значение выражения, используя математические операции, в зависимости от значения переменной x. Код программы состоит из двух частей:

  1. Если значение x находится в диапазоне от 3 до 15, то выполняется следующая последовательность операций:
    • Переменная x умножается на саму себя (x^2), затем результат делится на 8 (x^2/8).
    • Значение переменной z устанавливается равным результату вычислений.
  2. Если значение x находится вне диапазона от 3 до 15, то выполняется следующая последовательность операций:
    • Переменная x умножается на 17, затем из результата вычитается 25 (17x+25).
    • Значение переменной z устанавливается равным результату вычислений. В конце программы значение переменной z записывается в память.

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


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

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

8   голосов , оценка 3.875 из 5