Уравнение - Assembler (225442)

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

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

Не могли бы вы проверить мою программу... считает z=2-5*(k+t/16) Уже не соображаю правильно считает всё или нет
start: jmp metka
t db 10
k db 4
z db 0         
metka: 
mov AL, t
mov CL, k
SAR AL, CL
mov BL, k
add AL, BL
mov CL, 2
mov BL, AL
SAL BL, CL
add AL, BL
mov BL, 2
sub BL, AL
mov  z, BL
mov AX, 4c00h
int 21h  
end start

Решение задачи: «Уравнение»

textual
Листинг программы
start: mov AL, t
mov CL, 4
SAR AL, CL
add AL, k
mov CL, -5
imul CL
add AX,2
mov  z, AX
mov Ah, 4Ch
int 21h 
t db 10
k db 4
z dw ? 
end start

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

  1. Переменная t инициализируется значением 10.
  2. Переменная k инициализируется значением 4.
  3. Переменная z инициализируется значением AX.
  4. Код выполняет следующие действия:
    • Сдвигает значение переменной AL на 4 позиции вправо.
    • Умножает значение переменной CL на 5.
    • Прибавляет к значению переменной AL значение переменной k.
    • Сдвигает значение переменной CL на 5 позиций влево.
    • Прибавляет к сумме регистров AX и CH значение 2.
    • Сохраняет результат в переменную z.
    • Запускает прерывание 21h, функция 4Ch, передавая в него значение регистра AX.
  5. Результат вычислений сохраняется в переменной z.

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

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