Вычислить функцию 2*MAX(K+X,4)+X - Assembler

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

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

Сама функция - 2*MAX(K+X,4)+X. Правильно ли это? Пишу в TASM
mov ax, ds:Adr_Data_X       
mov cx, ds:Adr_Data_K
add ax,cx
cmp ax,4
JB  max3
 
max3:   
mov dx,2
imul ax
mov dx,ax
add ax,dx

Решение задачи: «Вычислить функцию 2*MAX(K+X,4)+X»

textual
Листинг программы
    mov ax, X
    add ax, K
    cmp ax, 4
    jg X_K_greater
    mov ax, 4
X_K_greater:
    mov dx, 2
    imul dx
    add ax, X

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

  1. Переменная X сохраняется в регистре AX.
  2. К значению X прибавляется K.
  3. Результат сравнивается с 4. Если больше, то происходит переход к метке X_K_greater.
  4. Значение 4 сохраняется в регистре AX.
  5. Переменная X добавляется к значению в регистре AX.
  6. Результат умножается на 2.

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

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