АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Задания 1. Составить два варианта программы без подпрограмм и с подпрограммой

Читайте также:
  1. I. Задания для самостоятельной работы
  2. I. Задания для самостоятельной работы
  3. II. Различные задания, которые могут использоваться на семинарских занятиях для проверки индивидуальных знаний.
  4. III. Задания для работы в малых группах.
  5. III. Задания для самостоятельной работы
  6. Аналитические задания модуля 2
  7. Вторая часть. Задания, оцениваемые в 3 балла.
  8. Второй уровень трудности (задания средней трудности)
  9. Выбор и утверждение темы. Оформление задания на дипломное проектирование
  10. Выполнение творческого домашнего задания «Психологические особенности семей, воспитывающих детей с умственной отсталостью»
  11. Выявление дисфункционального отношения к домашним заданиям.
  12. Данные для выполнения задания

Составить два варианта программы без подпрограмм и с подпрограммой.

1. Разработайте программу сортировки массива по возрастанию.

2. Разработайте программу сортировки массива по убыванию.

3. Реализуйте на ассемблере BASIC-программу:

10 LET A=7

20 FOR B=2 TO 9

30 IF B<4 THEN GO SUB 60

40 NEXT B

50 GO TO 80

60 LET A=A+B

70 RETURN

80 STOP

4. Разработайте программу подсчета количества ячеек памяти со значениями, отличными от 38h.

5. Напишите программу подсчета количества ячеек памяти, значения которых меньше или равны A3h.

6. Разработайте программу подсчета количества отрицательных и положительных чисел, при этом считать, что ноль – положительное число.

7. Напишите подпрограмму вычисления чисел Фибоначчи.

Алгоритм:

А1=1; А2=1

Аi =Ai-2+Ai-1.

8. Пусть в памяти находится строка, оканчивающаяся нулем. Разработайте подпрограмму подсчета длины строки.

 

Индивидуальные задания 2

1. Написать программу, вычисляющую 20 значений массива А по формуле А[i]=7*i + 5; i = 0...19.

Полученный массив записать в РПД, начиная с адреса 40Н.

2. Написать подпрограмму, копирующую в цикле 10 байт из РПД, наложенных на маску 1001100lb, начиная с адреса 50Н, во внешнюю память данных (ВПД), начиная с адреса С200Н. В программе осуществить вызов этой процедуры и возврат из нее.

3. Написать подпрограмму, сканирующую в цикле состояние регистров R0-R7 текущего регистрового банка. Если значение регистра равно нулю - соответствующий

номеру регистра бит аккумулятор тоже сбрасывается. Если регистр не равен нулю - в

 

;Таблица векторов переходов

TABLE: DB ROUT0; Начальный адрес программы ROUT0

DB ROUT1

DB ROUT2

DB ROUTF; Начальный адрес программы ROUTF

 

Последовательная передача параметров

Если подпрограмма вызывается часто, то наиболее эффективным программным способом передачи параметров является последовательный. Константы в этом случае являются частью программного кода и следуют непосредственно за инструкцией вызова подпрограммы. По адресу возврата в стеке подпрограмма определяет место расположения параметров для последующего считывания.

Например, подпрограмма LINE выполняет сложение 16-разрядной упакованной двоично-десятичной константы с двухбайтной двоично-десятичной переменной, хранящейся во внутренней памяти ЗУ, и запоминает сумму в другом двухбайтном буфере. В подпрограмму должны передаваться константа и оба адреса буферов. Вместо использования для этих целей четырех рабочих регистров используются 4 байта в памяти программ, следующих за командой вызова подпрограммы.

В приведенном ниже примере подпрограмма осуществляет сложение десятичной константы 1234 с содержимым адреса внутренней памяти 56Н и записывает результат в буфер по адресу 78Н. Подпрограмма LINE определяет, из какой точки был осуществлен ее вызов путем извлечения из стека адреса возврата в старший и младший байты указателя данных.

Инструкция MOVC затем считывает параметры из памяти программы по мере необходимости.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)