Арифметические операции над целыми числами.
Ричная система счисления – используется для компактной записи чисел в программах.
Алфавит: 10 арабских цифр от 0 до 9 и шесть латинских букв: A~10, B~11, C~ 12, D~13, E~14 и F~15.
Преобразование десятичных чисел в 16-ричные и обратно:
CF16 207 16 CF16 = 15×160 + 12×161 = 15 + 192 = 20710
192 12
Переход от 2-х чисел к 16-ричным: Переход от 16-ричных чисел к двоичным:
01001011 СF16
4B16 110011112
Представление целых чисел.
Числа бывают беззнаковые и знаковые.
В n-разрядной двоичной сетке для модуля беззнаковых чисел отводятся все n разрядов. При этом диапазон чисел составляет от 0 до 2n-1.
В случае знаковых чисел старший разряд отводится под знак (1 – «-», 0 – «+»), а остальные разряды – под модуль. Т.о., диапазон чисел составляет от +(2n-1 – 1) до -(2n-1- 1).
В процессоре знаковые числа представляются в дополнительном коде.
Дополнительный код положительного числа, есть само число.
Дополнительный код отрицательного числа образуется по правилу: символ младшего разряда вычитается из числа, равного основанию системы счисления, а символы остальных разрядов – из числа, на 1 меньшего основания системы счисления.
Примеры при n = 8: -510 = -0000 01012 в прямом двоичном коде;
-510 = 1111 10112 в дополнительном коде.
-7Е16 = 8216 в дополнительном коде.
Арифметические операции над целыми числами.
1. Сложение:
а) производится поразрядно, начиная с младших разрядов;
б) если сумма Si чисел i-го разряда превышает или равна ОСС, то в этот разряд результата записывается разность (Si – k×ОСС), а в следующий, более старший разряд (включая и знаковый), переносится k в виде дополнительного слагаемого. Здесь k – целая часть от деления Si на ОСС.
Например, в случае двоичной системы счисления и Si = 5, k = [5/2] = 2. Следовательно, в i-й разряд результата запишется 5-k×2 = 5-4 = 1, а в следующий разряд переносится (говорим «в уме») дополнительное слагаемое 2 (k = 2);
в) в случае знаковых чисел перенос из знакового разряда не производится.
Примеры: числа без знака знаковые числа
Возможно переполнение Переполнения нет
-5+7 -5516+516
Результат операции над знаковыми числами представлен в прямом коде, если он положительный и в дополнительном коде, если отрицательный.
2. Вычитание заменяется сложением чисел, предварительно представленных в дополнительном коде.
Примеры при n = 4:
616-316 = 616+D16 = 316 (перенос из знакового разряда не производится);
316-616 = 316+А16 = D16 (дополнительный код числа -3);
-616-316 = A16+D16 = 1716 (переполнение разрядной сетки).
3. Умножение для положительных чисел выполняется обычным образом, а для отрицательных – с промежуточным преобразованием в прямой код.
Примеры: а). Числа без знака:
|
А2 (5×2=10 10+1=11)
|

3AC (5×А=50 (50+8):16=3, остаток 10; А пишем, 3 в «уме»)
3B 7C
б). Знаковые числа: 52 ´ AE = 52 ´ (-52) = -1A44h = E5BC.
4.2. Методы адресации операндов
Адресация – обращение к операнду, указание на который содержится в команде.
Адресный код (АК)– это информация об адресе операнда, содержащаяся в команде.
Исполнительный адрес (АИ) – это номер физической ячейки памяти, к которой производится обращение.
Первая группа адресаций устанавливает АИ по значению АК.
Непосредственная адресация – операнд указывается в команде константой. Эта адресация используется для ввода исходных данных и при работе с различного рода константами.
Прямая адресация – АИ совпадает с АК.
Регистровая адресация – в команде указывается имя регистра РОН процессора, в котором хранится операнд.
Косвенная адресация – АК указывает имя регистра процессора, в котором находится АИ. Такой регистр называют регистром адреса.
Автоинкрементная (автодекрементная) адресация – в команде указывается имя регистра процессора, содержимое которого автоматически увеличивается (уменьшается) на 1.