Код. Тайный язык информатики - Чарльз Петцольд
Книгу Код. Тайный язык информатики - Чарльз Петцольд читаем онлайн бесплатно и без регистрации! Читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Наслаждайтесь!
285 0 11:01, 10-02-2020Книга Код. Тайный язык информатики - Чарльз Петцольд читать онлайн бесплатно без регистрации
AND A, D
B2
OR A, D
A3
AND A, E
B3
OR A, E
A4
AND A, H
B4
OR A, H
A5
AND A, L
B5
OR A, L
A6
AND A,[HL]
B6
OR A,[HL]
A7
AND A, A
B7
OR A, A
A8
XOR A, B
B8
CMP A, B
A9
XOR A, C
B9
CMP A, C
AA
XOR A, D
BA
CMP A, D
AB
XOR A, E
BB
CMP A, E
AC
XOR A, H
BC
CMP A, H
AD
XOR A, L
BD
CMP A, L
AE
XOR A,[HL]
BE
CMP A,[HL]
AF
XOR A, A
BF
CMP A, A
Команды AND, OR и XOR выполняются побитово, то есть отдельно над каждой парой битов. Например, в результате выполнения следующих команд значение в аккумуляторе будет равно 05h.
MVI A,0Fh
MVI B,55h
AND A, B
Если бы последней была команда OR, то результат был бы равен 5Fh; если бы последней была команда XOR — 5Ah.
Команда CMP (Compare — сравнить) аналогична команде SUB, за исключением того, что результат не сохраняется в аккумуляторе. Другими словами, команда CMP выполняет вычитание, а затем удаляет результат. В чем же смысл? Во флагах! Флаги говорят о том, как два сравниваемых байта соотносятся. Рассмотрим, например, следующие команды.
MVI B,25h
CMP A, B
После их выполнения содержимое аккумулятора (А) остается прежним. Если значение в A равно 25h, будет установлен флаг нуля, а если значение в A меньше 25h — флаг переноса.
Для восьми арифметических и логических операций также существуют версии, которые выполняются непосредственно над байтами.
Код
Команда
Код
Команда
C6
ADI A, xx
E6
ANI A, xx
CE
ACI A, xx
EE
XRI A, xx
D6
SUI A, xx
F6
ORI A, xx
DE
SBI A, xx
FE
CPI A, xx
Например, две приведенные выше строки можно заменить следующей.
CPI A,25h
Вот еще две команды для процессора 8080.
Код
Команда
27
DAA
2F
CMA
Команда CMA (Complement Accumulator — дополнить аккумулятор) выполняет дополнение значения в аккумуляторе до 1. Каждый 0 обращается в 1, а 1 — в 0. Если в аккумуляторе содержится значение 01100101, то после исполнения команды CMA в нем будет содержаться значение 10011010. Этого же результата можно достичь и с помощью следующей команды.
XRI A, FFh
Упомянутая выше команда DAA (Decimal Adjust Accumulator — десятичная коррекция аккумулятора), вероятно, является самой сложной в наборе команд процессора 8080. Специально для нее в микропроцессоре предусмотрено небольшое устройство.
DAA помогает программисту выполнять арифметические операции над десятичными числами в кодировке BCD (binary-coded decimal — десятичное в двоичной кодировке), где каждая тетрада может принимать значение только в диапазоне от 0000 до 1001, то есть от 0 до 9 в десятичном выражении. В формате BCD в восьми битах байта могут храниться две десятичные цифры.
Предположим, что в аккумуляторе содержится BCD-значение 27h, которое фактически соответствует десятичному значению 27, а в регистре B содержится BCD-значение 94h. (Обычно шестнадцатеричное значение 27h эквивалентно десятичному значению 39.) В результате выполнения следующих команд в аккумуляторе будет содержаться значение BBh, которое, разумеется, не является BCD-значением, поскольку в кодировке BCD-значение тетрады не может превышать 9.
MVI A,27h
MVI B,94h
ADD A, B
Однако при выполнении команды DAA в аккумулятор помещается значение 21h и устанавливается флаг переноса, поскольку сумма десятичных чисел 27 и 94 равна 121. Эта команда может пригодиться для арифметических операций над числами в кодировке BCD.
Часто возникает необходимость в прибавлении 1 к значению или в вычитании 1 из значения. В программе для выполнения умножения, описанной в главе 17, нужно вычесть из значения 1, и мы делали это, прибавляя значение FFh, которое является дополнением до 2 числа –1. Процессор 8080 предусматривает специальные команды для увеличения на 1 (инкрементирования) и уменьшения на 1 (декрементирования) значения в регистре или в ячейке памяти.
Код
Команда
Код
Команда
04
INR B
05
DCR B
0С
INR C
0D
DCR C
14
INR D
15
DCR D
1С
INR E
1D
DCR E
24
INR H
25
DCR H
2C
INR L
2D
DCR L
34
INR [HL]
35
DCR [HL]
3C
INR A
3D
DCR A
Однобайтовые команды INR и DCR влияют на все флаги, кроме флага переноса.
Набор команд процессора 8080 также включает четыре команды циклического сдвига, которые сдвигают содержимое аккумулятора на один бит влево или вправо.
Прочитали книгу? Предлагаем вам поделится своим впечатлением! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации. Просьба отказаться от оскорблений, угроз и запугиваний. Просьба отказаться от нецензурной лексики. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор сайта
Оставить комментарий