Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM_lectures.doc
Скачиваний:
27
Добавлен:
28.04.2019
Размер:
992.77 Кб
Скачать

Программирование на Ассемблере для ibm pc

Литература:

  1. Д.Бредли. Программирование на языке ассемблера для персональной ЭВМ фирмы IBM. М.: Р. и С.1988

  2. Л. Скэнлон. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера. М.: РиС. 1989

  3. Р. Джордейн. Справочник программиста персональных компьютеров типа IBM PC, XT и АТ. М.: ФиС. 1992.

  4. П. Нортон. Программно-аппаратная организация IBM PC. РиС

  5. П. Нортон. Персональный компьютер фирмы IBM и операционная система MS DOS. М.: РиС, 1991.

  6. Ю.-Чжен Ли, Г.Гибсон. Микропроцессоры семейства 8086/8088. М.: РиС, 1987

  7. П.И.Рудяков, У.Г.Финотенов. Программируем на языке ассемблера IBM PC в 2х частях. Москва ЭНТРОП, 1995 г.

  8. Абель. Язык ассемблера для IBM PC. 1994 г.

  9. Нортон. Программирование на языке ассемблера для IBM PC.

Программная модель 8086

AX

AH

AL

000

группа HL

аккумулятор

BX

BH

BL

001

базовый регистр

CX

CH

CL

010

регистр счетчик

DX

DH

DL

011

регистр данных

SI

110

группа PI

индекс источника

DI

111

индекс приемника

BP

101

указатель базы

SP

указатель стека

IP

указатель команд

FLAG

регистр флагов

CS

сегментные регистры

DS

ES

SS

МП 8086 – 16 разрядный МП (выпуск 1979 год)

8088 – 8 разрядный вариант 8086 (8 линий данных), но имеет все функциональные возможности 8086.

Отечественный аналог 8086 – КР1810ВМ86.

В 8086 имеется определенная совместимость с 8080. 8086 – базовый МП в семействе 80х86.

Число линий адреса возросло с 16 до 20, то есть мы можем адресовать 1Мб.

Программная модель мп

набор РОН

AX

AH

AL

аккумулятор

BX

BH

BL

базовый регистр

CX

CH

CL

регистр счетчик

DX

DH

DL

регистр данных

8 разр.

8 разр.

SI

индекс источника

DI

индекс приемника

BP

указатель базы

SP

указатель стека

16 разр.

CS

сегмент кода

DS

сегмент данных

ES

дополнительный сегмент

SS

сегмент стека

16 разр

4 разр

IP

указатель команд

FLAGH

FLAGL

регистр флагов

SI, DI, BP, SP – могут использоваться и в разных целях (в частности для сравнения 16-разрядных адресов), но чаще по названию.

Регистры АX, BX, CX, DX – 16 разрядные. Имеют старшую и младшую половину, которые могут быть использованы самостоятельно. В этом случае эти 8-битные регистры обозначаются AH, AL, BH, BL, CH, CL, DH, DL. Буквы A, B, C, D являются начальными буквами слов Аккумулятор, База, Счетчик, Данные.

С точки зрения программной совместимости с МП 8080 имеется следующее соответствие:

МП 8086

МП 8080

AL

A

BH

H

BL

L

CH

B

CL

C

DH

D

DL

E

Cлово состояния МП имеет 16 бит, но 7 из них не используются.

Флажки разделены на условные (флажки условий) – отражают результат предыдущих операций,

и управляющие (флажки управления), от которых зависит выполнение специальных функций.

Младший байт PSW соответствует 8-битному PSW МП 8080 и содержит все флажки кроме OF.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

OF

DF

IF

TF

SF

ZF

AF

PF

СF

флажки 8080

флажок

SF

знак

ZF

ноль

PF

паритет

1, если младшие 8 бит результата содержит четное число единиц

CF

перенос

при сложении/вычитании происходит перенос (заем) из старшего бита.

AF

полуперенос

перенос-заем из 4 бита

OF

переполнение

флажки управления

DF

флажок направления

применяется в командах манипуляции с цепочками.

если сброшен – цепочка обрабатывается с 1-го элемента

если установлен – от наибольшего элемента к меньшему

IF

разрешение прерываний

если установлен, МП распознает маскируемые прерывания, в противном случае они игнорируются.

TF

трассировка

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

Регистры SS, DS, ES и BS – сегментные регистры – они содержат неявные адреса сегментов. Эти регистры 16-разрядные, но они смещены на 4 разряда влево по отношению к другим. Физический адрес, выдаваемый на шину адреса, определяется следующим образом:

смещение

16 бит

+

сегментный адрес

16 бит

0000

физический адрес

20 бит

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

Далее будем называть содержимое сегментного регистра – сегментным адресом. Сегментный адрес  16 – начальным сегментным адресом.

Пример

С

341B - смещение

мещение 341B

Нач. адрес +123А0

сегмента 157ВВ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]