Студопедия
Главная страница | Контакты | Случайная страница

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

Исследование экономических операций

Читайте также:
  1. E) экономические законы и развитие экономических систем
  2. I. Исследование клеточных факторов неспецифической резистентности.
  3. II этап. Общее и специальное исследование гинекологической больной
  4. II. Исследование В-системы иммунитета.
  5. II. Объективное исследование (нужное подчеркнуть)
  6. IV этап – Исследование среды бизнеса
  7. IV. Исследование текущего имиджа Российского образования и науки
  8. IV. Объективное исследование
  9. V. Объективное исследование
  10. А.Исследование артерий и вен.

Программным обеспечением принято называть набор различных программ, предназначенных для определенного микропроцессора, как, впрочем, и для любого компьютера или ЭВМ. Программы, разрабо­танные и используемые для специальных целей, например программы управления технологическим оборудованием, сбора информации о ходе производственного процесса, называют прикладными (целевы­ми; пользовательскими) программами. Разработка таких программ значительно облегчается при наличии в составе системы вспомога­тельных средств — системного программного обеспечения или. опе­рационной системы.

Квалифицированный пользователь может сам разработать систем­ное программное обеспечение для создания и отлаживания своих программ. Однако большинство пользователей вынуждено ориенти­роваться только на готовое программное обеспечение, предостав­ляемое производителями микропроцессоров.

Для создания программы управления технологическими процессами может быть использован один из следующих способов:

1) программирование непосредственно в машинных кодах;

2) символическое кодирование;

3) применение машинно-ориентированного формализованного язы­ка;

4) применение проблемно- или процедурно-ориентированных алго­ритмических языков высокого уровня.

Эти способы требуют различных по сложности вспомогательных средств для разработки программ.

Первым и единственным безусловно необходимым средством, обеспечивающим программирование микропроцессоров, является сис­тема машинных команд. Совокупность машинных команд образует базовый машинный язык данного микропроцессора. Разработчик системы управления может оперировать мнемокодами и символическими адреса­ми, но затем они должны быть переведены в двоичные числа, загру­жаемые в память микропроцессорной системы. Мнемокоды совместно с директивами, используемыми только при трансляции программы, обра­зуют машинно-ориентированный язык, который называют языком ас­семблера или просто ассемблером. Программы, написанные на ассем­блере, могут непосредственно транслироваться в машинные коды. Тран­сляция может выполняться вручную или на ЭВМ с системным програм­мным обеспечением. Программа, которая транслирует написанный на ассемблере текст в машинные коды, также называется ассемблером.

Характерной особенностью. микропроцессорных систем, связан­ной с ограниченной емкостью их памяти и небольшим числом устройств ввода-вывода, является отсутствие собственного системного програм­много обеспечения для машинной разработки прикладных программ. В этом случае для разработки прикладных программ может исполь­зоваться не сама микропроцессорная система, а какая-то большая ЭВМ с обширной памятью и развитым программным обеспечением. Такой подход называют кросс-программным обеспечением.

Ранее, при рассмотрении иллюстративного микропроцессора, все команды по функциональному признаку были разделены на четыре группы: перемещения данных; обработки данных; управления програм­мой; ввода-вывода и специальные. Теперь, при рассмотрении реального микропроцессора, можно сохранить это деление, но, так как общее число команд значительно увеличилось, внутри этих групп надо сделать дальнейшее деление.

Описывая систему команд и используемой мнемоники, необходимо учитывать возможности конкретного разговорного языка для образо­вания допустимых сокращений. Конечно, тем, кто впервые сталкивается с микропроцессорами и их программированием, хочется, чтобы все мнемонические сокращения были сделаны на основе их родного языка, а не какого-нибудь иностранного. Но, например, как сократить команды ВВОД и ВЫВОД(аналогично ВХОД и ВЫХОД)? По-английски они будут IN-OUT, т. е. сразу достаточно краткими, и различаются настолько, что могут быть сокращены до одной буквы (I/O). По-русски такое сокращение, к сожалению, совершенно не­возможно.

Слову ВЫВОД (ВЫХОД) особенно не повезло, так как в командах арифметических действий и управления программой встречаются со­кращения, отличающиеся только одной буквой, например, ВЫЧесть, ВЫПолнить, ВЫЗвать и др. Разница в одной букве для трех- или че­тырехбуквенных сокращений очень часто приводит к досадным ошиб­кам и трудно обнаруживаемым опечаткам. В этом заключается одна из причин того, почему программисты часто предпочитают пользо­ваться в качестве мнемокодов сокращениями английских терминов, хотя в начальный период это может затруднить запоминание.

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

Проблема использования мнемокодов на английском языке фактически проще, чем она кажется с первого взгляда: для того чтобы программировать, иностранный язык изучать не надо, достаточно знать лишь несколько терминов, одинаково часто встречающихся в командах большинства микропроцессоров и микро-ЭВМ. Будем считать, что IN и OUT читателю уже известны, а остальные термины вместе с их переводом будут приводиться по ходу рассмотрения.

Описывая в дальнейшем систему команд, будем придерживаться следующего порядка. Для каждой команды приводится ее функция, дается перевод на английский язык и следующее из него мнемони­ческое сокращение. Далее указывается число байт команды и приво­дятся ее восьмеричный и объектный (двоичный) коды. Как правило, для 8-разрядного микропроцессора К580 адреса и коды команд при­нято давать в шестнадцатеричной системе кодирования; в частности, именно в таком виде выдается листинг (распечатка) программы после машинной трансляции. Но, как будет видно из дальнейшего, восьмеричная система дает возможность представить все команды в логически стройном, компактном и легко запоминаемом виде.

В последних столбцах дается число состояний, в которых нахо­дится центральный процессор при выполнении данной команды. Иными словами, дается число требуемых машинных тактов и тем самым время выполнения каждой команды.

В микропроцессоре К580 команды межрегистровых передач являют­ся двухадресными: в них приходится адресовать регистр — источник и регистр — получатель информации.

Регистровая мода. Основная команда в этой группе — это одно-байтовая команда перемещения данных из одного регистра в другой. В зоне операнда должны быть указаны два адреса: на первом месте — куда помешается информация, т. е. адрес получателя (приемника); на втором месте — откуда берутся данные, т. е. адрес источника. Можно сказать, что в команде указывается место назначения, в которое должны прибыть перемещаемые данные в результате операции. По-английски такое место называют destination, поэтому в сокращении команды эта часть обозначается как dst или ddd, либо D. Источник по-английски будет source, поэтому в коде операции его обозначают sre, sss или S (табл. 6.1).

При операции перемещения данных содержимое источника сохра­няется неизменным, а начальное содержимое приемника заменяется результатом операции.

В мнемонике команды указываются условные обозначения РОН, в которых находятся приемник и источник, между собой эти обозначения обязательно разделяются запятой. Например, MOV С, В означает «пе­ренести содержимое регистра В в регистр С»; содержимое регистра В остается без изменения. Когда команда транслируется в объектный код, условные обозначения регистров заменяются их двоичными номерами. Все регистры общего назначения, память и аккумулятор имеют постоян­ные номера. Когда операндами являются обозначения регистров, то, поскольку номера регистров входят в состав кода операции, одному и тому же мнемокоду соответствуют различные машинные коды. Например, машинный код операции MOV С, В будет 01001000 (48 HEX).

Для команды MOV в восьмеричном представлении первая триада, точнее два первых' бита, которые должны быть дополнены нулем, будет кодом операции, вторая триада — номером регистра-получателя, а третья — номером регистра-источника.

Команда перемещения данных является самой «богатой» по числу различных вариантов. Если перебрать в зоне операнда все воз­можные комбинации регистров, то в перечне машинных команд будет занято 64 позиции. Правда, хотя все они допустимы, часть их окажется по существу бесполезной. Например, команда MOV A, A (01111I11) предписывает переслать содержимое аккумулятора обратно в акку­мулятор.

Косвенно-регистровая мода. Если данные перемещаются в регистр из основной памяти или, наоборот, переносятся в память из регистра, то используется косвенно-регистровая мода, при которой номер регистра (источника или приемника) указывается в соответствии с табл. 6.2, а память в команде записывается кодом 110. При этом в качестве 16-разрядного адреса ячейки памяти используются данные, находящиеся в паре регистров Н и L. Например, MOV M, В — поместить содержимое регистра В в ячейку памяти, адрес которой находится в регистрах Н и L. Восьмеричный код этой операции будет 160, а машинный — 01110000 (70 HEX). Команда MOV В, М аналогична предыдущей, но перемещение информации происходит в противоположном направлении: из памяти (по адресу в регистрах Н и L) в регистр-приемник В.

Непосредственная адресация. Команды перемещения данных могут иметь непосредственное представление операнда и косвен­ную адресацию. Непосредственная адресация по-английски будет Immediate Addressing, поэтому в мнемонике команд она указывается буквой I, стоящей на последнем месте. Эти команды имеют двухбайтный формат, в результате их выполнения содержимое второго слова команды помещается в регистр, номер которого указан в поле операнда первого слова команды.

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

Команды загрузки аккумулятора и запоминания данных. По трех-байтной команде LDA в аккумулятор загружается содержимое ячейки памяти, адресуемой вторым и третьим байтами команды, а по команде запоминания STA производится противоположная передача (табл. 6.4), Все такие команды могут быть с прямой, непосредственной и кос­венной адресацией.

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

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

При косвенной адресации команды имеют однобайтный формат. При запоминании они вызывают запись содержимого аккумулятора в ячейку ОЗУ, 16-разрядный адрес которой указывается парой регистров. Это может быть не только пара Н и L, но В и С либо D И Е. При загрузке адресация делается аналогично, но данные записываются в аккумулятор. Совместное использование двух регистров по-английски будет Extended Addressing, поэтому в мнемонических сокращениях этих команд добавляется символ X. Адресация производится в соответствии с номерами регистров, но указывается только один из них, расположенный в одной строке: в командах запоминания данных — левый, а в командах загрузки — правый.

Команды загрузки указателей памяти и запоминания данных. Для загрузки начальных значений во внутренние указатели памяти (инициа­лизации) применяют трехбайтную команду с непосредственным пред­ставлением LXIrp, где гр означает регистровые пары ВС, DE, HL или указатель стека SP — Stack Pointer.

Для загрузки основного указателя памяти — регистров Н и L — из двух смежных ячеек памяти применяется команда LHLD — Load HL Direct. Запоминание содержимого регистровой пары Н и L в двух следующих друг за другом ячейках памяти осуществляется по команде SHLD — Store HL Direct. Обе эти команды трехбайтные, во втором и третьем байтах указывается полный 16-разрядный адрес ячейки, из ко­торой загружается или в которую заносится содержимое регистра L (младшего байта). Адрес содержимого регистра Н (старшего байта) получается путем прибавления 1 к значению второго и третьего байтов команды.

Команды межрегистрового обмена. Особенностью микропро­цессора К580 являются однобайтные команды передачи 16-битных операндов. Имеется специальная команда XCHG (сокращение англий­ского слова Exshange), производящая обмен содержимым регистров DE и HL:

(Н) ч—>- (D), (L) «-+ (Е).

В ряде случаев очень удобной оказывается специальная одно­байтная команда XTHL (Exchange HL):

она выполняет обмен содержимым регистров HL и двух верхних яче­ек стека, т. е. последних, загруженных в стек данных. Содержимое указателя стека при выполнении команды XTHL не изменяется. Кстати сказать, команда XTHL — самая длинная в системе команд микро­процессора К580, для ее выполнения требуется 18 машинных тактов.

Еще две команды SPHL и PCHL передают содержание регистровой пары HL соответственно в указатель стека и программный счетчик. Здесь, как и ранее, на первом месте стоит получатель информации (приемник), а на втором — источник данных. Сводка команд обмена приведена в табл. 6.6.

Команды операций со стеком. Для установки указателя стека на начальное значение используется упомянутая ранее команда

Таблица 6.6. Команды межрегистрового обмена

 

    Мнемо- Число   Объектный Число
Функция Перевод ника байт Q-код код тактов
Обменять содержи- Exchan- XCHG        
мое HL на со- ge          
держимое DE            
Обменять содержи- Exchan- XTHL        
мое HL на содер- ge HL          
жимое стека            
Переслать содер- SP HL SPHL        
жимое HL в стек            
Переслать содер- PC HL PCHL        
жимое HL в счет-            
чик команд            
Занести в стек Push PUSH   3S5 llssslOl  
Извлечь из стека Pull up POP   3D1 lldddOOl  

 

LXI SP. Благодаря такой установке в качестве стека может быть использована любая область оперативной памяти микропроцессорной системы.

Основными командами являются PUSH — занести (буквально «втолкнуть») в стек и POP (Pull up) — извлечь (вытянуть) из стека. Эти команды всегда оперируют с регистровыми парами, указанными в поле операнда команды. При выполнении команды PUSH в ячейку памяти с адресом (SP) — 1 записывается содержимое восьми старших разрядов, а в ячейку с адресом (SP) — 2 — восьми младших разрядов регистровой пары. Содержимое указателя стека уменьшится на 2, так как стек «растет вверх», в область меньших адресов. Когда выполняется команда POP rp, содержимое верхушки стека передается в младшие разряды регистровой пары, а содержимое следующей ячейки стека — в старшие разряды той же регистровой пары.

Для правильной работы стека команды PUSH и POP обяза­тельно должны быть парными. Соблюдение этого принципа ложится полностью на программиста, так как процедуры загрузки в стек и извле­чения из стека выполняются микропроцессором не автоматически, а должны быть организованы программно.

 

Исследование экономических операций

Исследование экономических операций как самостоятельное научное направле­ние возникло из потребностей наилучшей организации экономиче­ских операций, а также прогнозирования их результата при принятии руководством различных решений. Однако с течением времени стало очевидно, что подобные организационные задачи (согласования, упо­рядочения, распределения и др.) возникают и в других, самых раз­личных сферах человеческой деятельности и имеют, несмотря, на их качественное различие, сходные черты.

За выдающийся вклад в разработку теории оптимального использования ресурсов в экономике академику Л. В. Канторовичу вместе с профессором Т. Купмансом (США) в 1975 году присвоена Нобелевская премия по экономике.

Под операцией понимается система действий, объединенных общим замыслом и направленных на достижение опре­деленной цели.

Исследование операций - это научный метод, дающий в распоряжение руководите­ля количественные основания для принятия им решений, связанных с организацией и осуществлением операции.

Линейное программирование – направление математики, изучающее методы решения экстремальных задач, которые характеризуются линейной зависимостью между переменными и линейным критерием оптимальности.

Несколько слов о самом термине линейное программирование. Он требует правильного понимания. В данном случае программирование - это, конечно, не составление программ для ЭВМ. Программирование здесь должно интерпретироваться как планирование, формирование планов, разработка программы действий.

К математическим задачам линейного программирования относят исследования конкретных производственно-хозяйственных ситуаций, которые в том или ином виде интерпретируются как задачи об оптимальном использовании ограниченных ресурсов.

Круг задач, решаемых при помощи методов линейного программирования достаточно широк. Это, например:

- задача об оптимальном использовании ресурсов при производственном планировании;

- задача о смесях (планирование состава продукции);

- задача о нахождении оптимальной комбинации различных видов продукции для хранения на складах (управление товарно-материальными запасами или "задача о рюкзаке");

- транспортные задачи (анализ размещения предприятия, перемещение грузов).

Линейное программирование – наиболее разработанный и широко применяемый раздел математического программирования (кроме того, сюда относят: целочисленное, динамическое, нелинейное, параметрическое программирование). Это объясняется следующим:

- математические модели большого числа экономических задач линейны относительно искомых переменных;

- данный тип задач в настоящее время наиболее изучен. Для него разработаны специальные методы, с помощью которых эти задачи решаются, и соответствующие программы для ЭВМ;

- многие задачи линейного программирования, будучи решенными, нашли широкое применение;

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

Экономико-математическая модель любой задачи линейного программирования включает: целевую функцию, оптимальное значение которой (максимум или минимум) требуется отыскать; ограничения в виде системы линейных уравнений или неравенств; требование неотрицательности переменных.




Дата добавления: 2014-12-15; просмотров: 105 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (1.718 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав