Курсовая
Экзамен
Литература и ПО
Голубь Н.Д. "Искусство программирования на assembler"
Бериан "Программирование на ассемблере системы IBM/370"
Borland assembler compiller
Borland C++
Лекция 1
ЗАЧЕМ НУЖЕН ASSEMBLER?
Стили программирования:
1. Машинно-ориентированный стиль. Программы писались в машинных кодах.
0001 1010 0100 0001 -> A R 4, 1
AR - Имя функции
4 - первый аргумент
1 - Второй аргумент
A - ADD
R - REGISTER
2. Процедурно -ориентированный стиль. Появились языки высокого уровня. Основу языка составляют процедуры или подпрограммы. Появилось разделение программы на высокоуровневый интерфейс и низкоуровневое ядро. Появились программы которые называются компиляторами.
3. Структурное(модульное) программирование. Программа делится на модули в которых данные и команды объединены в один так называемый "модуль".
4. ОО стиль программирования. В которых данные и команды объединяются по смыслу.
Зачем нужен ассемблер? Знание Ассемблера позволяют: понять принципы обработки информации на современных компьютерах,а именно: как хранятся в памяти компьютера разнообразные данные, как записываются и выполняются арифметические и логические операции, как организуется ввод\вывод информации. Позволяет понять, что такое ОС.Понять что такое многозадачность и управлять ею. Понять, что такое файловая система и управлять ею.Позволяет создавать эффективные и оптимизированные команды.
|
|
ЛЕКЦИЯ 2
ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ
Определение позиционной СС
До наших дней дошли 2 системы счисления: римская(не позиционная) и арабская(позиционная).
Позиционная СС - такая система в которой позиция цифры однозначно связана с значением числа.
Пусть задано вещественное число состоящее из n+1 цифр целых и k цифр дробных. Тогда такое вещественное число мы можем представить следующим образом
Цифра | Цn | ... | ... | Ц1 | Цо | Д1 | ... | ... | Дк |
Позиция | n | ... | ... | ... | ... | к |
Цn*q^n + Ц1*q^1 + Ц0 q^0+q^-1Д1+... q^-k*д (*)
Десятичная система исчисления
q=10 {0,1,3,4,5,6,7,8,9}
5*10^3+3*10^2+4*10^1+2*10^0 = 5342
82563.947
8*10^4 + 2*10^3 + 5*10^2 + 6*10^1 + 3*10^0 + 9*10^-1 + 4*10^-2 + 7*10^-3
Binary
q=2 {0,1}
базовая единица компьютерных данных - бит (bit->binary digit)
Перевод ЦЕЛЫХ ДЕСЯТИЧНЫХ ЧИСЕЛ В 2
Необходимо число последовательно делить на 2 до получения целого остатка меньшего чем 2. Результат в 2й СС имеет вид упорядоченной последовательности остатков в порядке обратном их получения. младшую цифру - первый остаток.
137(10) -> (2)
137/2=68->1
68/2=34->0
34/2=17 ->0
17/2=8 ->1
8/2=4 ->0
4/2=2 ->0
2/2=1 ->0
1 ->1
перевод правильных 10х дробей в двоичную СС
НЕобходимо данное число последовательно УМНОЖАТЬ на 2 до тех по пока в мантиссе не будет чистый 0 либо нужное количество разрядов. получаемые значения не учитываются,но образуют результат в виде упорядоченной последовательности в виде упорядоченных последовательностей целых двоичных чисел
|
|
0.5d
0.5*2=1.0 -> 0.1b
0.703125d
0.703125->0.
0.703125*2=1.406250 ->1
1.406250 *2= 0.8125 ->0
0.8125 *2=1.625->1
1.625*2=1.25->1
1.25*2=0.5->0
0.5*2=1->1
0.703125d->0.101101
0.05d
0.05d ->0.
0.05*2=0.1 ->0
0.1*2=0.2 ->0
0.2*2=0.4 ->0
0.4*2=0.8 ->0
0.8*2=1.6 ->0
1.6*2=1.2 ->1
1.2*2=....->1
0.05d-> 0.0000011 (0011)b
Вещественные числа в общем случае невозможно точно представить в памяти компьютера. Точность (количество представляемых разрядов) зависит от разрядности процессора.
ПЕРЕВОД СМЕШАННЫХ ДЕСЯТИЧНЫХ ЧИСЕЛ В 2ю СС
Результат образуется путем соединения(Конкатенация)