Вычисление выражения с разными значениями Х - Assembler
Формулировка задачи:
В сегменте данных по адресу ds:x находится однобайтная знаковая величина (X). в зависимости от соотношения величины Х, заданного в задании, реализовать логику вычисления двухбайтного результата (Y). результат записать в сегмент данных по адресу ds:y.
(X-70, X=40
Y={60+X, 40<X
(5+X, иначе (фигурные скобки)
Решение задачи: «Вычисление выражения с разными значениями Х»
textual
Листинг программы
- ; Задание 3. Геенко А. УВН-211, Вариант 4
- .386
- seg1 segment use16
- x db 2
- y dw ?
- seg1 ends
- cseg segment use16
- assume ds:seg1, cs:cseg,
- ; загрузка указателя сегмента ds
- m1: mov cx, seg1
- mov ds, cx
- ;сравнение однобайтного числа с непосредсвенным операндом
- movsx ax,ds:x
- cmp ax,40
- jl short m2
- jg short m3
- ;вычитание если Х равен 40
- sub ax,70
- jmp short m4
- ; сложение если Х меньше 40
- m2: add ax,5
- jmp short m4
- ;сложение если Х больше 40
- m3: add ax,60
- ; запись результата, выгрузка из памяти
- m4: mov ds:y,ax
- mov ah, 4ch
- int 21h
- cseg ends
- end m1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д