Всего на сайте:
248 тыс. 773 статей

Главная | Информатика

Разветвления в программах  Просмотрен 229

Одно из наиболее мощных свойств компьютеров заключается в их способности принимать решения в ходе выполнения программы. Эти решения принимаются в зависимости от простых условий, сложившихся на данный момент. Обычно в результате принятия реше­ния либо сохраняется последовательный порядок выполнения прог­раммы, либо происходит переход на другую часть программы. Слож­ные решения реализуются в виде нескольких простых разветвлений. Чтобы пояснить сказанное, рассмотрим программу, которая вы­бирает наибольшее из трех 8-битовых целых положительных чисел х, у и z. Сначала определяется наибольшее из двух чисел х и у путем вычитания второго из первого и проверки заема в старший разряд. Отсутствие заема говорит о том, что х больше или равен у. С другой стороны, присутствие такого заема означает, что у больше х. Затем аналогичным образом отыскивается наибольшее из двух чисел: z и найденного ранее наибольшего из х и у.

На рис. 5.1. описанная выше процедура представлена в виде ди­аграммы. Такие диаграммы называются блок-схемами. Они весьма удобны для построения схемы вычисленного процесса.

Программа, решающая нашу задачу, приведена в табл. 5.2. Пред­полагается, что три исходных числа х, у и z расположены в ячейках 001В, 001С и 001D.

Программа должна поместить наибольшее число в аккумулятор. Первая команда программы загружает х в аккумуля­тор, а вторая помещает у в общий регистр 1. Затем осуществляется их сравнение путем вычитания уиз х. Если у строго больше х, тогда возникает заем в старший разряд, который сохраняется в виде еди­ницы в триггере переноса С. Однако еще до проверки переноса С значение х как «пробное» наибольшее из х и у загружается в регистр 2. Эта загрузка не влияет на состояние триггера переноса С.

 

 

Рис. 5.1. Блок-схема программы выбора наибольшего из трех положительных чисел x, y и z

 

 

Таблица 5.2

Предыдущая статья:Программирование на машинном языке Следующая статья:Программа отыскания наибольшего из трех 8-битовых целых чисел без знаков х, у и z
page speed (0.0114 sec, direct)