Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка программы на Ассемблере

Тип Реферат
Предмет Информатика и программирование
Просмотров
1490
Размер файла
184 б
Поделиться

Ознакомительный фрагмент работы:

Разработка программы на Ассемблере

Кыргызский Государственный НациональныйУниверситет

ИнститутИнтеграции Международных Образовательных программ

Кыргызско-АмериканскийФакультет Компьютерных Информационных Систем и ИНТЕРНЕТ (КАФ-ИНТЕРНЕТ)

Курсовой проект

(Организация ЭВМ)

тема

Разработка программы на Ассемблере.

Выполнили: студенты группы КИС 2 – 98

Вершинин АА Исманов АА

Проверил: преподаватель Кочетов ОП


Бишкек 2001

СОДЕРЖАНИЕ

ВВЕДЕНИЕ…………………………………………………………………3

АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ………………...4

ФОРМАТ КОМАНДИ ИХ КЛАССИФИКАЦИЯ ………………………….5

НЕКОТОРЫЕОПЕРАТОРЫ, ПРЕДОПРЕДЕЛЁННЫЕ ИМЕНА, ДИРЕКТИВЫ И КОМАНДЫ   АССЕМБЛЕРА80X86(8088) ……………..7

КОМАНДЫПЕРЕСЫЛКИ …………………………………………………11

АРИФМЕТИЧЕСКИЕКОМАНДЫ ………………………………………..12

ЛОГИЧЕСКИЕКОМАНДЫ И КОМАНДЫ СДВИГА …………………...14

КОМАНДЫУПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ …………………18

ПРИМЕЧАНИЯ………………………………………………………………20

ОБЩИЙ РАЗДЕЛ…………………………………………………………21

1.1.       Технико-математическоеописание задачи……….………………….21

1.2.       Требованияк функциональным характеристикам…………………..23

1.3.       Требованияк техническим и программным средствам………….… 25

1.3.1.    Обоснованиявыбора языка программирования……………………. 26

СПЕЦИАЛЬНЫЙ РАЗДЕЛ……………………………………………………………….... 28

2.1. Постановказадачи……………………………………………………..  28

2.2. Описание структурыпрограммы……………………………….…..…  30

2.3. Описание алгоритмарешения задачи………………………….……….32

2.4. Отладка итестирование……………………………………….……….  34

2.5. Инструкция кпользователю………………………………….………..  35

2.6. Заключение орезультатах проектируемой задачи………….………..  36

ПРИЛОЖЕНИЕ 1 (Системысчисления)…………………………………..  37

ПРИЛОЖЕНИЕ 2 (Структурнаясхема микропроцессора)..……………..  44

ПРИЛОЖЕНИЕ 3 (Основныеположения алгебры логики)…….………..  59

СПИСОК ЛИТЕРАТУРЫ…………………………………………….…. 30

ВВЕДЕНИЕ

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

В связи с этим такжестремительно развивался и рынок программных тестирующих средств. На рынкесуществует огромное количество отличных диагностических программ, написанныхбольшими корпорациями: такими как Symantec inc., APS (Advanced Personal Systems), Microsoft и т.д., но всесуществующие диагностирующие программы написаны на языках высокого уровня, азначит не достаточно быстры и надёжны.

Автор проекта не берётсяконкурировать с огромными гигантами по количеству выполняемых этими программамитестов в силу того, что это бессмысленно. Была предпринята попытка написатьболее надежную, быструю диагностическую программу с использованиеммашинно-ориентированного языка программирования – Ассемблер.

 

 

АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ.

Язык программированиянаиболее полно учитывающий особенности "родного" микропроцессора исодержащий мнемонические обозначения машинных команд называется Ассемблером. Программа, написанная на Ассемблереназывается исходной программой. Далее остановимся на версии, называемой ТурбоАссемблер.

Разработка программы наАссемблере состоит из следующих этапов:

  • 1) Составление алгоритма в виде блок-схемы или структурного описания,
  • 2) Ввод в ЭВМ текста исходной программы PROG.ASM с помощью редактора текстов. Имя PROG может быть произвольным, а расширение ASM - обязательно,
  • 3) Перевод (трансляция или ассемблирование) исходной программы в машинные коды с помощью транслятора TASM.EXE. На этом этапе получается промежуточный продукт PROG.OBJ (объектный код). Выявленные при этом синтаксические и орфографические ошибки исправляются повтором пп.2 и 3,
  • 4) Преобразование с помощью программы TLINK.EXE объектного кода PROG.OBJ в выполнимый код PROG.EXE или PROG.COM.
  • 5) Выполнение программы и ее отладка начиная с п.1, если встретились логические ошибки.

Текст  программы на Ассемблересодержит следующие операции:

  • а) команды или инструкции,
  • б) директивы или псевдооператоры,
  • в) операторы,
  • г) предопределенные имена.

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

ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ

Инструкция записывается наотдельной строке и включает до четырех полей, необязательные из которыхвыделены [ ]:

[метка:] мнемоника_команды [операнд(ы)] [;комментарий]

Метка или символическийадрес содержит до 31символа из букв цифр и знаков ? @ . _ $. Причем цифра не должна стоять первой,а точка, если есть должна быть первой.

Мнемоника - сокращенноеобозначение кода операции (КОП) команды, например мнемоника ADD обозначает сложение (addition).

Операндами могут быть явно илинеявно задаваемые двоичные наборы, над которыми производятся операции.Операндыприводятся в одной из четырех систем счисления и должны оканчиваться символомb(B), o(O), d(D), h(H) для 2, 8, 10 или 16-ной СС. К шестнадцатиричному числудобавляется слева ноль, если оно начинается с буквы.

Система команд может бытьклассифицирована по трем основным признакам -

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

Для МП 1810ВМ86 (8086) командазанимает от одного до шести байтов. Первым байтом команды всегда является кодоперации, например код команды INT XXh равен CD(HEX).

По функциональному признаку инструкцииможно разбить на пять больших групп:

  • 1) команды пересылки данных,
  • 2) арифметические команды,
  • 3) логические команды,
  • 4) команды переходов и
  • 5) команды управления.

Существует пять основных способовадресации:

  • регистровая,
  • непосредственная,
  • прямая,
  • косвенная и
  • стековая.

Большинство остальных способовадресации являются комбинациями или видоизменениями перечисленнных.

В первом случае операнд(ы) располагаютсяв регистрах микропроцессора (МП), например по команде MOV AX,CXпересылается содержимое CX в AX.

При непосредственнойадресации операнд располагается в памяти непосредственно за КОП,инструкция MOV AL,0f5h записывает число 245(f5) в регистр AL.

В случае прямой адресацииза КОП следует не сам операнд, а адрес ячейки памяти или внешнего устройства,например команда IN AL,40h вводит байт данных из внешнего устройства с адресом40h.

Косвенная адресация отличается от регистровой тем, что врегистре хранится адрес операнда, т.е. по команде MOV AL,[BX] в аккумулятор alбудет записано число из ячейки памяти с адресом, хранящимся в регистре BX.

Стековая адресация производится к операндам расположенным вобласти памяти, называемой стек.

НЕКОТОРЫЕ ОПЕРАТОРЫ, ПРЕДОПРЕДЕЛЁННЫЕ ИМЕНА, ДИРЕКТИВЫ И КОМАНДЫ  АССЕМБЛЕРА 80X86(8088)

ПРЕДОПРЕДЕЛЕННЫЕИМЕНА

1. $ -программный счетчик. Этот символ отмечает текущий адрес в текущем сегменте.Полезен при определении длины цепочек байтов или строк.

 

text  DB 'This string has NN letters'

NN = $ - text;  NN = длине строки text (количеству байтов

в этой строке). Не путать часть строки '..NN..' и константу NN!

2. @data - адресначала сегмента данных.

....

mov ax,@data

mov ds,ax;

в сегментном регистре DS теперьадрес сегмента данных.

3. ??date, ??time,??filename - эти имена во время трансляции заменяются, соответственнона текущие дату, время и имя файла в формате ASCII.

ОПЕРАТОРЫ

1. () - скобки,определяют порядок вычислений

2. [] - например[BX] означает содержимое ячейки памяти с адресом в регистре bx. Признак косвеннойадресации.

3. +, -, *, / -операторы сложения, вычитания, умножения и деления.

   mov ax,(2 * 3 + 8 / 2) - 2; в регистр ax будет помещено число 8.

4. MOD - делениепо модулю. Даёт остаток.

5. SHL,SHR -сдвиг операнда влево, вправо.

   mov si,01010101b SHR 3; в регистр SI будет загружено число 0Ah (00001010).

6. NOT -побитовая инверсия.

7. AND,OR,XOR -операции "И","ИЛИ","ИСКЛ.ИЛИ".

   mov dl, (10dOR 5d) XOR 7d; (dl) будет равно 8.

8. :  -переназначение сегмента.

mov dl,[es:bx]; поместить в dlбайт данных из сегмента es и отстоящий от его начала на (bx) байтов (смещение).

9. OFFSET -оператор получения смещения адреса относительно начала сегмента (то естьколичества байтов от начала сегмента до идентификатора адреса).

mov bx, OFFSET table

ДИРЕКТИВЫ (ПСЕВДООПЕРАТОРЫ)

1. : -определяет близкую метку (в пределах сегмента).

 

      jmp lbl .... ....

lbl:  ....

2 . = -присваивает символическому имени значение выражения.

videoram = 0B800h; присвоение videoram = 0B000h;

3.  .CODE -определяет начало кодового сегмента, то есть сегмента, где располагаются кодыпрограммы.

4. .DATA  -определяет начало сегмента данных.

5. DB,DW -директивы резервирующие один или несколько байтов: DB, или одно или несколькослов: DW.

 

      ....

      .DATA

fibs  DB 1,1,2,3,5,8,13

rus   DB 'Турбо Ассемблер'

buf   DB 80 DUP(0);резервируется 80 байтов,каждый обнуляется

int   DW 65535;в двух байтах располагается число FFFFh.

Array DW 100 DUP (0);резервируется 100 слов

6. END -обозначает конец программы.

 

      ....

      .CODE

MyPROG:....; точка входа (начало программы).

       ....; команды программы

       ....

       END MyPROG

7. ENDM -окончание блока или макроопределения

8. ENDP -обозначает конец подпрограммы.

9. EQU -присваивает символическому имени или строке значение выражения.

 

BlkSize EQU 512

BufBlks EQU 4

BufSize EQU BlkSize * BufBlks

10. LABEL -определяет метку соответствующего типа.

 

      ....

       .DATA

m_byte LABEL BYTE;метка m_byte типа BYTE позволяет теперь

m_word DW 0;иметь доступ отдельно к каждому байту данных

       .CODE;m_word типа WORD

       ....

       mov [m_word],0204h

       add [m_byte],'0';теперь в m_word хранится код

       add [m_byte+1],'0';3234h,ASCII код '0' равен 30h

11. LOCAL -определяет метки внутри макроопределений как локальные и в каждоммакрорасширении вместо них ассемблер вставляет уникальные метки: ??XXXX, гдеXXXX = (0000...FFFF)h. Почему ??XXXX ? Да потому что никому не должно прийти вголову начинать символическое имя с ??, и транслятор смело может генерироватьметки не боясь совпадений.

12. MACRO -задает макроопределение.

 

Swap   MACRO a,b; a,b - параметры макро (ячейки памяти)

       mov ax,b;данное макрооопределение позволяет делать

       mov bx,a;обмен данными между ячейками памяти, в

       mov a,ax;отличие от команды xchg ;

       mov b,bx;нельзя mov a,b;

       ENDM

Вызов этого макроса производитсякомандой: Swap m,n

13.  .MODEL- определяет размер памяти под данные и код программы.

   .MODEL tiny;под программу,данные и стек отводится один общий сегмент (64 Kb).

14.  PROC -определяет начало подрограммы.

 

Print  PROC NEAR

       ;здесь команды подпрограммы

Print  ENDP

       ....

       call Print;вызов подпрграммы.

15.  .STACK- определяет размер стека.

   .STACK 200h; выделяет 512 байтов для стека.

16.  .RADIX base- определяет систему счисления по умолчанию, где base - основание системысчисления: 2, 8, 10, 16.

 

       .RADIX 8

oct    = 77; oct равно 63d.

17.  ; -начало комментария.

КОМАНДЫ ПЕРЕСЫЛКИ

1. MOV DST,SRC;переслать (SRC) в (DST). Здесь и далее содержимое регистра, например регистраAL будет обозначаться - (AL) или (al), а пересылка в комментарии будетобозначаться знаком <--  .

 

    mov al,ch; (al) <-- (ch).

    mov cx,dx;

    mov bh,[mems];содержимое  ячейки памяти с символическим  адресом

       mems  переслать  в  регистр  BH. Можно: mov bh,mems.

    mov al,[bx];переслать в аккумулятор содержимое ячейки памяти

    с  адресом находящимся в регистре BX .

    mov bx,OFFSET  src;поместить  в  BX  смещение  адреса

       ячейки памяти SRC, в текущем сегменте.

    mov al,table[bx];загрузить в аккумулятор элемент таблицы байтов

       с символическим адресом первого элемента table и отстоящий

       от этого элемента на (bx)  байтов.  Другие варианты:

    mov al,[table + bx] или

      mov al,table + bx.

  mov dh, 10101100b;

  and dh,0f0h;

в результате выполнения этих двухкоманд содержимое DH станет равно 10100000b.

2. OR DST, SRC;поразрядное логическое "ИЛИ".

 

or bx,dx;если (BX)=5F0Fh,а (DX)=7777h,то после операции

        ;(BX)=7F7Fh.

До выполнения команды

mov al,[table + bx]

   Регистр BX

Регистр AL

Адрес

Код

BX 0101 1111 0000 1111 = 5F0F
DX 0111 0111 0111 0111 = 7777
BX (результат) 0111 1111 0111 1111 = 7F7F

3. XOR DST, SRC;поразрядное логическое "исключающее ИЛИ".

 

xor al,55h;если (AL)=5ah, то после операции (AL)=0fh.

4. NOT DST;инверсия всех битов приемника.

5. TEST DST,SRC; выполняет операцию AND над операндами, но воздействует только на флаги ине изменяет самих операндов.

6. SHR DST, CNT;логический сдвиг вправо, освобождающиеся слева биты заполняются нулем, крайнийправый бит выталкивается во флаг CF. Операнд DST может быть ячейкой памяти.

 

    mov bl,10110010b;(CF) = x

    shr bl,1;(BL) = 01011001,(CF) = 0

до  сдвига       1 0 1 1 0 0 1 0      (CF)=X
после сдвига 0---> 0 1 0 1 1 0 0 1 ------> (CF)=0

    mov cl,4;

    shr bl,cl;(BL) = 00000101,(CF) = 1.

7. SHL DST, CNT;логический сдвиг влево.

8. RLC DST, CNT;циклический сдвиг влево через перенос

9. RRC DST,CNT;циклический сдвиг вправо через перенос

10. ROR DST,CNT;циклический сдвиг влево

11. ROL DST,CNT;циклический сдвиг вправо

КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ

1. CALL SUBR;вызов подпрограммы с адресом SUBR;

 

   call delay;

    mov ....

2. RET; возвратиз подпрограммы к оператору следующему непосредственно за CALL, то есть вприведенном выше примере к MOV ..

3. JMP NAME;безусловный переход к команде с символическим адресом NAME.

 

    jmp short name;переход к метке name, отстоящей не более

                  ;чем на -128 или +127 байтов.

    jmp near name;переход к метке name,  отстоящей не более

                  ;чем на 65535 байтов, в одном сегменте.

    jmp name;аналогично jmp near name;

4. JA NAME или JNBENAME; условный переход, если, например, в результате сравнения CMP DST, SRCприемник по абсолютной величине больше источника, то перейти кметке name.

5. JB NAME или JNAENAME; условный переход, если, например, в результате сравнения CMP DST, SRCприемник по абсолютной величине меньше источника, то перейти кметке name (команды п4 и п5 выполняются по результатам выполнения операций над беззнаковымичислами).

6. JZ NAME или JENAME; перейти, если результат операции влияющей на флаг нуля - нулевой (переходпо "нулю").

7. JNZ NAME или JNENAME; переход по "не нулю". (команды п6 и п7 выполняются порезультатам выполнения операций над числами cо знаком).

КОМАНДЫ УПРАВЛЕНИЯ ЦИКЛАМИ

1. LOOP NAME;эта команда неявно уменьшает (CX) на 1 и осуществляет переход к ближней метке,если (CX) не равно 0.

 

      ....

      mov cx,64h;блок операторов от метки syc до loop syc

syc:   ....;будет выполнен 100 раз.

       ....

       loop syc

2. LOOPZ NAME илиLOOPE NAME кроме того осуществляет проверку ZF флага. Поэтомуцикл заканчивается по условию, когда (CX) = 0 или (ZF) = 0 или и то и другоевместе. Т.о. эта команда служит для обнаружения первого ненулевого результата.

3. LOOPNZ, LOOPNE- выход из цикла по "нулю".

 

       ....

       mov cx,1000d;цикл может быть завершен раньше 1000

next:  .... ;прохода,если содержимое аккумулятора

       .... ;станет равным 129,т.е. равным ASCII коду

       cmp al,'Б';буквы Б.

       loopnz next

9.3.9 КОМАНДЫ ОБРАБОТКИ СТРОК (ЦЕПОЧЕК БАЙТОВ)

1. LODSB;команда lodsb загружает байт адресованный регистром SI из сегмента данных, иувеличивает SI на 1, если перед этим была введена команда CLD (очистить флагнаправления DF) и уменьшает SI на 1, если была использована команда STD(установить флаг направления).

 

       ....

       .DATA

string DB 'abcdefg'

       .CODE

       ....

       cld;после выполнения этих команд в AL будет

       mov si,OFFSET [string+2]; загружен ASCII код 'с'

       lodsb;причем содержимое SI будет указывать на 'd'.

2. MOVSB; этакоманда перемещает один байт из ячейки памяти с адресом в регистре SI в ячейкупамяти с адресом в регистре DI и увеличивает (SI) и (DI) на 1. Значение SIможет находиться, как в сегменте данных DS, так и в дополнительном сегменте ES.Значение DI может находиться только в дополнительном сегменте ES.

 

      ....

      .DATA

msg  DB 'Всё O.K.'

LEN  = $ - msg;LEN равно 8

      .CODE

      ....

      cld

      lea si,msg;в SI адрес источника

      mov ax,0b800h;начало сегмента видеопамяти

      mov es,ax;поместить в дополнительный сегмент

      lea di,es:(0a0h * 3);4-я строка сверху

      mov cx,LEN;LEN - количество выводимых символов

rp:   movsb;переслать символ в текущую позицию экрана

      inc di;перешагнуть через позицию атрибута

      loop rp;повторить до исчерпания (CX)

      ....;строка 'Всё O.K.' будет выведена в 4-ю строку

          ;дисплея сверху.

3. REP ;префиксповторения команды. Например окончание предыдущей программы может быть записанов виде:

 

      ....

      mov cx,LEN;несмотря на то,что массив'Всё O.K.'будет

rep   movsb;скопирован в область памяти B800:(A0 * 3), на

      ;экран дисплея будет выведено: ВёOK. Почему?

4. CMPSB;осуществляет сравнение байта строки источника c адресом (SI) и байта строкиприемника с адресом (DI): то есть производит вычитание ((SI)) - ((DI)). Непутать с командой CMP DST, SRC в которой наоборот, производится вычитаниеисточника из приемника. Команда CMPSB неявно уменьшает (CX) на 1 и увеличивает(SI) и (DI) на 1, если (DF) = 0.

5. REPZ или REPE;префикс повторения. Выполнение команды завершается, когда (CX) = 0 или (ZF) =0.

 

     ....

     .DATA

src  DB 'To be, or not to be'

dst  DB 'To be ,or not to be'

len  = $ - dst;len равно 19

     .CODE

     ....

     cld; (DF) = 0

     push ds;совместить адреса

     pop es;сегментов ds и es

     mov cx,len;длину строки dst переслать в cx

     lea di,dst;загрузить адрес(смещение) строки dst в DI

     lea si,src

repe cmpsb;сравнивать побайтно

     je equal;если все байты совпали, то перейти к метке

     not cx;если нет - вычислить номер несовпадающих байт

     add cx,len;

     jmp notequal;

equal:    ....

          ....

notequal: ....

В конце этого примера номерпервого несовпадающего байта (CX) = 5.

 КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ

1. CLC; сброситьфлаг переноса (CF) = 0.

2. STC;установить флаг переноса (CF) = 1.

3. CMC;инвертировать флаг пнреноса.

4. CLD; очиститьфлаг направления (DF) = 0, в этом случае операции над строками (цепочкамибайтов) будут производиться от младшего адреса к старшему.

5. STD;установить флаг направления (DF) = 1,обработка цепочек байтов производится отстаршего адреса к младшему.

6. STI;установить флаг прерываний (IF) = 1, разрешить прерывания от внешних устройств.

7.CLI; очиститьфлаг прерываний.

8. NOP; холостаяоперация.

КОМАНДЫ ПРЕРЫВАНИЙ

1. INT INUM; этакоманда вызывает программное прерывание, то есть переход к ячейке памяти садресом хранящимся в четырех байтах, начиная с адреса INUM * 4, где INUM =(0...255). Это 4-х байтовое число является указателем подпрограммы обработчикаданного прерывания, и иначе называется вектором прерывания.Таким образом первыйкилобайт памяти 256 * 4 отводится под векторы прерываний.

Операции инициируемыепрограммными прываниями определяются кодом в регистре AH, например:

 

   ....

    mov ah,14d;функция вывода символа на дисплей,с последующимм

    mov al,31h;продвижением курсора на одну позицию вправо.

    int 10h;на  экран будет выведена цифра '1'(ASCII код 31h).

       ....

       .DATA

privet DB 'Добрый morning !','$';

       .CODE

       ....

       lea dx,privet;специальная функция регистра DX

       mov ah,9;9 - функция вывода на экран дисплея

       int 21h;будет выведено приветствие ....

ВЛИЯНИЕ КОМАНД НА ФЛАГИ

В таблицу включены только теинструкции, которые влияют на флаги.

"+" - обозначает, чтокоманда влияет на флаг, "-" - не влияет, "1" - флагустанавливается в 1, "0" - флаг устанавливается в 0 (сбрасывается),"#" - инверсия флага, "?" - не определенное значение флага,>1 - одиночный сдвиг, >n - многоразрядный сдвиг.

ПРИМЕЧАНИЯ

 

    1. R1,R2 - одно- или двухбайтные регистры.

    2. RP - двухбайтные регистры.

    3. SRC,DST -источник,приемник (регистр или ячейка  па-

       мяти)

    4. M,M1,M2 -ячейки памяти с символическими адресами M,

       M1 и M2.

    5. CNT - счетчик,регистр CL или CX.

    6. SUBR,NAME  -  символический  адрес  (метка  начала

       подпрограммы или блока операторов).

    7. Во всех  командах  условных  переходов  метка  NAME

       должна отстоять от команды перехода не более,чем на  -128

       или +127 байтов.

    8. INUM - номер прерывания.

ОБЩИЙ РАЗДЕЛ

1.1. Технико-математическое описание задачи

Программаделится на две части:

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

-    математическомсопроцессоре;

-    СОМпортах;

-    LPT портах;

-    дисководах;

-    CD-ROM приводах;

-    расширенномуправлении электропитанием;

-    манипуляторе«мышь».

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

          СОМ порты – этопорты с последовательным типом передачи данных, предназначенные для подключениякоммуникационных, манипуляторных и других устройств, где требуется сравнительноне- большая скорость передачи данных. Количество установленныхпоследовательных портов может варьироваться от одного до четырёх. Нанекоторых материнских платах существует ограничение на подключениепоследовательных портов, например: если это значение будет два, и если выподключите четыре порта, то работать будут все равно два.

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

Дисковод – устройство,предназначенное для чтения/записи накопителей на магнитном диске (гибкий диск).Существует четыре типа дисководов:

-    360Кб.;

-    720Кб.;

-    1.2Мб.;

-    1.44Мб.

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

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

РУЭ (расширенноеуправление электропитанием) – стандарт, служащий для экономии электроэнергии.Представляет собой следующий набор функций:

-    автоматическоеотключение электропитания;

-    «спящий»режим;

-    автоматическоеотключение питания монитора;

-    автоматическоеотключение питания жестких дисков.

Может находиться в двух состояниях: включено иливыключено.

Вторая часть программы - диагностика памяти - проверяет на работоспособность память ПК, накотором выполняется программа.

1.2. Требования к функциональнымхарактеристикам

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

1 – сбор сведений осистеме;

2 – тест памяти;

3 – выход.

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

В случае  выбора пункта«Сбор сведений о системе» выполняется последовательный вывод информации о ПК ввиде списка устройств с текущим состоянием. Ниже приведена таблица со спискомустройств и их возможными состояниями.

                                                                                                Таблица1

Таблица возможныхсостояний устройств

  "0"   ¦  30         "B"  ¦  42         "Б"  ¦  82

  "1"   ¦  31         "C"  ¦  43         "В"  ¦  83

   ..   ¦  ..          ..  ¦  ..          ..  ¦  ..

  "9"   ¦  39         "Z"  ¦  5A         "Я"  ¦  9F

  ":"   ¦  3A         "["  ¦  5B         "а"  ¦  A0

_________ASCII кодировка___________/

_______________альтернативная кодировка_______________/

В Internet для русского языкаиспользуется кодировка КОИ-8. В настоящее время разработан и используется 16-тибитовый Unicode с 65536 различными симвоволами.

7.9 ВОСЬМИСЕГМЕНТНЫЙ КОД

Служит для отображения образа BCDили HEX цифры высвечиваемой на индикаторе в виде набора 0 и 1. Может бытьпринято следующее соответствие между битами и сегментами:

Внизу приведен битовый набор длявысвечивания цифры 4. Единицы обычно соответствуют светящимся сегментам.

7.10 НЕОДНОЗНАЧНОСТЬ ПРЕДСТАВЛЕНИЯ ДВОИЧНЫХ НАБОРОВ

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

 

   1) двоичное число = 10000110, имеющее

     а) шестнадцатиричный эквивалент = 86(HEX),

     б) восьмиричный эквивалент = 206(OCT),

     в) десятичный эквивалент числа без знака = 134(DEC),

   2) дополнительный код отрицательного числа =-122(DEC),

   3) двоично-десятичное упакованное число = 86(BCD),

   4) альтернативный код буквы "Ж",

   4') код КОИ-8 символа "¦",

   5) восьмисегментный код цифры "1.",

   6) часть вещественного числа,

   7) реализация множества,включающего 3 элемента из 8-ми,

   8) часть адреса ячейки памяти или внешнего устройства,

   9) код операции  и т.д.

Поэтому ответственностьза интерпретацию двоичных наборов возлагается на программиста.Например, попытка сложить ASCII коды "1" + "2" не даст всумме код "3", а даст 31(HEX) + 32(HEX) = 63(HEX), что соответствуеткоду латинской буквы "c".

Приложение № 2

СТРУКТУРНАЯ СХЕМА МИКРОПРОЦЕССОРА

Огромное количествомикропроцессоров (МП) не позволяет рассмотреть ихособенности, поэтому выбор пал на родоначальника семейства 80x86 : МПК1810ВМ86/88 (8086/8088). Такой выбор оправдан, во-первых преобладающим паркомЭВМ с этим МП, во-вторых тем, что все МП этого семейства при включении начинаютработу в реальном режиме МП 8086, и в-третьих - программной совместимостью ихассемблеров снизу вверх. На рис 1. приведена структурная схема МП8086 и внешнийвид типового микропроцессора.

Устройство управления декодирует байтыпрограммы и управляет работой операционного устройства и шинногоинтерфейса. Операционное устройство МП состоит из 4-хшестнадцатиразрядных регистров общего назначения: РОН(AX,BX,CX,DX), из 4-х регистров указателей (адресных регистров SP,BP,SI, DI) и арифметико-логическогоустройства (АЛУ) с регистром признаков операций(флагов F).

РОН служат для храненияпромежуточных результатов операций, т.е. операндов. Помимо общих, каждый изэтих регистров имеет и некоторые специальные функции, окоторых будет сказано далее. Каждый РОН может раcсматриваться, как состоящий издвух независимых 8-ми разрядных регистров AH, AL, BH, BL, CH, CL и DH, DL.

Адресные регистры хранят 16-тибитовые указатели (адреса) на области памяти. В SP (StackPointer)находится текущий адрес "вершины стека" - специальноорганизованной области памяти, которая будет описана далее. Регистр BP(BasePointer) хранит любой базовый адрес в области стека. Дварегистра SI и DI (Source и Destination Index) адресуют области памяти,называемые источником и приемником данных.

Шинный интерфейс, на рис.1 егоузлы отмечены двойной чертой, выполняет операции обмена между МП и памятью иливнешними устройствами. В сегментных регистрах CS,SS,DS,ESхранятся указатели на 64-х килобайтные области памяти называемые сегментами.Значения этих указателей могут перекрываться. Адрес байта в ячейке памятиполучается суммированием содержимого одного из сегментных регистров и одного изрегистров (SP,SI,DI,IP). Например адрес текущего байта программы, извлекаемогоиз памяти определяется суммой адресов, хранящихся в регистре кодового сегмента(CS) и указателе команд (IP). В регистре IP хранится 16-битовый адресбайта  в кодовом сегменте к которому микропроцессор дожен обратиться.Подробнее об этом будет сказано далее. Связь с внешними устройствамиосуществляется через специальные тристабильные схемы с повышенной нагрузочнойспособностью и называемые буферами.

Текущий байт программынаправляется в очередь команд: шесть однобайтовых регистров расположенных конвейером(по принципу "первым вошел - первым вышел" или FIFO ). Конвейерпозволяет одновременно выполнять команду из очереди и загружать следующую,повышая производительность МП. Буферные тристабильные элементы увеличиваютмощность сигналов до стандартных значений ТТЛ.

8.2 РЕГИСТР ФЛАГОВ

По результатам операций АЛУустанавливает либо сбрасывает отдельные биты в регистре флагов F.

x обозначает, что содержимоеэтого бита не имеет значения. Некоторые операции влияют только на отдельныефлаги, а другие совсем на них не воздействуют, поэтому при описании флаговподразумевается выполнение тех команд (операций), которые влияют на эти флаги.В дальнейшем, в тексте, фраза "содержимое XX" будет обозначатьсякруглыми скобками - (XX).

  • ZF - флаг/признак нулевого результата (Zero), устанавливается в 1, если получен нулевой результат, иначе (ZF)=0.
  • CF - флаг переноса (Carry) устанавливается, если в результате выполнения операции из старшего бита переносится или занимается 1 при сложении или вычитании, иначе (CF)=0. На CF влияют также команды сдвига и умножения.
  • SF - флаг знака результата (Sign) равен единице, если результат отрицательный, т.е. он дублирует старший знаковый бит результата.
  • PF - флаг четности (Parity). (PF)=1, если сумма по модулю два всех битов результата равна нулю (число единичных битов - четное).
  • AF - флаг дополнительного переноса (Auxiliary) устанавливается, если есть перенос из старшего бита младшей тетрады (бит D3) в младший бит старшей тетрады (бит D4). Используется в операциях над упакованными BCD числами.
  • OF - флаг переполнения (Overflow) устанавливается, когда результат операции превысит одно- или двухбайтовый диапазон чисел со ЗНАКОМ, а также в некоторых других случаях. Другое определение: (OF)=1, если перенос/заем в старший бит результата не равен переносу/заему из старшего бита.

Рассмотрим в качестве примерасложение двух однобайтовых чисел: 125 + 4 = 129 выходит за пределы -128....+127 чисел со знаком (для беззнаковых чисел 129 - корректный результат).

 

   0 1 1 1 1 1 0 1 = +125

   0 0 0 0 0 1 0 0 = +4

   1 0 0 0 0 0 0 1 = +129 > +128 (или -127 ???)

  / / :

0 1  :

Перенос в бит D7 равен 1, а избита D7 = 0, в результате сложения чисел (OF) = 1, (CF) = 0, (ZF) = 0, (SF) =1, (PF) = 0, (AF) = 1. Остальные три флага будут рассмотрены далее. Содержимоерегистра признаков называется также словом состоянияпроцессора(программы) и обозначается PSW.

 ОРГАНИЗАЦИЯ ПАМЯТИ И ВЫЧИСЛЕНИЕ АДРЕСА

МП 8086 имеет 20-ти разрядную шинуадреса ША, позволяющую обращаться к 2^20 или примерно к одному миллиону ячеекпамяти. 16-ти битовая шина данных ШД может пересылть информацию байтами илисловами. Память обычно организована в виде линейного одномерного массива байтов,причем два соседних байта могут рассматриваться как слово. Все мегабайтноепространство памяти условно делится на 16 сегментов объемом по 64Kb.Микропроцессору доступны в каждый момент четыре - кодовый сегмент, где хранитсяпрограмма, стековый сегмент, сегмент данных программы и дополнительный сегментданных. Начальные адреса этих сегментов хранятся в регистрах CS,SS,DS и ES. Таккак эти регистры 16-ти битовые, а все адресное пространство 20-ти битовое, тоМП начальный сегментный адрес в 20-ти битовом сумматоре сдвигает на четыре битавлево (эквивалентно умножению на 16) и складывает с содержимым одного изрегистров (IP,SP,DI,SI).

Полученное число называетсяфизическим адресом. Например, извлекая из памяти очередной байт кода программыМП формирует физический адрес по формуле: Физический адрес = (IP) + (CS) * 16,где (IP) - смещение, эффективный или исполнительный адрес, (CS) - сегментныйадрес, а (CS) * 16 - называется начальным сегментным адресом. Организацияпамяти приведена на рис.2.

8.4 ПРОЦЕССОРНЫЙ БЛОК (ПБ )

включает микропроцессор,стабилизируемый кварцем генератор импульсов, два устройства для формированияадресных и управляющих сигналов и двунаправленный буфер шины данных. Схема ПБпредставлена на рис.3. Для уменьшения общего количества выводов МП, понекоторым из них в разные моменты передаются разные сигналы, поэтому младшие 16линий адреса и шина данных совмещены (мультиплексированы).

Конденсатор C до включенияпитания разряжен. В начальный момент времени t0 подается напряжение питания навыводы (+). Начиная с этого момента времени на входе ~RES действует логический0 до момента t1, когда напряжение на конденсаторе C достигнет пороговогозначения логической 1. В течение интервала t0..t1 выходной сигнал RESET имеетактивный уровень лог.1. Микропроцессор переводится в исходное состояние. Приэтом в регистр CS записывается код FFFFh, а в регистр IP код 0000h.

Когда C зарядится и сигнал ~RESстанет "1", на входе RESET микропроцессора сигнал снизится допассивного уровня. Начинается основной цикл работы. МП извлекает из ячейкипамяти с адресом FFFF:0000 первый байт команды, который чаще всего являетсякодом безусловного перехода к тому месту в памяти, где находится началопрограммы. В процессе работы можно перезапустить МП с помощью кнопки SW.Конденсатор C разряжается до нуля и процесс запуска повторяется. МП можетработать в двух режимах в максимальном и минимальном. Минимальный режимограничивает адресуемый объем памяти до 64Kb. В большинстве приложений вприборостроении такого объема достаточно, поэтому сигнал ~MX/MN = 1.Формирователи сигналов ШУ,ША и ШД (шины управления адреса и данных), выполненына элементах ИЛИ, регистрах и шинных формирователях и служат также дляувеличения мощности этих сигналов.

Генератор G формируетпоследовательность импульсов CLK, называемых тактовыми. Выполнение командыпроизводится в течение интервалов времени, называемых циклами. Если в циклеесть обращение к памяти или к внешним устройствам, то он называется цикломшины. Цикл шины содержит 4 обязательных такта T1 ... T4.

В такте T1 микропроцессорпередает по совмещенной шине адрес/данные адрес ячейки памяти или внешнегоустройства (ВУ), подключенного к шинам ШУ,ША и ШД. В такте T2производится выбор направления обмена данными с памятью или ВУ, а в тактахT3,T4 - передача данных. Если ЗУ (запоминающее устройство) или ВУ медленные, тона вход готовности RDY посылается   сигнал RDY = 0, по которому МПвставляет циклы ожидания TW, до тех пор, пока не будет установлена готовностьВУ или ЗУ (RDY = 1). Если в цикле нет обращения к шине, то МП формируетхолостые циклы TI.

Для разделения сигналов совмещеннойшины адрес/данные ШАД(AD15..0) их необходимо"демультиплексировать" с помощью регистра защелки адреса RG идвунаправленного буфера BD. При обращении к памяти (в том числе при выборкекоманды) микропроцессор передает по ШАД адрес ячейки памяти. Этот адресзаписывается в D-триггеры регистра RG сигналом ALE генерируемым микрпроцессоромв этот момент и поступающим на синхровходы D-триггеров. Адрес в регистресохраняется на время последующей передачи данных. Следом по ШАД передаются,либо данные от микропроцессора к ВУ или ЗУ, либо в обратном направлении. МПдолжен, во-первых, обеспечить правильное направление передачи буфера BD и ,во-вторых, открыть (разрешить) тристабильные элементы буфера для передачиданных. Первую задачу решает сигнал МП ~DT/R (~DT/R=0 передача данных от МП -Transmit, ~DT/R=1 прием данных МП - Receive).

Вторая задача решается генерациейМП сигнала ~DEN (Data Enable). Чтение или ввод данных в один из регистров МПосуществляется с помощью инверсных сигналов шины управления (ШУ):  ~MEMR(чтение из памяти),~IOR (ввод из ВУ), называемыми еще стробамичтения. Запись или вывод данных из МП по шине данных сопровождается стробамизаписи ~MEMW (запись в память (ЗУ)), или ~IOW (вывод во внешнееустройство (ВУ)). Четверка стробов, которые являются основными сигналами шиныуправления, формируется из сигналов чтения, записи (~RD,~WR) и сигнала M/~IO,определяющего к чему производится обращение : к ЗУ или ВУ. Формирование этихсигналов производится с помощью простой комбинационной схемы, содержащей 4элемента ИЛИ и один инвертор.

8.5 МИКРОПРОЦЕССОРНАЯ СИСТЕМА С ТРЕМЯ ШИНАМИ

Работой всех устройствподключаемых к процессорному блоку управляет дешифратор DC, к входам которогоподводятся линии шины адреса. Обычно дешифраторов бывает несколько. Еслииспользуется не все адресное пространство для памяти и ВУ, то на дешифраторзаводятся не все линии адреса, чаще всего несколько старших разрядов ША.Например, если на DC завести 4 линии A19..A16, то все адресное пространствобудет разбито на неперекрывающиеся блоки по 2^20 / 2^4 = 64Кб, принадлежащиекаждому из 16-ти (2^4 = 16) устройств ЗУ или ВУ, подключенных к шинам (на рис.4показаны 7 устройств). Часть из них могут использовать все отводимое имадресное пространство, например ПЗУ и ОЗУ, другие только несколько адресов.

Типовая МПС, показанная на схемесодержит:

микросхему программируемогопериферийного интерфейса ППИ (PPI или IOP), к которой через три8-битовых независимых канала PA,PB и PC можно подключать периферийныеустройства, например принтер, клавиатуру, 8-ми сегментный дисплей или ЦАП и АЦП.Через ППИ может производиться обмен данными с другими МПС или ЭВМ.

Ввод с клавиатуры и вывод надисплей могут производиться специальными микросхемами.

Связь с удаленными устройствамиили абонентами сетей может осуществляться с помощью универсальногоасинхронного последовательного приемо-передатчика УАПП-UART (программируемыйсвязной интерфейс ПСИ-PCI или IOS). К выводам RxD - приемник и TxD -передатчик через линию связи подключаются передатчик и приемник другого абонентаили устройства. Если связь производится через модем, то доступны любые сети.

Для формирования точных,различных по частоте и длительности сигналов, в т.ч. и звукового диапазонаиспользуется программируемый интервальный таймер ПИТ-PIT,имеющий три независимых 16-ти разрядных двоичных счетчика. Задержка,длительность или частота выходного сигнала каждого счетчика кратна 3..65535периодам входного сигнала.

Если в системе используется режимпрерывания выполнения основной программы внешними устройствами, требующимибезотлагательного вмешательства микропроцессора, то может применяться программируемыйконтроллер прерываний ПКП - PIC (устройство собирающее заявки наобслуживание от ВУ с входов IRi). Подробно прерывания будут рассмотрены ниже.

Обмен данными между МП и ЗУ илиодним из ВУ возможен только при появлении на выходе дешифратора DCединственного сигнала ~CS = 0, поступающего на то устройство с которым будетпроизводиться запись или чтение байта данных. Остальные (невыбранные)устройства будут в пассивном состоянии, т.к. их сигналы ~CS = 1. Байтинформации на ШД считывается ВУ, ЗУ или МП в строго ограниченном интервалевремени во время действия одного из управляющих сигналов чтения/записи (~MEMR,~MEMW) из памяти или в память, или во время действия одного из сигналовуправления вводом/выводом (~IOR, ~IOW) в/из ВУ.

Быстрый обмен данными можетпроизводиться с помощью устройства прямого доступа к памяти ПДП(DMA).

8.6 СТЕК

Область памяти с упрощеннойсхемой адресации, к которой МП обращается по принципу "последним вошел -первым вышел" (LIFO). Байты программы в оперативной памяти располагаютсяпоследовательно по нарастающим адресам. Стек заполняется по последовательноубывающим адресам. Во избежание перекрытия этих двух областей памяти стек обычнорасполагается в старших адресах. Начальный адрес стека, называемый дном(bottom) записывается в регистр SP командой MOV SP,0fffeh. Вместо 0fffeh -адрес предпоследнего байта сегмента, может быть другое значение, но выравненноепо двухбайтовым, т. е. четным адресам. Текущее значение содержимого SPназывается, также адресом вершины стека (top). Если адрес вершины совпадает садресом дна - стек считается пустым. Рассмотрим механизм помещения в стек иизвлечения из него данных на примере команд PUSH AX и POP BX. Пусть начальноезначение аккумулятора AX равно 874c.

Команда PUSH выполняется в четыреэтапа:

  • Адрес в SP уменьшается на 1: (SP) <-- (SP) - 1.
  • По этому адресу помещается старший байт 87: ((SP)) <-- (AH).
  • Содержимое SP снова уменьшается на 1: (SP) <-- (SP) - 1.
  • По полученному адресу загружается младший байт 4c: ((SP)) <-- (AL). 

Действие команды POP аналогичноописанному процессу, но в происходит в обратном порядке:

  • (BL) <- ((SP)),
  • (SP) <- (SP) + 1,
  • (BH) <- ((SP)),
  • (SP) <- (SP) + 1.

Байты в стек помещаются поправилу "старший байт по старшему адресу" . На рис.7 показан пустойстек до выполнения команды PUSH AX и после ее выполнения, а на рис.8 послевыполнения команды POP BX.

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

1) сохранения и извлечения адресавозврата из подпрограмм командами ассемблера CALL и RET (IRET),

2) хранения локальных переменных,

3) передачи фактическихпараметров подпрограммам (трансляторами с языков высокого уровня),

4) временного хранениясодержимого регистров фоновой программы при ее прерывании.

8.7 СПОСОБЫ ВВОДА-ВЫВОДА

Обмен данными между ЭВМ иВУ или ЗУ называется вводом-выводом (ВВ). Существует четыре основных способа ВВ.

  • Программный ВВ
  • ВВ по прерываниям
  • Прямой доступ к памяти (ПДП) или DMA
  • Транзакции (MCS-96)

В первых двух случаях в обменеданными участвует микропроцессор. В режиме ПДП функции управления обменом беретна себя специальное устройство - контроллер ПДП, причем МП в это время в обменеданными не участвует. В 4-ом способе пересылки производятся параллельно сработой МП периферийным сервером транзакций.

8.7.1 ПРОГРАММНЫЙ ВВОД-ВЫВОД

Для внешних устрйств выделяесяадресное пространство, либо не входящее в состав ЗУ, либо являющееся егочастью. Следовательно программный ВВ может быть двух типов:

  • с помощью команд ассемблера ввод (IN) и вывод (OUT)
  • с использованием всех команд пересылки ассемблера (MOV, LODSB,..).

В пределах 64K блока картараспределения памяти для первого случая показана на рис.5 слева.  

В пределах интервала 0000 ...XXXXадреса ВУ и ЗУ пересекаются. Поэтому для однозначного обращения к ячейкампамяти или ВУ в процессорном блоке формируются управляющие пересылкойстробирующие импульсы - ~IOR,~IOW для ввода или вывода данных во внешнееустройство и ~MEMR,~MEMW для чтения или записи в память.Емкость ЗУ дляразмещения программ и данных не уменьшается.

Карта распределения памяти для второгослучая показана на рис.5 справа. Под внешние устройства выделяется частьадресного пространства ЗУ. Емкость ЗУ уменьшается на количество адресовотводимых для ВУ. Второй способ позволяет адресоваться к ВУ с помощью всехкоманд оперирующих с памятью. Основное достоинство программного ВВ в простоте.Но при выполнении ввода, например с клавиатуры, МП затрачивает до 99,99..%времени на ожидание, не выполняя при этом другой полезной работы. Избавиться отэтого недостатка позволяет ВВ по прерываниям.

8.7.2 ВВОД-ВЫВОД ПО ПРЕРЫВАНИЯЮ

В общем случае прерывания могутвызываться

  • внешнними устройствами (внешние прерывания),
  • командами прерываний (программные прерывания)
  • автоматически самим МП (внутренние прерывания), например при попытке деления на 0.

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

1. ВУ самостоятельно, либо через контроллерпрерываний посылает сигнал прерывания INT(R) на одноименный вход МП;

2. МП завершает выполнениетекущей команды и,если преывания разрешены командой ассемблера STI(EI для8085), то подтверждает разрешение сигналом ШУ -INTA;

3. В МП по ШД передаетсятип(номер) прерывания - N;

4. Содержимое PSW, а также CS,IP(адрес возврата), скорректированное с учетом сброса очереди помещается в стек;

5. Сбрасываются флаги IF (флагразрешения прерываний) и TF (флаг трассировки), причем т.к. (IF) = 0 дальнейшиепрерывания запрещаются;

6. В IP загружается содержимоедвух байтов с начальным адресом 4*N, а в CS - содержимое следующих двух байтов. Эти 4 байта называются вектором (указателем) прерывания.

7. Начинает выполнятьсяподпрограмма - обработчик прерывания.

 

   INT_SUBR:

        STI

        PUSH AX

        ....;     здесь

        ....;     команды

        MOV AL,5; обработчика

                    ....;                 прерывания

                    ....

        POP AX

        IRET

Если допускаются вложенныепрерывания, то вначале помещается команда STI- разрешение преываний,запрещенных в п.5. Инструкции push и pop сохраняют и восстанавливают содержимоерегистров фоновой задачи, если эти же регистры используются и обработчикомпрерывания (в примере регистр AX).

8. Команда IRET извлекает изстека адрес возврата - IP,CS и содержимое PSW;

9. МП прдолжает работу с адресавозврата. При выполнении программных прерываний по команде INT N действиявыполняются с п.3. N находится в пределах 0 <= N <= 255, поэтомучетырехбайтовые вектора прерываний занимают первые 1024 байта памяти.

8.7.3 ПРЯМОЙ ДОСТУП К ПАМЯТИ (ПДП) И ТРАНЗАКЦИИ

Обмен большим количеством байтов,между ВУ (например дисковым накопителем) и памятью с помощью предыдущих двухметодов малоэффективен, т.к. обмен происходит по цепочке: ВУ - аккумулятор (AXили AL) - память или наоборот. В режиме ПДП при поступлении запроса от ВУ навход HOLD, МП разрешает обмен выходным сигналом HLDA. Микропроцессор на времяобмена отключается от ШУ,ШД и ША переводя их в третье состояние по входам ~OE буферныхэлементов сигналом ~BUSEN = 1 .Специальная микросхема (контроллер ПДП)использует освободившиеся шины для высокоскоростного прямого обмена ВУ -память. Скорость обмена достигает многих мегабит/сек.

На рис.6 показан процессвыполнения основной (фоновой) программы - интервалы времени (начало..t1,t2..конец) и выполнение процедуры передачи массива данных, на рисунке этототрезок времени обозначен двойной линией. На диаграмме (А) ЭВМ задействованатолько для передачи (отрезок t1..t2), в остальное время компьютер бездействует.Во втором варианте - диаграмма (Б), код программы передачи жестко встроен вфоновую задачу. В третьем варианте (В) передача массива оформлена в видеподпрограммы прерывания, причем если запроса на прерывание не поступит,тосуммарное время на выполнение фоновой программы уменьшится на t2-t1. Прииспользовании режима ПДП сохраняются преимущества метода прерывания, время напередачу сокращается - диаграмма (Г), но фоновая задача по прежнемупрерывается. В последнем случае передача данных производится почти безнарушения хода программы параллельно во времени (Д). Транзакции реализованы внекоторых семействах однокристальных микроЭВМ например в MCS-96.

ЗАДАЧИ И УПРАЖНЕНИЯ

Одна подпрограмма вызываетдругую.Укажите короткий адрес возврата из вложенной прoцедуры.

 

Пояснение : Вложеннаяподпрограмма это подпрограмма, которая вызывается из другой подпрограммы. Вызовподпрограммы сопровождается помещением в стек адреса возврата. Стек заполняетсяначиная с дна. Короткий адрес - двухбайтовый адрес в пределах одного кодовогосегмента. Байты в стек помещаются по правилу "старший байт по старшемуадресу". Теперь нетрудно ответить на предложенный вопрос: 4dba.

В тексте программы следуют подрядкоманды: PUSH AX; PUSH CX; POP DX; POP BX. Чему будет равно содержимое регистраBH? Рисунок стека соответствует промежуточному состоянию (до выполнения командPOP).

Пояснение : В стек дважды что-топомещается и дважды что-то извлекается, причем последние два байта помещаются врегистр BX. Перефразируя правило "последним вошел - первым вышел" в"последним вышел - первым вошел", придем к выводу, что содержимое AXзасылается в регистр BX. Команда PUSH AX помещает два байта в стек по правилу"старшая половина двухбайтового регистра - по старшему адресу".Ответ: c9

В тексте программы следуют подрядкоманды: POP AX; POP DX. Чему будет равно содержимое регистра DL?

Ответ: 4c

На временных диаграммах внизуприведены управляющие сигналы на выходах микропроцессора (без сохpанения точныхвpеменных пpопоpций). Что осуществляется в момент времени отмеченный знаком +?  Чтение данных из памяти, запись данных в память вывод данных впорт, ввод данных из порта, ничего из указанного выше.

Пояснения : Если ~DEN=0(разрешение данных) возможно 4 случая (для приведенных диаграмм): 1) M/~IO = 0,~RD = 0 активны сигналы ввод/вывод (~IO) и чтение-ввод (~RD). 2) M/~IO = 0, ~WR= 0 активны сигналы ввод/вывод (~IO) и запись-вывод(~WR). 3) M/~IO = 1, ~RD = 0активны сигналы обращения к памяти(M) и чтение-ввод(~RD). 4) M/~IO = 1, ~WR = 0активны сигналы обращения к памяти(M) и запись-вывод(~WR).

Ответ: Вывод данных в порт.

Приложение № 3

 ОСНОВНЫЕ ПОЛОЖЕНИЯ АЛГЕБРЫ ЛОГИКИ

В отличие от аналоговыхэлектронных устройств, в цифровых устройствах (ЦУ) входные и выходные сигналымогут принимать ограниченное количество состояний. В соответствии с логическимсоглашением (ГОСТ 2.743-82), в зависимости от конкретной физической реализацииэлементов ЦУ, более положительному значению физической величины, "H"- уровень, соответствует состояние "логическая 1", аменее положительному значению ,"L - уровень" - "логический0". Такое соглашение называется положительной логикой. Обратноесоотношение называется отрицательной логикой. В ГОСТ'е 19480 - 89 данынаименования, определения и условные обозначения основных параметров ихарактеристик цифровых микросхем.

Теоретической основойпроектирования ЦУ является алгебра-логики или булева алгебра,оперирующая логическими переменными. Для логических переменных, принимающихтолько два значения,существуют 4 основных операции. Операция логическое "И"(AND) конъюнкция или логическое умножение,обозначается * или /. Операция логическое "ИЛИ" (OR),дизъюнкция или логическое сложение,обозначается + или / . Операция логическое "НЕ" (NOT),изменение значения, инверсия или отрицание, обозначаетсячертой над логическим выражением. Инверсия иногда будет в тексте обозначатьсязнаком " ~ ". Операция эквивалентности обозначается "=". Следующие соотношения являются аксиомами.

Если сигнал ~OE=0, транзистор VT3закрыт и включенные встречно диоды не оказывают влияния на логические выходыэлемента И. Напряжения на базах транзисторов VT1 и VT2 находятся в противофазеи, если x0*x1=1, то верхний транзистор закрыт, а нижний открыт. Потенциалколлектора VT2 примерно равен нулю и следовательно y=0. При других значениях x0и x1 нижний транзистор заперт, а верхний открыт и на выходе схемы - высокийуровень, т.е. при ~OE=0 схема работает как обычный элемент И-НЕ. Картинасущественно изменится при ~OE=1. Транзистор VT3 откроется до насыщения и набазах транзисторов VT1 и VT2 потенциал опустится примерно до нуля, запирая их.Выход "y" окажется отключенным от внутренней логической схемы. Насхемах тристабильные элементы обозначаются ромбом с поперечной чертой илибуквой Z.

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

·    Дополнительныйинверсный вход относится к категории управляющих или функциональных. Функциявхода зашифрована в его обозначении (Output Enable - разрешение выхода (~OE)),азначение активного уровня на этом входе,при котором функция выполняется, равно1, если вход прямой, и равно 0, если вход инверсный, как на схеме.

1.10 МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ

Полученные по формуле СДНФ (12)выражение может быть преобразовано (не всегда) к виду, имеющему меньшее числопеременных и операций по сравнению с исходным. Такое преобразование называетсяминимизацией.

Рассмотрим пример. Имеется тридвоичных датчика xi. Необходимо реализовать ЛФ Yмажор принимающую значение 1,когда равны 1 значения двух и более датчиков. Такая функция называетсямажоритарной. Ее таблица истинности имеет вид:

По формуле (12): Yмажор =~x2*x1*x0 + x2*~x1*x0 + x2*x1*~x0 + x2*x1*x0. (3,5,6,7 - строчки таблицы ).Полученному выражению соответствует схема на рис.6.

Схема содержит 4 трехвходовыхэлемента "И" и 1 четырехвходовый элемент "ИЛИ". Нахождениеминимальной формы ЛФ производится методом алгебраических преобразова- ний, спомощью таблиц Карно или машинными методами для больших проектов.

1.11 ТАБЛИЦА КАРНО

Таблица Карно (ТК) этовидоизмененная запись таблицы истинности. Для функции мажоритарности изпоследнего примера (ТК) выглядит следующим образом:

Правила построения ТК  следующие:1)Количество клеток ТК равно количеству строк таблицы истинности. 2)Слева исверху располагаются значения аргументов. Порядок размещения аргументов таков,что в двух соседних по горизонтали и вертикали клетках отличается значениетолько одного аргумента (поэтому соседними считаются и клетки, находящиеся напротивоположных краях таблицы). 3)В клетки заносятся соответствующие значенияЛФ. 4)Единичные клетки объединяются в прямоугольники (импликанты) по 2^iклеток. 5)Для каждого прямоугольника записывается произведение тех аргументов,которые в соседних клетках не изменяют своего значения. 6)Переменные входят впроизведение в прямом виде, если их значение в соседних клетках равно 1, впротивном случае в инверсном. 7)Полученные произведения складываются по ИЛИ вискомую ЛФ.

В примере имеется 3прямоугольника - A,B,C, причем Ya = x2*x0 (x1 в соседних клетках меняет своезначение, поэтому в конъюнкцию не входит). Yb = x1*x0 и Yс = x2*x1.

Yмажор = Ya + Yb + Yc  =  x2*x0 + x1*x0+ x2*x1.          (13)

Соответствующая схема (рис.7.)проще, чем на рис.6.

1.12 ПРЕОБРАЗОВАНИЕ ЛФ К БАЗИСУ "И-НЕ" И"И-ИЛИ-НЕ"

Применяя к выражению (13) аксиомудвойного отрицания (9) получим:

Yмажор =~(~( x2*x0 + x1*x0 +x2*x1))                    (14)

Формуле (14) соответствует схема(рис.8,слева) в базисе И-ИЛИ-НЕ.

Применяя к выражению (14)соотношение двойственности (11) получим ~( ~(x2*x0) * ~(x1*x0) * ~(x2*x1)) .Последнему выражению соответствует схема в базисе И-НЕ (рис.8, справа).

1.13 ВРЕМЕННЫЕ ПАРАМЕРЫ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ

Рассмотрим реакцию инвертора наизменение входного сигнала (рис.9). Инерционные свойства инвертора приводят кзадержке сигнала при его прохождении от входа к выходу.

Процесс изменениянапряжения от низкого уровня L к высокому H, называется фронтом сигнала(положительным перепадом, положительным фронтом), а обратный процесс - спадом(отрицательным перепадом, отрицательным фронтом).  Если существенноих взаимное расположение, то фронт может быть передним и задним. Длительность фронтов на рис.9 обозначенаt1,0 - отрицательный и t0,1 - положительный.

Величинами tзд.р.0,1 иtзд.р.1,0 обозначается время задержки распространения сигнала от входа довыхода  при переходе из 0 в 1 и наоборот (рис.9). Минимальная длительность импульса навходе элемента tи.мин пропорциональна среднему значению tзд.р.ср. равномуполусумме tзд.р.0,1 и tзд.р.1,0. Максимальная частота входных импульсов Fмаксобратно пропорциональна tзд.р.ср. Из сказанного следует, что быстродействиеэлемента тем выше, чем меньше tзд.р.ср.

Определения вышеуказанных величинс их отечественными и международными обозначениями приведены в разделеобозначения некоторых параметров микросхем.

Быстродействие схемы зависиттакже от алгебраической формы представления ЛФ. Пусть y = a*b + c*a + d =  a*(b+c)+d. Первой форме (ДНФ) соответствует схема (A),  а второй -схема (B) см. рис.10.

Если среднее время задержкисигнала в каждом элементе одинаково,  то 2tзд.р.ср. < 3tзд.р.ср.и  двухъярусные схемы (СДНФ) в общем случае быстрее. Правда в записи соскобками может уменьшиться количество элементов и/или проводников (в схеме (B)на один провод меньше).

1.14 ПЕРЕХОДНЫЕ ПРОЦЕССЫ В ЛОГИЧЕСКИХ СХЕМАХ

Отличие времени задержки tзд.р.от нуля при прохождении сигнала через логическую схему может приводить квозникновению помех в выходном сигнале. Эти помехи имеют вид короткихимпульсов, и в некоторых случаях приводят к серьезным сбоям в работе схем.Рассмотрим устройство на рис.11. Если элементы схемы не вносят задержкисигнала, а x0 и x1 находятся в противофазе, т.е. x0 = ~x1, то y = ~(x1 * ~x1) =1. Если же каждый из пяти ЛЭ имеет задержку tзд.р., тогда x0' запаздываетотносительно x0 на 4tзд.р. и на выходе схемы возникает незапланированный"отрицательный" импульс (интервал 1..2), сдвинутый на tзд.р. элементаИ-НЕ (интервал 0..1). Процесс прохождения входных сигналов до общего выходаназывается состязаниями или "гонками".

Вредный эффект "гонок"может быть устранен несколькими способами, один из которых заключается вдобавлении к ЛФ дополнительного слагаемого. Пусть некоторая ЛФ равна F = x1*x2+ ~x1*x0, тогда при x2=x0=1 может появиться помеха, вызванная тем, что сигнал~x1 задержан относительно x1 на величину задержки инвертора (см. рис.12).

Добавление лишнего импликанта (втаблице обведен точками) устраняет проблему, т.к.при критической ситуации,когда x2=x0=1, дополнительная составляющая x0*x2=1 и функция F = x1*x2 + ~x1*x0+ x0*x2 равна всегда 1 при x2=x0=1.

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

Список литературы

СА Майоров, ВВ Кириллов, ААПриблуда Введение в микро-ЭВМ

http://www.assembler.webservis.ru

http://www.kalashnikoff.ru

http://www.vlata.com


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

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

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно