Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн пособ по арх и прогр МП.doc
Скачиваний:
64
Добавлен:
10.12.2013
Размер:
1.59 Mб
Скачать

12.3. Контрольные задания

1.Дано 4-х-значное число. Найти сумму цифр.

2.Дано 2-х значное число. Определить, равен ли квадрат этого числа кубу суммы цифр.

3.Дана последовательность из 8-ми чисел. Найти среднее арифметическое (используйте косвенную регистровую адресацию).

4.Дан массив из 10 элементов. Вычислить разность между максимальным и минимальным элементами (используйте адресацию по базе).

5.Даны буквы, коды ASCII которых находятся в CHAR, CHAR+1 и CHAR+2. Напишите программу, которая упорядочивает их в алфавитном порядке.

6.Дан массив Х[1..М]. Подсчитать количество положительных, нулевых и отрицательных элементов (используйте прямую адресацию с индексированием).

7.Дан массив Х[1..М]. Вычислить сумму элементов, удовлетворяющих условию A<=X[i]<=B (используйте адресацию по базе с индексированием).

8.Дан массив P[0..k]. Определить сколько элементов удовлетворяют неравенству A<P[i]<B (используйте косвенную регистровую адресацию).

9.Даны два массива А[1..М], В[1..М]. Переписать содержимое массива А[1..М] в обратном порядке в массив В[1..М]. Для решения использовать стек. (Используйте прямую адресацию с индексированием).

10.Задана последовательность из 10 чисел. Проверить является ли вторая половина последовательности зеркальным отражением первой (например: 1234554321) и получить в аккумуляторе 0 в этом случае, иначе получить в аккумуляторе количество несовпадающих элементов. Для решения использовать стек. (Используйте косвенную регистровую адресацию).

11.Написать программу перевода числа из шестнадцатеричного представления в десятичное.

12.Написать программу перевода числа из десятичного представления в шестнадцатеричное.

13. Дано десятичное число, записанное в виде строки ASCII-символов. преобразовать эту строку в двоичное число.

14.Преобразовать значение регистра АХ в строку ASCII-кодов.

15. Написать программу замены строчных букв на заглавные.

16. Напишите программу для вычисления 12 чисел Фибоначчи: 1, 1, 2, 3, 5, 8, 13...(каждое число в последовательности представляет собой сумму двух предыдущих чисел). Для организации цикла используйте команду LOOP. Выполнить трассировку в Turbo Debugger.

17. Написать программу, которая, используя команды сдвига, пересылки и сложения, осуществляет умножение содержимого АХ на 10.

18.Дан массив Х[1..М]. Отсортировать его по возрастанию. Каждый элемент проверять на равенство нулю. Если элемент равен нулю, то заменить его на число 5.

Тема 13. Связь ассемблера с языкомPascal.

13.1 Общие положения

Существуют следующие формы комбинирования программ на языках высокого уровня с ассемблером:

 Использование операторов типа inline и ассемблерных вставок. Эта формасильно зависит от синтаксиса языка высокого уровня и конкретного компилятора. Она предполагает, что ассемблерные коды в виде команд ассемблера или прямо в машинных командах вставляются в текст программы на языке высокого уровня. Компилятор языка распознает их как команды ассемблера (машинные коды) и без изменений включает в формируемый им объектный код. Эта форма удобна, если надо вставить небольшой фрагмент.

 Использование внешних процедур и функций. Это более универсальная форма комбинирования. У нее есть ряд преимуществ:

  • написание и отладку программ можно производить независимо;

  • написанные подпрограммы можно использовать в других проектах;

  • облегчаются модификация и сопровождение подпрограмм в течение жизненного цикла проекта.