model tiny Распределение памяти для COM файла code Начало сегмента код

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
model tiny ;Распределение памяти для .COM файла
.code ;Начало сегмента кодов
org 100h ;Смещение входа (Код СОМ-программ: начинается с адреса 100h)
start: ; Начало программы
masA db 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35 ;массив с исходными данными
masB db 22,226,254,228,229,230,231,232,19,221,233,234,235,5,46,59 ;массив с исходными данными
masC db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;массив с исходными данными
masD db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;массив с исходными данными
mov CX,16 ;заносим число 16 в регистр данных СХ
mov BX,0 ;заносим 0 в регистр данных ВХ
cont: cmp BX,CX ;сравниваем ВХ и СХ (равны или нет)
jg exit ;если да, то выход
mov AL,masA[BX] ;если нет, то в AL заносим следующий элемент массива
mov DL,masB[BX] ;если нет, то в AL заносим следующий элемент массива
add AL,DL ;арифметическая операция сложения AL и DL
mov masC[BX],AL ;в массив С заносим значения выполненной операции
cmp masC[BX],255 ; Сравниваем массив С с числом 255
jg mark ;если да, то на метку
mov masD[BX],0
mark: mov masD[BX],1 ;записать в массив D единицу
inc BX ;заносим в ВХ уже единицу
loop cont ;повторить цикл
exit: int 20h
end start ; Конец для транслятора