Data SEGMENT ;Открыть сегмент данных
A DB 5Ah ;Инициализировать
B DB 55h ;переменные A, B, C, D, X
C DB 11h
D DB 5
X DW ?
Data ENDS ;Закрыть сегмент данных
Ourstack SEGMENT Stack ;Открыть сегмент стека
DB 100h DUP (?) ;Отвести под стек 256 байт
Ourstack ENDS ;Закрыть сегмент стека
ASSUME CS:Code, DS:Data, SS:Ourstack ;Назначить сегментные регистры
Code SEGMENT ;Открыть сегмент кодов
Start:
mov AX, Data ;Инициализировать
mov DS, AX ;сегментный регистр DS
xor AX, AX ;Очистить регистр AX
;умножим 3 на A
xor AX, AX ;Очистить регистр AX
mov AL, [A] ;поместим в регистр AL значение переменной A
mov BL, 3 ;Множитель 3 в регистр BL
mul BL ;умножим содержимое регистра AL на C
add AX, 48 ;прибавить к результату умножения 48
mov [X], AX ;возвращаем результат
xor AX, AX ;Очистить регистр AX
mov AL, [B] ;Делимое A в регистр AL(старший байт AX)
mov BL, [C] ;Делитель C в регистр BL
div BL ;Поделить
;умножим AX на D
mul D ;умножим содержимое регистра AX на D
SUB X, AX ;вычесть из Х результат умножения AX на D
mov AX, 4C00h ;Завершить программу
int 21h ;прерывание
Code ENDS ;Закрыть сегмент кодов
END Start ;Конец исходного модуля.
END Start ;Конец исходного модуля.
mul byte ptr D
mul byte ptr D
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.