Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОЦЕС ПІДГОТОВКИ І РІШЕННЯ ЗАДАЧІ НА ЕОМ.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

3.2 Приклади складання бса і програм

Приклад 1

Скласти 10010 чисел в елементах пам'яті. Початкова адреса масиву "0".

Адреса йдуть через "2". Аби скласти 10010 чисел в програмі необхідно 10010 кроків. Кожен крок це 2 адреси (адресація побайтна). Адреси вказуються у вісімковому форматі. Таким чином 10010=1448 кроків. Отже адрес 1448 2=3108.

Таблиця 3.1- Тексту програми перевірки

Адреси

Код

Мнемокод

Примітка

1

2

3

4

000200

5001

CLR R1

Очищення змісту адреси

000202

5000

CLR R0

Очищення лічильника суми

000204

62100

ADD (R1)+R0

Додавання змісту комірки, адреса якої в R1 з R0

000206

022701

CMP #310, R1

Порівняння кінцевої адреси з потоковою

000210

310

000212

001374

BNE 236(-4)

Перехід, якщо ?0

000214

0

HALT

Останов

Приклад 2.

Очистити зміст 10010 елементів пам'яті . Початкова адреса "0"

10010=1448

Таблиця 3.1- Тексту програми перевірки

Адреси

Код

Мнемокод

Примітка

1

2

3

4

000200

5001

CLR R1

Очищення регістра під формування адреси комірки

000202

5000

CLR R0

Очищення регістра під лічильник проходів

000204

5021

CLR (R1)+

Очищення змісту адреси

000206

5200

INC R0

Додавання до лічильника проходів

000210

022701

CMP #144, R0

Порівняння кінцевої адреси з потоковою

000212

144

000214

001373

BNE (-5)

Перехід, якщо ?0

000216

0

HALT

Останов

Приклад 3

Знайти в масиві 10010 елементів пам'яті перше число "0". Початкова адреса "0"

Таблиця 3.1- Тексту програми перевірки

Адреси

Код

Мнемокод

Примітка

1

2

3

4

000200

5001

CLR R1

Очищення змісту адреси

000202

5000

CLR R0

Очищення лічильника суми

000204

012700

MOV#144,R0

Встановлення кількості проходів в лічильник проходів

000206

144

000210

022721

CMP #0 (R1)+

Пошук "0" в поточній комірці

000212

0

000214

001405

BEQ =0 (+5)

Перехід, якщо =0 за адресою 230

000216

005300

DEC R0

Віднімання "1" з регістра лічильника проходів

000220

022700

CMP #0, R0

000222

0

000224

001371

BNE (-7)

Перехід, якщо ?0 за адресою 210

000226

0

HALT 1

Останов 1 "0" в масиві відсутній

000230

0

HALT 2

Останов 2 "0" знайдено

Різниця між HALT 1 і HALT 2 полягає в тому, що на екран у результаті виконання команди HALT виводиться зміст РСЧК а але буде різне для HALT 1- 230, а для HALT 2-216

Приклад 4

Порівняти вміст двох масивів пам'яті. Один масив має початковий адрес 1000, другий 2000. Обоє масиву мають однаковий об'єм 4008 (1400 початкова адреса , 2400 кінцева адреса) і в разі рівності зробити останов.

Таблиця 3.1- Тексту програми перевірки

Адреси

Код

Мнемокод

Примітка

1

2

3

4

000200

012700

MOV #1000, R0

Встановлення початкової адреси М1

000202

1000

000204

012701

MOV#2000,R1

Встановлення початкової адреси М2

000206

2000

000210

022021

CMP (R0)+, (R1)+

Порівняння змісту комірок М1 та М2

000212

001401

BEQ =0 (+1)

Перехід, якщо =0 зміст комірок збігається

000214

0

HALT 1

Останов як, що зміст комірок не збігається

000216

022700

CMP#1400,R0

Контроль кінцевої адреси М1

000220

1400

000222

001372

BNE (- 6)

Перехід, якщо ?0 за адресою 210

000224

0

HALT 2

Останов як, що зміст комірок збігається