MOV DL,AL ;пересылка содежмого AL в DL
ADD SI,1H ;индекс SI увеличивается на 1
MOV AL,[SI] ;пересылка в регистр AL SI-го элемента массива
CMP AL,40H ;сравнение вида AL<40H и если условие верно...
JB M7 ;... переход к метке М7
SUB AL,37H ; уменьшение AL на 30Н
JMP M8 ;безусловный переход на метку M6
M7: SUB AL,30H ; уменьшение AL на 30Н
M8: ADD DL,AL ;сложение содержимого DL и AL
ADD SI,1H ;индекс SI увеличивается на 1
MOV [DI],DX ;пересылка из DX в DI
ADD DI,2H ;индекс DI увеличивается на 2
LOOP M0 ;повторить цикл с М0
mov ax,@data ;инициализация сегмента данных
mov ds,ax
mov si,2 ;цикл по si начиная со второго элемента
mov cx,n-1 ;от 2 до 2*n-2 шаг 2 (т.к. 1число=2байта)
mov ax,mas2 ;1ый элемент в ax и в bx
mov bx,ax ;с ними будем сравнивать
cycl: cmp ax,mas2[si] ;начало цикла, сравниваем с максимальным
ja nmore ;если больше
mov ax,mas2[si] ;запоминаем значение текущего max элемента
nmore:
cmp bx,mas2[si] ;сравниваем с минимальным
jb nless ;если меньше
mov bx,mas2[si] ;запоминаем значение текущего min элемента
nless: add si,2
loop cycl ;конец цикла
mov dx,ax ;находим разность между
sub dx,bx ;максимальным и минимальным
LEA SI,MAS3 ;загрузка эффективного адреса MAS3 в SI
M20: MOV AL,DH ;пересылка в регистр AX содержимого DH
SHR AL,4H ;логический сдвиг вправо на 4 бита
CMP AL,0AH ;сравнение вида AL<0АН и если условие верно...
JB M21 ;... переход к метке М21
ADD AL,37H ;увеличение AL на 37Н
JMP M22 ;безусловный переход на метку M22
M21: ADD AL,30H ;увеличение AL на 30Н
M22: MOV [SI],AL ;пересылка из AL в SI
ADD SI,1H ;индекс SI увеличивается на 1
MOV AL,DH ;пересылка в регистр AL содержимого DH
SHL AL,4H ;логический сдвиг влево на 4 бита
SHR AL,4H ;логический сдвиг вправо на 4 бита
CMP AL,0AH ;сравнение вида AL<0АН и если условие верно...
JB M23 ;... переход к метке М23
ADD AL,37H ;увеличение AL на 37Н
JMP M24 ;безусловный переход на метку M24
M23: ADD AL,30H ;увеличение AL на 30Н
M24: MOV [SI],AL ;пересылка из AL в SI
ADD SI,1H ;индекс SI увеличивается на 1
M25: MOV AL,DL ;пересылка в регистр AL содержимого DL
SHR AL,4H ;логический сдвиг вправо на 4 бита
CMP AL,0AH ;сравнение вида AL<0АН и если условие верно...
JB M26 ;... переход к метке М26
ADD AL,37H ;увеличение AL на 37Н
JMP M27 ;безусловный переход на метку M27
M26: ADD AL,30H ;увеличение AL на 30Н
M27: MOV [SI],AL ;пересылка из AL в SI
ADD SI,1H ;индекс SI увеличивается на 1
MOV AL,DL ;пересылка в регистр AL содержимого DL
SHL AL,4H ;логический сдвиг влево на 4 бита
SHR AL,4H ;логический сдвиг вправо на 4 бита
CMP AL,0AH ;сравнение вида AL<0АН и если условие верно...
JB M28 ;... переход к метке М28
ADD AL,37H ;увеличение AL на 37Н
JMP M29 ;безусловный переход на метку M29
M28: ADD AL,30H ;увеличение AL на 30Н
M29: MOV [SI],AL ;пересылка из AL в SI
MOV AH,3CH ;открытие файла для записи
LEA DX,FOUT ;загрузка эффективного адреса файла FOUT в DX
MOV AL,01H ;режим открытия"только для записи"
INT 21H ; формирование прерывания типа 21h
MOV BX,AX ;запись в файл
MOV AH,40H
MOV CX,4H ;число записываемых байт
LEA DX,MAS3 ;загрузка эффективного адреса MAS3 в DX
INT 21H ; формирование прерывания типа 21h
MOV AH,3EH ;закрытие файла для записи
INT 21H ; формирование прерывания типа 21h
MOV AX,4C00H ; формирование функции стандартного выхода
INT 21H ; формирование прерывания типа 21h и стандартный выход
main endp ; конец процедуры main
end main ; конец программы с точкой входа main
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.