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

Содержание

Слайд 2




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


Точка

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

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

Слайд 3

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

.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

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

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

• Порт
– 00h-FFh
– DX
• Аккумулятор
– AL

AX
– EAX

Слайд 6

Пример

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)

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

• Действия при поступлении

прерывания

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

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

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

Слайд 8

.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 (09h, 1Bh)
• экраном –

int 10h
• мышью – int 33h

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

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

Слайд 10

;

;

;

Пример обращения к 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 ± 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

Слайд 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

Одинарный

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

Двойной

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

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

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
Обмен 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
Количество просмотров: 62
Количество скачиваний: 0