Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по МО.doc
Скачиваний:
48
Добавлен:
01.06.2015
Размер:
353.79 Кб
Скачать

3. Пример выполнения работы

Дан массив из десяти слов, содержащих целые числа. Требу­ется найти максимальное значение.

Текст программы:

model SMALL

stack 100h

dataseg

MAX dw ?

MASS dw 10h,20h,30h,5h,40h,15h,20h,70h,35h,34h

codeseg

startupcode

lea BX, MASS ; Загрузить адрес массива

mov CX, 10 ; Установить счетчик

mov AX, [BX] ; Первый элемент массива в аккумулятор

BEG: cmp [BX], AX ; Сравнить текущий элемент массива с макс.

jl NO ; он меньше

mov AX, [BX] ; он больше

NO: add BX, 2 ; Следующий элемент массива

loop BEG ;

mov MAX, AX

;Конец работы

QUIT: exitcode 0

end

4. Варианты заданий

Дан массив из десяти целых знаковых чисел (слов или байтов). Требуется:

  1. Найти количество отрицательных чисел. Массив байтов.

  2. Найти суммы всех положительных и отрицательных чисел. Массив слов.

  3. Найти среднее арифметическое чисел. Массив слов.

  4. Найти количество чисел больших 10h. Массив слов.

  5. Найти сумму абсолютных величин. Массив байтов.

  6. Найти количество положительных чисел. Массив слов.

  7. Поменять местами пары соседних чисел. Массив слов.

  8. Переставить числа в обратном порядке. Массив байтов.

  9. Заменить все отрицательные числа нулями. Массив слов.

5. Контрольные вопросы

  1. Для чего нужен оператор ptr ?

  2. В чем отличие команд mov AX, offset MASS и lea AX, MASS ?

  3. В чем отличие команд mov AX, BX и mov AX, [BX] ?

  4. В чем отличие команд mov AX, [BP] и mov AX, [BX] ?

  5. В чем отличие команд mov AX, [BX+2] и mov AX, [BX]+2 ?

  6. В чем отличие команд mov AX, [BX][SI] и mov AX, [SI][BX] ?

  7. Для организации каких вычислений служат команды loop, loope, loopne ?

  8. Модифицирует ли какие-нибудь регистры команда loop ?

  9. Можно ли организовать цикл по счетчику, не используя loop команды?

  10. Можно ли организовать цикл while с помощью одной из loop команд?

Лабораторная работа

4

Логические команды1. Цель работы

Цель настоящей работы – освоение логических команд.

2. Основные сведения

2.1. Логические команды

К логическим командам или точнее командам, оперирующим с отдельными битами, можно отнести команды, приведенные ниже, а также команды сдвигов.

МНЕМОКОД

OSZAPC

ДЕЙСТВИЕ

and DST, SRC

xxxxxx

поразрядное И, DSTDST & SRC

or DST, SRC

xxxxxx

поразрядное ИЛИ, DSTDST V SRC

xor DST, SRC

xxxxxx

поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ, DSTDSTSRC

test DST, SRC

xxxxxx

поразрядное И без запоминания результата

not OPND

xxxxx-

поразрядная инверсия, OPND ~OPND

2.2. Примеры использования логических команд

Установить 3 и 0 биты в регистре AL, остальные биты не изменять

or AL, 00001001b .

Сбросить 4 и 6 биты в регистре AL, остальные биты не изменять

and AL, 10101111b .

Проинвертировать 4 и 2 биты в регистре AL, остальные биты не изменять

xor AL, 00010100b .

Перейти на метку LAB, если установлен 4 бит регистра AL, в противном случае продолжить выполнение программы

test AL, 00010000b jnz LAB; продолжаем ... LAB:

Посчитать число единиц в байте – регистре AL

mov CX, 8 xor BX, BX LL: shl AL, 1 jnc NO inc BX NO: loop LL