Поиск индекса последнего минимального элемента в массиве. Прокомментировать код - Assembler
Формулировка задачи:
Решение задачи: «Поиск индекса последнего минимального элемента в массиве. Прокомментировать код»
textual
Листинг программы
.286; модель процессора Интел 80283 .model small; модель памяти для создания ЕХЕ-файлов .stack 100h; под область стэка отвели 256 байт .data ;начало сегмента данных mas db 3,2,24,16; массив a dw ?;место под максимальный элемент len = 5; длина массива .code start: mov ax,@data; настроили сегмент данных mov ds,ax mov cx,len ;в cx заносим длину массива mov al,mas[0] ;заносим первый элемент массива в al mov si,1 ; SI=1 start2: cmp mas[si],al ;сравниваем очередной элемент массива с максимальным jg next ; если элемент меньше текущего максимума переход на метку next mov al,mas[si]; заносим в AL очередной максимальный элнмент mov a,si ;в "а" заносим индекс максимального элемента next: inc si ;переход к следующему элементу loop start2 ;цикл выполняется пока cx=0 mov ah,1; ждем нажатия на клавиатуру int 21h mov ah,4Ch ; выходим из программы int 21h end start
Объяснение кода листинга программы
- .286 - модель процессора Интел 80283
- .model small - модель памяти для создания ЕХЕ-файлов
- .stack 100h - под область стэка отвели 256 байт
- .data - начало сегмента данных
- mas db 3,2,24,16 - массив
- a dw ? - место под максимальный элемент
- len = 5 - длина массива
- mov ax,@data - настроили сегмент данных
- mov ds,ax
- mov cx,len - в cx заносим длину массива
- mov al,mas[0] - заносим первый элемент массива в al
- mov si,1 - SI=1
- start2: cmp mas[si],al - сравниваем очередной элемент массива с максимальным
- jg next - если элемент меньше текущего максимума переход на метку next
- mov al,mas[si] - заносим в AL очередной максимальный элемент
- mov a,si - в
азаносим индекс максимального элемента - inc si - переход к следующему элементу
- loop start2 - цикл выполняется пока cx=0
- mov ah,1 - ждем нажатия на клавиатуру
- int 21h
- mov ah,4Ch - выходим из программы
- int 21h