Архитектура ЭВМ и язык ассемблера Коротин Павел Николаевич Программировать – значит понимать. Кристин Нюгард
Преимущества Языков Высокого Уровня: Приближены к естественному языку Переносимые программы Большая производительность труда Специализация
Ассемблер – язык описания архитектуры ЭВМ Архитектура ЭВМ Архитектура ЭВМ есть функциональный образ вычислительной системы, получаемый непосредственным пользователем, её абстрактное представление, которое отражает её концептуальную структуру и логическую организацию.
Реализация Структура элементной базы или средства и методы функционирования машин не входят в сферу понятия «архитектура ЭВМ» и обозначаются термином «реализация».
Поколения ЭВМ По развитию программного обеспечения: Ассемблер ЯВУ ОС ППП По используемой элементной базе: Лампы Транзисторы ИС Микропроцессоры
Принципы фон-Неймана принцип хранимой программы безразличие к целевому назначению данных последовательное выполнение команд линейное пространство памяти бинарная арифметика
Системы счисления Представление чисел в ЭВМ - набор правил для записи чисел совокупностью символов (цифр)
Римская система счисления MMIV = 2004 MCMXCIX = 1999 MIM Буква Цифра I1 V5 X10 L50 C100 D500 M1000 MMMMMM = 6000
Позиционные системы счисления Основание системы счисления – количество цифр, используемых для записи числа. Разряд – положение цифры в записи числа. Младший разряд – самая правая цифра. Старший разряд – самая левая цифра.
(a n a n-1 …a 1 a 0. a -1 a -2 …) b = a n *b n + a n-1 *b n-1 + … + a 1 *b + a 0 + a -1 *b -1 + a -2 *b -2 + …, где 0 a k
Десятичная ДвоичнаяВосьмеричная Шестнадцатеричная A B C D E F
Перевод чисел из одной системы счисления в другую ABCD 16 =10* * * = D4 16 = = = = = 125*16+4 =(7*16+D)* = 7D4 16
(c k …c 1 c 0 ) b = здесь a = b n и p = k mod n (C p …C 1 C 0 ) a = C p *a p + … + C 1 *a + C 0 = + (c n-1 *b n-1 +…+c 1 *b+c 0 ) = …+ (c 2n-1 *b n-1 +…+c n+1 *b+c n )*b n + (c k *b k-p*n + … + c p*n )*b p*n + …
Графическое представление натуральных чисел 0 1… для 8 двоичных символов = FF 16 = 15*16+15 =
Представление отрицательных чисел путем простого выделения бита под знак числа 0******* - положительное число 1******* - отрицательное число Результат: = = -0 путем записи в дополнительном коде: x+(-x)=0
Представление отрицательных чисел ограниченным числом разрядов = = -? = = =
Прямой код Десятичное Обратный код Дополнительный код (= обратный 1) без знака со знаком … …
Байт – минимальный адресуемый участок памяти Байт Номер Бит******** Биты Байтстаршиймладший Слово Двойное слово Слова старшеемладшее
Интервалы представления натуральных чисел Тип памятиК-во бит Возможные значения Unsigned byte 8От 0 до 255 Unsigned word 16От 0 до Unsigned double word 32От 0 до Unsigned quad word 64От 0 до Квинтиллион ы Квадриллионы ТриллионыБиллионы
Интервалы представления целых чисел Тип памяти К-во бит Возможные значения Signed byte 8От -128 до 127 Signed word 16От – до Signed double word 32От – до Signed quad word 64От – до
BCD - binary coded decimal Упакованный формат Биты = Неупакованный формат Биты =
ASCII - American National Standard Code for Information Interchange abcdef 0 nulsohstxetxeotenqackbelbshtnlvtnpcrsosi 1010 dledcldc2dc3dc4naksynetbcanemsubescfsgsrsus 2020sp!"#$%&'()*+,-./ :;? 5050 PQRSTUVWXYZ[\]^_ 6060 `abcdefghIjklmno 7070 pqrstuvwxyz{|}~ del
Представление вещественных чисел С фиксированной точкой: = С плавающей точкой: ·10 +1 ± m E ± p, p N В десятичной системе: 1 10
Представление вещественных чисел в ЭВМ на базе процессора INTEL 1 2 m
Определение числа разрядов мантиссы вещественного числа в Паскале program test; vara,c:real; i:integer; begin a:=1.0; c:=0.5; i:=0; repeat a:=a+c; c:=c*0.5; i:=i+1 until a=a+c; writeln('Число разрядов мантиссы - ',i) end.
10-я 2-я (показатель степени 10-й в целях экономии места) ac В нормализованном формате …e0 В нормализованном формате anan cncn anan cncn a n+1 c n e01.e e01.e e01.e e01.e e01.e e01.e e01.e e01.e-5
ac Новое a I= I= I= I= I= I= I= I=
Литература: Д. Кнут «Искусство программирования». Т.2 К. Хамахер, З. Вранешич, С. Заки «Организация ЭВМ». Э. Таненбаум «Архитектура компьютера». K. Miller «An assembly language introduction to computer architecture» N-Y. Oxford University Press, 1999.