
- •Для бакалавров, обучающихся по направлению 230400
- •2. Регистры
- •2.1. Регистр флагов
- •2.2. Регистры общего назначения
- •2.3. Индексные регистры
- •2.4. Регистры - указатели
- •2.5. Указатель инструкций
- •2.6. Сегментные регистры
- •3. Вывод символов на экран
- •Int 21h ; завершить программу
- •4. Метки
- •5. Операнды
- •5.1. Регистровые операнды
- •5.2. Постоянные операнды
- •6. Работа со стеком
- •7. Арифметические операции
- •8. Пример прикладной программы
- •9. Задания
- •10. Контрольные вопросы
8. Пример прикладной программы
В массиве чисел из пяти элементов нужно поменять местами максимальный и минимальный элементы. Программа:
.model small
.stack 100h
.data
vs db 5 dup(' '),'$'
.code
mov ax,@data
mov ds,ax
lea di,vs
mov cl,5
mov ah,1
c1: int 21h
; Введено пять элементов массива
and al,0fh
mov [di],al
inc di
loop c1
dec di
mov al,[di]
mov dl,[di]
mov si,4
mov bx,4
mov cx,4
c2: dec di
cmp al,[di]
ja pb
cmp dl,[di]
jb pm
jmp cc
pb: mov al,[di]
mov si,cx
dec si
jmp cc
pm: mov dl,[di]
mov bx,cx
dec bx
cc: loop c2
; Замена максимального и минимального элементов
mov vs[si],dl
mov vs[bx],al
lea di,vs+4
mov cl,5
c3: mov al,[di]
or al,30h
mov [di],al
dec di
loop c3
; Вывод измененного массива
mov dx,10
mov ah,2
int 21h
mov dx,di
mov ah,9
int 21h
mov ah,4ch
int 21h
end
9. Задания
1. В массиве из десяти элементов найти максимальный элемент и его индекс.
2. В массиве из восьми элементов найти минимальный элемент и его индекс.
3. В массиве из двадцати элементов найти максимальный элемент из четных.
4. В массиве из пятнадцати элементов найти минимальный элемент из нечетных.
5. Определить, является ли последовательность введенных чисел возрастающей.
6. Определить количество элементов, кратных трем, в массиве из десяти элементов.
7. В массиве из семнадцати элементов определить количество элементов, кратных пяти, имеющих нечетный индекс.
10. Контрольные вопросы
1.Что такое сегментация памяти?
2. Из чего состоит микропроцессор?
3. Какие существуют группы регистров микропроцессора?
4. Как работают регистры общего назначения?
5. Как работают регистры – указатели?
6. Как работают индексные регистры?
7. Как используются сегментные регистры?
8. Для чего используется регистр флагов?
9. По какому принципу устроена стековая память?
10. Как организован ввод-вывод данных в программе на ассемблере?
11. Как работает операция умножения операндов?
12. Как работает операция деления операндов?