Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






Программа отыскания наибольшего из трех 8-битовых целых чисел без знаков х, у и z




Ячейка памяти Команда на машин­ном языке Команда в сим­волической форме Комментарий
    LDR 0 Передача х. из памяти в аккумулятор
       
   
    LDR 1 Передача у из памяти в регистр 1
       
  1C 1C  
  А1 SUB 1 Вычитание у из х. Триггер С устанавливается, если у > х
    LDR 2 Передача х в регистр 2 как возможного наибольшего
       
  1B  
000А JCZ Проверка С на наличие заема. Если нет заема, то х
000В     больше у, и следующая команда пропускается
000С      
000D   LDR 2 Передача у в регистр 2, замещающая х
000Е     если у больше х
000F 1C 1C  
    LDR 1 Передача z из памяти в регистр 1
       
  1D 1D  
    MOV 0 from 2 Передача наибольшего из х, у на аккумулятор из регистра 2
  А1 SUB 1 Вычитание z из наибольшего среди х, у.
      С устанавливается, если z больше
    MOV 0 from 2 Передача наибольшего из х, у в аккумулятор как возможного наибольшего
  JCZ Проверка С на наличие заема. Если заем есть,
      то z больше; в противном случае следующая команда
  1A опускается
    MOV 0 from 1 Передача z в аккумулятор как наибольшего
001 А FA HLT Останов программы. Наибольшее число в аккумуляторе
001В     Число х
001С     Число у
001D     Число z

Затем выполняется команда условного перехода по значению С. Переход произойдет, если С имеет нулевое значение. Если С не равно нулю, то претендент на роль наибольшего, т. е. х, заменяется на у. Это делает следующая команда, которая загружает у в регистр 2. Если С=0, то управление передается на команду, хранящуюся в ячей­ке 0010, и в этом случае в качестве большего значения остается х. При любом варианте в этой точке программы наибольшее значение из х и у находится в регистре 2, и оно будет аналогичным образом срав­ниваться сz.

Значение z передается из памяти в регистр 1 командой LDR, нахо­дящейся в ячейке 0010. Следующая команда передает наибольшее значение из х и у в аккумулятор. Затем осуществляется сравнение путем вычитания z из содержимого аккумулятора. Если z больше, то возникает заем. Наибольшее из х и у переносится из регистра 2 в аккумулятор на случай, если z окажется меньше. Затем снова про­веряется состояние триггера С командой JCZ. Если С=0, что говорит об отсутствии заема, то делается переход на команду останова. В про­тивном случае выполняется очередная команда, загружающая в ак­кумулятор значение z, и после нее — команда останова. При всех условиях и конечном итоге на сумматоре оказывается значение наи­большего из трех чисел х, у и z.

Вообще говоря, принятие решения сводится к организации такой проверки, такого теста, по результатам которого можно было бы выб­рать ту или иную последовательность действий. Наличие команд ус­ловного перехода позволяет микропроцессору выбрать нужную аль­тернативу автоматически, без вмешательства человека. При этом зада­ча программиста — обеспечить, чтобы микропроцессор выполнял нужные действия при любом исходе теста.


Данная страница нарушает авторские права?


mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал