Главная страница
Навигация по странице:

  • АРХИТЕКТУРА ИНФОРМАЦИОННЫХ СИСТЕМ

  • Лабораторная работа 1 ОРГАНИЗАЦИЯ МИКРОСИСТЕМ НА БАЗЕ МИКРОПРОЦЕССОРОВ I8086 1.1. Цель работы

  • 1.2. Принципы организации микросистем на базе МП i8086 (К1810ВМ86)

  • 1.3. Структурная схема микропроцессора i8086 (рис. 1.2)

  • 1.4. Программная модель МП (рис. 1.4.)

  • Признаки

  • 1.5 Адресная организация памяти, представление данных

  • 1.6. Примеры форматов команд МП i8086

  • 1.7. Пример разработки программы в машинных кодах

  • 1.10. Порядок выполнения работы

  • Создание исходного файла программы

  • Архитектура ЭВМ. Архитектура


    Скачать 392.83 Kb.
    НазваниеАрхитектура
    АнкорАрхитектура ЭВМ
    Дата30.09.2021
    Размер392.83 Kb.
    Формат файлаpdf
    Имя файлаchernov_a.v._arkhitektura_inform_sistem_ch.1.pdf
    ТипУчебно-методическое пособие
    #239406
    страница1 из 4
      1   2   3   4

    РОСЖЕЛДОР
    Федеральное
    государственное бюджетное образовательное
    учреждение
    высшего образования
    «Ростовский государственный университет путей сообщения»
    (ФГБОУ ВО РГУПС)
    ________________________________________________________________
    А.В. Чернов, А.В. Тишина
    АРХИТЕКТУРА
    ИНФОРМАЦИОННЫХ СИСТЕМ
    Учебно-методическое пособие для выполнения лабораторных и практических работ
    Часть 1
    Микропроцессоры INTEL 80X86
    Ростов-на-Дону
    2017

    2
    УДК 681.31(75.8)
    Чернов
    А.В.
    Архитектура информационных систем: [Электронный ресурс] учеб- но-методическое пособие. В 3 ч. Ч. 1. Микропроцессоры INTEL 80X86
    /А.В. Чернов, А.В. Тишина; ФГБОУ ВО РГУПС. – Ростов н/Д, 2017. – 50 с.
    Учебно-методическое пособие предназначено для выполнения лабо- раторных и практических работ. Приводятся теоретические и методиче- ские рекомендации к выполнению работ по изучаемым темам. Рассмотре- ны принципы программирования и базовые приемы и на примере микро- процессоров семейства Intel 80х86. Приводится методика выполнения ра- боты, контрольный пример, варианты заданий.
    Предназначено для студентов направления подготовки 09.03.02
    «Информационные системы и технологии» и 09.03.01 «Информатика и вычислительная техника» при изучении дисциплин «Архитектура инфор- мационных систем», «Архитектура вычислительных систем» и «Архитек- тура вычислительных и автоматизированных систем».
    Одобрено к внесению в «Электронный университет» кафедрой
    «Вычислительная техника и автоматизированные системы управления».
    ©Чернов А. В. 2017
    ©Тишина А.В. 2017
    © «Электронный университет» ФГБОУ
    ВО РГУПС, 2017

    3
    ВВЕДЕНИЕ
    Современный специалист в области создания программного обеспе- чения для вычислительной техники и автоматизированных систем должен обладать достаточными знаниями по использованию средств вычисли- тельной техники в организации и управлении процессами разработки про- граммного обеспечения. Низкоуровневое программирование позволяет четко усвоить принципы работы вычислительных машин и систем, а также их функциональных блоков, более рационально использовать их вычисли- тельную мощность при разработке конкретного вида программного обес- печения, с учётом его особенностей.
    Целью
    проведения лабораторных и практических работ является изучение студентами организации и принципов функционирования памя- ти, микропроцессора, организации ввода – вывода, а также приобретение навыков низкоуровневого программирования на языке ассемблера.
    Для выполнения работ требуются IBM совместимый персональный компьютер, операционная система Windows XP и выше, программный па- кет ассемблера TASM.
    Лабораторная
    работа 1
    ОРГАНИЗАЦИЯ
    МИКРОСИСТЕМ НА БАЗЕ
    МИКРОПРОЦЕССОРОВ
    I8086
    1.1. Цель работы
    Знакомство с принципами организации микросистем на базе МП i8086/80286 (далее МП86). Изучение архитектуры и программирования в машинных кодах МП86. Отработка навыков работы с турбоотладчиком
    TD.
    1.2. Принципы организации микросистем на базе МП i8086
    (К1810ВМ86)
    На рис. 1.1 приведена типовая структура микропроцессорных систем и микрокомпьютеров на базе 16-битного микропроцессора i8086 или
    К1810ВМ86. Микросистема содержит центральный процессор на основе
    МП i8086, память, подсистему ввода-вывода и логику управления систем- ной шиной, которая преобразует центральную магистраль Адрес/Данные
    (A/D) МП в раздельные шины адреса и данных. Такую структуру имеют
    16-разрядные персональные компьютеры типа IBM PC/XT, Искра 1030,
    СМ1910, Mazovia CM1914 и др.

    4
    МП
    8086
    Логика управле ния сист шиной
    Память
    1
    МБайт
    (
    ПЗУ
    ,
    ОЗУ
    )
    Подсистема ввода
    /
    вывода
    64
    КБайт
    A/D
    Упр
    20
    ША
    ШД
    ШУ
    16 16 20 16 16
    Рис. 1.1. Структура микросистемы на базе МП i8086
    1.3. Структурная схема микропроцессора i8086 (рис. 1.2)
    В МП i8086 основные этапы выполнения команды распределены внутри МП между двух сравнительно независимых устройств (рис. 1.2): между операционным (ОУ) и устройством сопряжения (УС).
    ОУ содержит 16-битные регистры данных AX, BX, CX, DX, указатели памяти SP, BP, SI, DI, арифметико-логическое устройство АЛУ и регистр признаков F. Когда ОУ занято выполнением текущей команды, устройство сопряжения УС осуществляет опережающую выборку из памяти очеред- ных команд. Команды хранятся во внутренней регистровой памяти, назы- ваемой очередью (буфером) команд. Очередь команд по существу выпол- няет функцию регистра команд процессора. Длина очереди составляет 6 байт.

    5
    CM
    CS
    DS
    SS
    ES
    Регистр связи
    IP
    6 5
    4 3
    1 2
    Очередь команд
    Сегментные регистры
    Указ команд
    Устройство управле
    - ния
    А
    Л
    У
    AH
    AL
    BH
    BL
    CH
    CL
    DH
    DL
    SP
    BP
    SI
    DI
    Регистры данных
    Указатели
    F
    20
    Адрес
    /
    Данные
    0 7
    15 0
    ОУ
    16
    Упр
    0 19
    УС
    AX
    BX
    CX
    DX
    Рис. 1.2. Структурная схема МП i8086
    В состав УС входят 16-битные сегментные регистры CS, DS, SS и ES и сумматор CM, который формирует 20-битный физический адрес сегмен- та (базы) и смещения, называемого также эффективным (исполнительным) адресом EA. Это делается путём суммирования EA с содержимым сег- ментного регистра, сдвинутого относительно EA на 4 бита, как показано на рис. 1.3.

    6
    Сегментн адрес
    Эффект адрес
    EA
    СМ
    Физический адрес x2**4
    Адрес
    =123A0
    =157BB
    Память
    Операнд
    Сегмент
    64
    К
    =341B
    Рис. 1.3. Схема вычисления физического адреса
    Если, например, содержимое сегментного регистра данных
    DS=123A, а указатель памяти SI=341B, то физический адрес операнда в памяти будет равен 157ВВ.
    Пример 1.1
    +
    1 2 3 A 0
    – начальный адрес сегмента данных DS

    2 4
    3 4 1 B
    – эффективный адрес в SI
    1 5 7 B B
    – физический адрес операнда в памяти
    1.4. Программная модель МП (рис. 1.4.)
    В программной модели МП (рис. 1.4) можно выделить следующие 4 группы регистров.
    1. Регистры данных
    В зависимости от того, чем оперирует команда – словами или байта- ми, регистры данных можно рассматривать как четыре 16-битных (AX,
    CX, BX, DX) или как восемь 8-битных регистров (AL, AH, CL, CH, BL,
    BH, DL, DH). Символы L и H означают младшие и старшие байты 16- битных регистров. Каждый из этих регистров помимо общих выполняет и специализированные функции: AX, AL – аккумулятор; BX – базовый ре- гистр (для косвенной адресации памяти); CX – счетчик в операциях с це- почками; DX – регистр данных или указатель при косвенной адресации ре- гистров (портов) ввода/вывода.

    7
    AH
    AL
    BH
    BL
    CH
    CL
    DH
    DL
    SP
    BP
    SI
    DI
    CS
    DS
    SS
    ES
    F
    IP
    7 15 8
    0
    Аккумулятор
    Базовый рег
    Счётчик
    Регистр данных
    Указатель стека
    Указатель базы
    Индекс источн
    Индекс приемн
    Рег сегмента команд
    Рег сегмента данных
    Рег сегмента стека
    Рег доп сегмента
    Указ команд
    Рег признаков
    Регистры указатели
    Регистры сегментов
    Регистры данных
    AX
    BX
    CX
    DX
    Рис. 1.4. Программная модель МП i8086 2. Регистры сегментов CS, DS, SS, ES
    Как уже отмечалось ранее, память микросистемы на базе МП86 со- держит сегменты памяти по 64 Кбайт. МП может иметь дело одновремен- но с четырьмя типами сегментов: кода (команд), стека, данных и дополни- тельного сегмента данных.
    Сегментные регистры выполняют следующие функции.
    Регистр сегмента команд CS указывает на сегмент, содержащий те- кущую выполняемую программу. Для вычисления адреса следующей
    (с учётом очереди команд) исполняемой команды к содержимому CS, умноженному на 2 4
    , добавляется содержимое указателя команд IP.
    Регистр сегмента стека SS указывает на текущий сегмент стека.
    Регистр сегмента данных DS указывает на текущий сегмент данных, обычно содержащий используемые программой данные.
    Регистр дополнительного сегмента ES указывает на текущий допол- нительный сегмент, который используется для выполнения операций над строками.
    3. Регистры указателей SP, BP и индексов DI, SI
    Регистры предназначены для хранения внутрисегментных смещений и обеспечивают косвенную адресацию данных в пределах текущего сегмен- та. Эти же регистры могут участвовать в выполнении арифметических и логических операций над двухбайтными данными, т.е. используются при этом как регистры данных. Поэтому данную группу регистров и регистры

    8 данных относят к регистрам общего назначения (РОН). Указатели стека SP и базы BP предназначены для доступа к данным в текущем сегменте стека.
    Индексные регистры DI (приёмника), SI (источника), а также регистр BX содержат смещение, которое по умолчанию относятся к сегменту данных
    (DS). В операциях с цепочками данных указатель DI по умолчанию отно- сится к дополнительному сегменту (ES). Указатель команд IP адресует следующую команду программы (разумеется, с учётом очереди команд) в сегменте кодов (CS). Этот регистр ведёт себя как программный счётчик PC в 8-битном МП К580ВМ80 (i8080).
    4. Регистр признаков F
    Формат 16-битного регистра признаков F показан на рис. 1.5.
    15 14 13 12 11 10 9
    8 7
    6 5
    4 3
    2 1
    0
    X
    X
    X
    X
    OF
    DF
    IF
    TF
    SF
    ZF
    X
    AF
    X
    PF
    X
    CF
    Признаки
    (флажки):
    OF – переполнение,
    DF, IF, TF – признаки управления МП,
    SF – знак, ZF – нуль,
    AF – вспомогательный перенос,
    PF – четность, CF – перенос.
    Рис. 1.5. Формат регистра признаков
    Младший байт регистра полностью соответствует регистру призна- ков МП К580ВМ80. Кроме того, в старшем байте F содержится признак арифметического переполнения OF. В дополнение к этому в регистре при- знаков F фиксируются некоторые признаки, предназначенные для управ- ления работой МП. DF – признак направления, указывающий на то, что обрабатываются цепочки: либо от меньших адресов к большим (DF=0), либо наоборот (DF=1). IF – признак прерывания: при IF=1 прерывание раз- решено. TF – признак трассировки, разрешающий при TF=1 выполнять программу по командам (пошаговый режим).
    1.5 Адресная организация памяти, представление данных
    МП i8086 обеспечивает адресацию памяти ёмкостью 2 20
    =1 Мбайт. На программном уровне память представляют как линейную последователь- ность из 2 20
    байт =1 Мбайт (рис. 1.6).

    9
    Память
    Физ. адрес
    7 0 00000 1А
    Байт 1А по адресу 00000 00001 2В
    Слово 3С2В по адресу 00001 00002 3С
    00003 4В
    Байт 4В по адресу 00003 00004 50
    Двойное слово FFFF6F50 по адресу 00004 00005 6F
    00006
    FF
    00007
    FF
    ХХ
    ХХ
    FFFFF
    ХХ
    Рис. 1.6. Адресная организация памяти
    Два смежных байта образуют слово. Слово может храниться по чет- ному или нечетному адресу. В первом случае слово передается за один цикл шины МП, а во втором – за два.
    Следовательно, для достижения наивысшей производительности МП необходимо слова размещать по четным адресам памяти. При этом адре- сом слова считается адрес его младшего байта, а старший байт размещает- ся по более старшему адресу. Принцип “Младшее по младшему адресу” сохраняется и для представления других единиц данных: многобайтных команд, двойных слов и т.д.
    Отметим, что выравнивание команд по четным адресам практически не влияет на производительность МП, т. к. он выбирает их в очередь ко- манд с опережением. Двойное слова содержит 4 байта, а квадрослово – 8.
    1.6. Примеры форматов команд МП i8086
    Примеры форматов команд с регистровой (1, 5, 6) , непосредственной
    (2, 7, 8) и прямой (3, 4) адресацией приведены на рис. 1.7.
    В обобщенном представлении команд, например ADD reg1,reg2, по- сле мнемоники команды указывается приемник, а затем через запятую – источник операнда. В байтах data L, data H команды указываются младшая и старшая части (если W=1) константы соответственно.
    Во всех командах содержится однобитное поле W: если W=1, то ко- манда оперирует словом, если W=0, то – байтом.
    В поле reg (или reg1, reg2, r/m) команд указываются трехбитные ад- реса РОНов МП. В табл. 1.1 приведены адреса регистров МП для различ- ных значений W.

    10 1.
    Передача регистр – регистр MOV reg1,reg2 1-й байт
    2-й байт
    3-й байт
    7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 1 0 0 0 1 0 1 w
    1 1 reg1 reg2 2.
    Передача константы в регистр MOV reg,data
    1 0 1 1 w reg
    Data L
    Data H
    ,если w=1 3.
    Передача из памяти в аккумулятор MOV acc,[EA]
    1 0 1 0 0 0 0 w
    Мл. часть ЕА
    Ст. часть ЕА
    4.
    Передача из аккумулятора в память MOV [EA],acc
    1 0 1 0 0 0 1 w
    Мл. часть ЕА
    Ст. часть ЕА
    5.
    Сложить регистр – регистр ADD reg1,reg2 0 0 0 0 0 0 1 w
    1 1 reg1 reg2 6.
    Вычесть регистр – регистр SUB reg1,reg2 0 0 1 0 1 0 1 w
    1 1 reg1 reg2 7.
    Сложить константу с аккумулятором ADD acc,data
    0 0 0 0 0 1 0 w
    Data L
    Data H
    ,если w=1 8.
    Вычесть константу из аккумулятора SUB acc,data
    0 0 1 0 1 1 0 w
    Data L
    Data H
    ,если w=1
    Рис 1.7. Примеры форматов команд с регистровой, непосредственной и прямой адресацией
    Таблица 1.1. Адреса регистров МП
    Адрес регистра reg, r/m
    Регистр
    W=1
    W=0 000 001 010 011 100 101 110 111
    AX
    CX
    DX
    BX
    SP
    BP
    SI
    DI
    AL
    CL
    DL
    BL
    AH
    CH
    DH
    BH

    11
    Рассмотрим примеры кодирования команд.
    Пример 1.2. Команды передачи
    Код команды
    Мнемоника
    Операция
    10001011
    MOV AX,BX
    AX
    BX
    11000011 10001010
    MOV AH,BH
    AH
    BH
    11100111
    BA
    MOV DX,02A7H
    DX
    02A7H
    A7 02
    A1
    MOV AX,[1027H]
    AX
    [1027H]
    27 10
    1.7. Пример разработки программы в машинных кодах
    При программировании на машинном языке адреса, коды команд и данные записываются в 16-ричной системе счисления.
    Разработаем программу для вычисления выражения
    M=K+N-R +120,
    (1.1) в котором все операнды и результат – двухбайтные данные. K, R, M раз- мещены в сегменте данных, а N – в регистре DX. Числа со знаком пред- ставлены в дополнительном коде (ДК). Например, ДК чисел K=+60, R=-10,
    N=+30 соответственно равны [K]
    ДК
    =0060, [R]
    ДК
    =FFF0, [N]
    ДК
    =0030. Резуль- тат M=+1C0, [M]
    ДК
    =01C0.
    Правило образования ДК.
    ДК положительного числа есть само число, представленное в формате байта или слова. ДК отрицательного числа есть инверсия (not) числа плюс единица, например в формате слова [-30]
    ДК
    =not(0030)+1=FFCF+1=FFD0.
    Инверсия 16-ричной цифры равна: not(
    α
    )=F –
    α
    В табл. 1.2 приведена программа вычисления выражения (1.1).
    Начальный эффективный адрес программы равен 100. Этому адресу соот- ветствует физический адрес CS

    2 4
    +100. Далее его будем обозначать как
    CS:0100. Эффективные адреса данных лежат в диапазоне 0500-0505, а фи- зические – в диапазоне DS:0500 - DS:0505.

    12
    Таблица 1.2. Программа вычисления выражения M=K+N-R+120
    Адрес
    Код
    Мнемоника
    Операция
    CS:0100
    A1
    MOV AX,[0502H]
    АX
    R
    0101 02 0102 05 0103 2B
    SUB DX,AX
    DX
    N-R
    0104
    D0 0105
    A1
    MOV AX,[0500H]
    AX
    K
    0106 00 0107 05 0108 03
    ADD AX,DX
    AX
    K+N-R
    0109
    C2 010A
    05
    ADD AX,0120H
    AX
    AX+120 010B
    20 010C
    01 010D
    A3
    MOV [0504H],AX
    [0504]
    M
    010E
    04 010F
    05 0110 90
    NOP
    Пустая операция
    Адреса данных
    Данные в
    ДК
    DS:0500 60
    K=0060
    Операнд K=+60 0501 00 0502
    F0
    R=-0010
    Операнд R=-10 0503
    FF
    0504
    XX
    M=XXXX
    Результат M
    0505
    XX
    РОН
    Данные
    DX
    0030
    N=0030
    Операнд N=+30
    1.8. Отладчик TD
    Отладчик TD – это системная программа, находящаяся на диске
    ПЭВМ. Отладчик позволяет управлять процессом исполнения пользова- тельской программы. Команды TD, вводимые с клавиатуры ПЭВМ, позво- ляют выводить на экран и изменять содержимое памяти и регистров МП, исполнять программу по шагам (командам) и др. Команды отладчика бу- дут рассмотрены при выполнении работ.

    13
    1.9. Варианты заданий
    Таблица 1.3. Варианты заданий
    № варианта задания
    Размещение операндов
    Длина операн- да
    Нач. адр. прогр.
    M
    K
    R
    N
    1.M=K+R+2N-3
    Память
    BH
    Байт
    100 2.M=K-R-N+50
    Память
    DX
    Пам. Слово
    100 3.M=2K-N+R-6
    Пам.
    CL
    Память
    Байт
    100 4.M=K+3N-R+20
    Память
    DX
    Слово
    100 5.M=K-R-N+8
    Память
    CL
    Пам. Байт
    100 6.M=2K-R+N+18
    Пам.
    DX
    Память
    Слово
    100 7.M=2K-2R+N-10
    Память
    DL
    Пам. Байт
    100 8.M=120-K-R+N
    Пам.
    CX
    Память
    Слово
    100 9.M=20+K-2R+N
    Память
    CH
    Байт
    100 10.M=500+K-2R+N
    Пам.
    BX
    Память
    Слово
    100
    1.10. Порядок выполнения работы
    Ниже изучаются команды программы Norton Commander и отладчика
    TD персональной ЭВМ, с помощью которых осуществляются ввод и от- ладка программ в машинных кодах микропроцессора МП86. В качестве примера используется программа вычисления выражения M=K-R+N+120, приведенная в табл. 1.2.
    Создание
    исходного файла программы
    1.
    Для создания в системе Norton Commander (NC) нового файла про- граммы последовательно выполните пп. 2-4, при корректировке файла – пп. 5-7. Вызов системы производится командой nc.
    2.
    При нажатой клавише Shift нажмите клавишу F4 – программа NC выдаст запрос. Введите в нем имя файла и его расширение txt и нажмите
    Enter (

    ). Например, petrov.txt

    . Еще раз нажмите Enter и попадете в NC.
    3.
    С помощью команд встроенного редактора NC наберите программу
    (табл. 1.2) в машинных кодах: a1 0205 2bd0 a1 0005 03c2 05 2001 a3 0405 90

    14 4.
    Чтобы сохранить созданный файл на диске, нажмите F2, а затем
    F10 – вы выйдете из редактора.
    5.
    Если потребуется скорректировать или дополнить известный файл, то в панели системы NC курсором выделите имя этого файла и нажмите F4
    – вы попадете в редактор с вызванным файлом.
    6.
    С помощью команд редактора NC скорректируйте исходный файл.
    Например, перед машинной командой 90 введите еще несколько кодов 90
    (пустая операция NOP).
    7.
    Чтобы сохранить созданный файл на диске, нажмите F2, а затем
    F10 – вы выйдите из редактора.
    Выделенный в панели NC файл можно распечатать на принтере, если нажать F5 – копировать, а затем при ответе на запрос ввести PRN (прин- тер) и нажать

      1   2   3   4


    написать администратору сайта