Архитектура ЭВМ и язык ассемблера презентация

Содержание

Слайд 2

– – – Часть оконных примитивов • Структуры сложных данных




Часть оконных примитивов
• Структуры сложных данных


Точка

Область экрана
Системное сообщение
Класс окна
• Необходимые процедуры

MessageBox : Вывод текста в граф.режиме
– WinMain : Инициализация граф.приложения
– WinProc : Обработка системных событий
– ErrorHandler : Обработка ошибок (необяз.)
Слайд 3

Оконный сценарий .386 .model flat,STDCALL INCLUDE GraphWin.inc .data ; Определим

Оконный сценарий

.386
.model flat,STDCALL
INCLUDE GraphWin.inc
.data
; Определим структурную переменную,
описывающую класс окна
.code
WinMain PROC
; Определим

дескриптор текущего процесса
; Загрузим образы пиктограммы и курсора
программы.
; Зарегистрируем класс окна
; Создадим основное окно программы
; - если ошибка, отобразим сообщение и
остановимся
; Отобразим окно на экране и обновим его
содержимое
; Выведем приветственное сообщение
; Создадим цикл обработки сообщений
; Получим новое сообщение из очереди
; Если в очереди больше нет сообщений,
остановимся
; Отправим сообщение на обработку
WinProc нашей программы
WinMain ENDP

WinProc PROC,
; Эта процедура обрабатывает некоторые
сообщения, посылаемые системой Windows
нашему приложению.
; Щелчок левой кнопкой мыши?
; Окно создано?
; Окно закрыто?
; Обработка остальных сообщений выполняется
стандартной процедурой системы Windows.
WinProc ENDP
;---------------------------------------------------
ErrorHandler PROC
; Получим код ошибки
; Определим адрес текстового сообщения об
ошибке
; Отобразим сообщение об ошибке
; Освободим память, cсообщением об
ошибке
ErrorHandler ENDP
END WinMain

Слайд 4

Иерархия обращения к УВВ и «УВВ» • Средства ЯВУ: операции,

Иерархия обращения к УВВ и «УВВ»

• Средства ЯВУ: операции, операторы
• Библиотеки

функций call/INVOKE

– ЯВУ: стандартные и «фирменные»
– специальные
– системные

• Системный вызов: int

• Обращение к BIOS (RM/VM): int

• Обращение к памяти и портам в/в: in,out

Слайд 5

УBB ЦП Порты ввода/вывода Пространство регистров Пространство адресов памяти Основная

УBB

ЦП

Порты ввода/вывода

Пространство
регистров

Пространство
адресов
памяти
Основная
память

Пространство
адресов портов
ввода/вывода
УBB
УBB
УBB

Регистры
Среда взаимодействия

IN аккумулятор, порт
OUT порт, аккумулятор

• Порт
– 00h-FFh
– DX

Аккумулятор
– AL
– AX
– EAX
Слайд 6

Пример timer EQU 42h обращения к портам в/в .code in

Пример

timer

EQU

42h

обращения к
портам в/в

.code

in

or

L2:

TITLE Программа включения динамика (Spkr.asm)
INCLUDE Irvine16.inc
speaker EQU 61h

; Порт управления динамиком
; Порт управления таймером
delay1 EQU 500 ;
delay2 EQU 0D000h ; Задержка между сменой тонов
main PROC

al,speaker
push ax
al,00000011b
out speaker,al
mov al,60
out timer,al
mov cx,delay1

; Определим состояние динамика
; Сохраним байт состояния
; Установим два младших бита
; Включим динамик
; Начальная высота тона
; Запустим таймер
; Установим задержку сменой тонов

L3:

push cx
mov cx,delay2

; Сохраним счетчик внешнего цикла

L3a: loop L3a
pop cx
loop L3
sub al,1
jnz L2
pop ax
and al,11111100b
out speaker,al
exit
main ENDP
END main

; Внутренний цикл задержки
; Внешний цикл задержки
; Повысим тон
; Играем следующую ноту
; Восстановим байт состояния
; Сбросим 2 младшие бита
; Выключим динамик

Слайд 7

– – – – – Прерывания (RM/VM) • Вход прерываний






Прерывания (RM/VM)

• Вход прерываний и контроллер прерываний
• Таблица векторов прерываний

• Действия

при поступлении прерывания

установка сигнала и передача процессору номера
сохранение флагов FLAGS и счётчика команд CS:IP
передача управления по вектору прерывания
<действия по обработке прерывания>

Восстановление флагов и счётчика команд iret

• Разрешение и запрет прерываний: sti и cli
• Программные прерывания int <номер>

Слайд 8

.data message BYTE Пример обращений к BIOS main PROC mov

.data

message

BYTE

Пример обращений к BIOS

main PROC

mov

ds,ax

TITLE Вывод цветного текста в окно (TextWin.asm)
;

Отображает на экране цветное окно и выводит в него текст.
INCLUDE Irvine16.inc
"Текст, выводимый в окно", 0
.code
mov ax,@data
; Прокрутим окно
mov ax,0600h ; Номер функции
mov bh,(blue SHL 4) OR yellow ; Атрибут
mov cx,050Ah ; Координаты левого верхнего угла
mov dx,0A30h ; Координаты правого нижнего угла

int

10h

; Переместим курсор внутрь окна
mov ah,2
mov dx,0714h
mov bh,0
int 10h
; Выведем текст в окно
mov dx,OFFSET message
call WriteString
; Ждем нажатия на любую клавишу
mov ah,10h
int 16h
exit
main ENDP
END main

; Номер функции
; Строка 7, столбец 20
; Видеостраница 0

Слайд 9

Средства BIOS для работы с… • клавиатурой – int 16h

Средства BIOS для работы с…

• клавиатурой – int 16h (09h, 1Bh)

экраном – int 10h
• мышью – int 33h

• параллельным интерфейсом – int 17h
• последовательным интерфейсом – int 14h
• списком устройств – int 11h

• системным таймером – int 1Ah (1Ch)
• эмулятором плавающей точки – int 14h
• диском на уровне секторов – int 13h
•…

Слайд 10

; ; ; Пример обращения к DOS TITLE Hello World

;

;

;

Пример обращения к DOS

TITLE Hello World Program

(Hello.asm)

; Эта программа отображает "Hello,

world!"
.model small
.stack 100h
.386
.data
message BYTE "Hello, world!",0dh,0ah
.code
main PROC
mov ax,@data
mov ds,ax

mov

ah,40h

функция вывода в канал

mov
mov
mov
int

bx,1
cx,SIZEOF message
dx,OFFSET message
21h

;

дескриптор стандартного вывода
количество байт
адрес буфера

.exit
main ENDP
END main

Слайд 11

– – – – • • • • • Средства










Средства DOS: int 21
• Чтение/запись
стандартные каналы
последовательный интерфейс
параллельный интерфейс
клавиатура и экран
Работа с

файлами и каталогами
Работа с системным временем
Работа с памятью
Работа с программами/процессами
Работа с диском «напрямую»



Слайд 12

«Жёсткие» диски

«Жёсткие» диски

Слайд 13

• • • • • Адресация диска и старт системы






Адресация диска и старт системы

• Устройство типа «hard disk drive»

– Сектор

– «квант» обмена: 512 байт

– Геометрия: цилиндр/дорожка/сектор, трансляция, LBA

• BIOS - Basic Input/Output System

– POST-Power-On Self Test

– логическая адресация секторов
– выбор устройства

Загрузка с диска: Master Boot Record/Partition Table
Выбор раздела: Primary, Extended, Logical, Active
Загрузка c раздела: Boot Sector/Volume
Загрузка с тома: OS Loader/File system
Загрузка из файлов: OS

Слайд 14

– – – – Файловые системы • Кластер – квант





Файловые системы
• Кластер – квант размещения данных
– эффективность использования пространства
• FAT:Таблица

размещения кластеров
– разрядность элемента: 12, 16, 32 бит
– секторов в кластере: 20, 21,… , 26
– кластеров в томе: ≤4087, ≤65526, ≤268 435 456
• NTFS
многодисковый том


Unicode
права доступа, квоты
шифрование, сжатие
журналирование, зеркалирование

Слайд 15

Форма с плавающей запятой • Экспонециальная форма X= ± mq

Форма с плавающей запятой
• Экспонециальная форма X= ± mq ± p
Модуль

порядка Модуль мантиссы
m p
• Смещение порядка
Смещённый порядок Модуль мантиссы
m
• Нормализация, скрытая единица
m0 =1 ± … …
• Денормализованные числа

± ± pn-1 … p1 p0 m0 m-1 … m-n

± pn pn-1 … p1 p0 m0 m-1 … m-n

pn

pn-1

p1

p0

m-1

m-2

m-n-1

m

m

±

±

±

m0 =0 ±
• Бесконечности

pn

pn-1


p1

p0

m-1

m-2


m-n-1

• Не числа
– гласные
– тихие

m
m
m

1
1
1

1
1
1




1
1
1

1
1
1

0
0
1

0
m-2
m-2




0
m-n-1
m-n-1

Слайд 16

Что же представимо ? Переполнения Нормализованные Денормализованные Потеря значимости Нуль … p-2 p-1 p p+1 p+2

Что же представимо ?
Переполнения
Нормализованные
Денормализованные
Потеря значимости
Нуль

… p-2

p-1

p

p+1

p+2

Слайд 17

• • • • Особенности операций Переполнение: сверхбольшой порядок Потеря





Особенности операций

Переполнение: сверхбольшой порядок
Потеря значимости: сверхмалый порядок
Неоднозначность (нуля)
Особые случаи:

– ненормализованные, бесконечности,

«не числа»

• Бесконтрольная относительная погрешность

– Вычитание близких

– Сложение разномасштабных

• Неассоциативность

• Проблемы округления

– http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
– http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1217

Слайд 18

Стандарт iEEE 754 http://en.wikipedia.org/wiki/iEEE_floating-point_standard Одинарный Одинарный расширенный Двойной Двойной расширенный

Стандарт iEEE 754
http://en.wikipedia.org/wiki/iEEE_floating-point_standard

Одинарный

Одинарный
расширенный

Двойной

Двойной
расширенный

Слово (бит)
Порядок (бит)
Смещение порядка
Значения порядка
Мантисса (бит)

32
8
127
-126÷127
23/24

≥43
≥11
-
≤-1022 ÷ ≥1023
≥31

64
11
1023
-1022 ÷1023
52/53

79
≥15
-.
≤-16382 ÷ ≥ 16383
≥63

• Округления
– round-down
– round-half-up
– round-ceiling
– round-floor

• Ещё округления
– round-half-even
– round-half-down
– round-up
– …

Слайд 19

• • • • ST(2) ◄ST(0) Модель «сопроцессора» FPU Обмен





ST(2)

◄ST(0)

Модель «сопроцессора» FPU
Обмен c CPU через память

Операция
9 0
Управление
Состояние
Теги стека
15 0
Указатель команды

Команду

выбирает CPU
Данные выбирает CPU
CPU ждёт FPU
– FWAIT/WAIT

R7
R6
R5
R4
R3
R2
R1
R0

79

Указатель данных
47 0
Стек ST(1)
Данных ST(7)
0

ST(4)
ST(3)
ST(6)
ST(5)

79

1.0
2.0
3.0

0

ST(1)
◄ST(0)
ST(7)

Имя файла: Архитектура-ЭВМ-и-язык-ассемблера.pptx
Количество просмотров: 75
Количество скачиваний: 0