Федеральное государственное образовательное учреждение
высшего профессионального образования
СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ
Кафедра: «Радиотехника»
Лабораторная работа №2
Выполнил:
Студент гр. Р54-4
Федосеев Е.В.
Проверил:
Тронин О. А.
Красноярск 2007
Задание: Найти максимальное значение в массиве 10 двухбайтных чисел.
Текст программы 1:
model small ;директива модели памяти model с параметром small
.data ; упрощенная директива сегмента данных
MAS1 DW 20 DUP(0) ; выделение памяти под 20-элементный массив
MAS2 DW 10 DUP(0) ; выделение памяти под 10-элементный массив
MAS3 DB 5 DUP(0) ; выделение памяти под 5-элементный массив
ENTS DB 4 DUP(0) ; выделение памяти под 4-элементный массив
FIN DB 'in.txt',00H ;определение файла источника
FOUT DB 'OUT.TXT',00H ;определение файла приемника
.code ; упрощенная директива сегмента кода
main proc ; начало процедуры main
mov ax,@data ; инициализация сегментного...
mov ds,ax ; ...регистра ds
MOV AH,3DH ;открытие файла
MOV AL,00H ;режим открытия"только для чтения"
LEA DX,FIN ;загрузка эффективного адреса файла FIN в DX
INT 21H ; формирование прерывания типа 21h
MOV BX,AX ;чтение из файла
MOV AH,3FH
MOV CX,28H ;число байтов
LEA DX,MAS1 ;загрузка эффективного адреса файла MAS1 в DX
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
LEA SI,MAS2 ;загрузка эффективного адреса MAS2 в SI
MOV CX,9 ;пересылка в CX числа 9
MOV AX,[SI] ;пересылка в регистр AX SI-го элемента массива
ADD SI,2 ;индекс SI увеличивается на 2
M9: MOV BX,[SI] ;пересылка в регистр AX SI-го элемента массива
ADD SI,2 ;индекс SI увеличивается на 2
CMP AX,BX ;сравнение вида AX<BX и если условие верно...
JB M10 ;... переход к метке М10
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.