INT 21H ; формирование прерывания типа 21h
MOV AH,3EH ;закрытие файла для чтения
INT 21H ; формирование прерывания типа 21h
MOV CX,0AH ;преобразование из ASCII кода
LEA SI,MAS1 ;загрузка эффективного адреса MAS1 в регистр SI
LEA DI,MAS2 ;загрузка эффективного адреса MAS2 в регистр DI
M0: MOV AL,[SI] ;пересылка в регистр AL SI-го элемента массива
CMP AL,40H ;сравнение вида AL<40H и если условие верно...
JB M1 ;... переход к метке М1
SUB AL,37H ;в противном случае уменьшение AL на 37Н
JMP M2 ;безусловный переход на метку M2
M1: SUB AL,30H ; уменьшение AL на 30Н
M2: SHL AL,4H ;логический сдвиг влево на 4 бита
MOV DH,AL ;пересылка содежмого AL в DH
ADD SI,1H ;индекс SI увеличивается на 1
MOV AL,[SI] ;пересылка в регистр AL SI-го элемента массива
CMP AL,40H ;сравнение вида AL<40H и если условие верно...
JB M3 ;... переход к метке М3
SUB AL,37H ;в противном случае уменьшение AL на 37Н
JMP M4 ;безусловный переход на метку M4
M3: SUB AL,30H ; уменьшение AL на 30Н
M4: ADD DH,AL ;сложение содержимого DH и AL
ADD SI,1H ;индекс SI увеличивается на 1
MOV AL,[SI] ;пересылка в регистр AL SI-го элемента массива
CMP AL,40H ;сравнение вида AL<40H и если условие верно...
JB M5 ;... переход к метке М5
SUB AL,37H ; уменьшение AL на 30Н
JMP M6 ;безусловный переход на метку M6
M5: SUB AL,30H ; уменьшение AL на 30Н
M6: SHL AL,4H ;логический сдвиг влево на 4 бита
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 dx,MAS2 ;1ый элемент в dx, с ним будем сравнивать
mov bl,1 ;счетчик номера текущего элемента
mov bh,1 ;номер минимального элемента до текущего
cycl: inc bl ;начало цикла
cmp dx,MAS2[si] ;сравниваем
jb nless ;если dx меньше
mov bh,bl ;если dx не меньше, запоминаем номер
mov dx,MAS2[si] ;этого элемента и его значение
nless: add si,2
loop cycl ;конец цикла
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Н
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.