ПО ИСПОЛЬЗОВАНИЮ КОМАНД ПРОЦЕССОРА Z-80.
music:Midisoft/Energy Minds
(C) Джейсон Крюгер/Delirium Tremens
---------------------------------FUNeral--
нимание! Настоятельно рекомендуем
ознакомиться с нижеследующим документом,
прежде чем предпринимать какие-либо дей-
ствия, связанные с написанием программ
(процедур) на языке Ассемблера. Все иные
инструкции - подобные нижеизложенной или
отличающиеся от нее на самом деле являют-
ся Риге Shit,Total Suxx & Fuckin` Lame...
ТОР SECRET.
ONLY FOR FUNeral READERZ.
ПЕРЕД ПPОЧTЕHNЕМ ОTФОPМАTNPОВАTЬ
1.Группа команд загрузки регистра.
Команд этих, честно говоря, - до задни-
цы,мне даже считать их лень. Но, насколько
показали исследования,все они начинаются с
одних и тех же букв - LD. Какой-то кретин
долго пытался доказать мне,что это сокра-
щение английского слова LoaD, которое,соб-
ственно, и означает:"загрузить".Версия,ко-
нечно, правдоподобная,однако полностью не-
верная с точки зрения идеологии. Итак, за-
помните, LD расшифровывается как "Lamers
аге Dead" (в переводе с англ. "ламеры сдо-
хли" или "рай на Земле").
Формат команд загрузки регистра пример-
но таков:
LD регистр,регистр
Почему примерно? Да потому что их все вре-
мя по-разному пишут! То просто так, то в
скобочках, то буковками,то цифирками... Но
почему-то обязательно через запятую. Ужас
просто какой-то - ни тебе орфографии, ни
пунктуации - сплошная анархия!..
Самое смешное во всей этой лабуде - то,
что в регистр можно грузить только числа.А
вот помидоры - нельзя.Однако и цифирки ту-
да потребно пихать тоже не всякие. Если вы
наивно полагаете,что можете засунуть в ка-
кой-нибудь несчастный аккумулятор массу
Юпитера в миллиграммаx, то поспешу вас об-
ломать - первый закон робототеx... тьфу...
первый закон кода гласит:Не Перегружай Ре-
гистр.И правильно! Перегрузите вы этот ак-
кумулятор,надорвется он,да помрет... И бу-
дет потом у вас в квартире дохлым регист-
ром вонять. А ведь его из процессора фиг
вытащишь, в особенности если он дохлый. К
тому же, в магазинах (сам спрашивал) реги-
стры для процессора в продажу не поступа-
ют.Вот.
2.Команды обмена.
Ну, этих команд поменьше будет. Но я их
тоже не считал,мне до сих пор лень.Начина-
ются они по-разному - некоторые пишутся
EX, а некоторые - EXX. Мне больше нравятся
вторые - они красивше (хотя их всего одна
штука). Кстати, один местный идиот уверял
меня, что эта мнемоника расшифровывается
как EXchange. Но я, философ по природе,ни-
когда не попадался на подобные демагогиче-
ские крючки! Помните: EX и EXX - это ме-
ланxоличный вздох кодера,встающего с дива-
на,чтобы взять дубинку и избить ламера.
Должен заметить,что выполняя эти коман-
ды процессор Z-80 ведет себя как правиль-
ный пацан - информацию не мышит, не крысит
и проценты за обмен не берет.
Да,и еще,чуть не забыл. Если вы пользу-
етесь командой EX, то после нее надо обя-
зательно написать название регистров,кото-
рые вы меняете.А вот EXX,будучи более про-
двинутой в этом плане фиготой... Ну... Ко-
роче, ей посрать чего вы там понаписали -
она всегда делает одно и то же: меняет
основной набор регистров на альтернативный
(АЛЬТЕРНАТИВНЫЙ - это такой набор регис-
тров,который я,будучи true metaler`ом,про-
сто ненавижу. - ред.).
3.Команды общего назначения.
К командам общего назначения относится
целый ряд инструкций:
DI,EI,IM0,IM1,IM2,DAA,NEG,CPL,CCF,SCF,NOP,
HALT.
Эти команды... Ну... Короче, это такая
обширная задница, что я про них и писать
ничего не буду.Вот.
4.Команды двоичной логики.
Существует всего три вида команд двоич-
ной логики:
AND,OR и XOR.
Согласен,не густо... Но можете мне по-
верить, даже трех вышеперечисленных вполне
xbatatet,чтобы до конца жизни запутаться в
дебрях ентой самой двоичной логики.Рассмо-
трим по пунктам.
4.1. AND
AND по-английски обозначает "И" (в смы-
сле,как "Вова _И_ Вася", а не как "_И_д_И_
на..."). Казалось бы, все просто: что-то с
чем-то складывается... Ну, это как у де-
тей - "2 и 6 будет 8". Проверил. Ага, щаз!
Во-первых,формат команды:
AND 5
(Это я для примера 5 написал,а вообще мож-
но и не 5). Что 5? К чему? Куда? К какой
фигне ее присобачивать? Непонятно.Проверил
регистры - вообще лажа какая-то! Все,кроме
A - прежние, а в аккумуляторе тотальный
бардак (по крайней мере,прибавлением 5 там
и не пахнет)... Плюнул я на эту самую AND
и решил кодить без нее.
4.2. OR
Воспользовавшись логикой (формальной,не
двоичной!), я выдвинул предположение, что
этой командой процессор выбирает из двух
предложенных чисел одно (монетку там под-
брасывает,или еще как) и выкладывает нуж-
ное в регистр A. Ну да,как же... Оракул из
меня - как из кобылы вертолет. Точно такая
же ситуация,что и с AND! И формат (OR #34,
например),и результаты. Только в аккумуля-
торе другое число (но все равно лажовое).
И... Блин... Ну ее нафиг эту самую OR!
4.2. XOR
Ну и намучился же я с переводом назва-
ния этой команды! И в английском словаре я
ее смотрел,и в немецком... Даже в норвеж-
ский заглядывал - нигде нет. Дошло до меня
только на второй день: в процессоре опе-
чатка! Там должно быть написано ХОР,а кто-
то ошибся и написал XOR.И формат подходит:
выполнил
XOR "число"
и все регистры хором исполняют то, что там
после XOR`а накалякано. Попробовал я. Ыгы,
как же, хором - число и тенором - арию...
Опять, блин, в аккумуляторе бардак, а в
остальных регистрах все по старому...
Б... ! Ну... Да... Да пошла она в задницу,
вся эта логика двоичная! Нет там ни... ни-
какой логики! А поймаю того ... ,который
ее придумал - ... в ... !!! Все!
5.Декремент и инкремент.
Очень простые команды. Одна что-то
уменьшает, вторая - увеличивает. Что имен-
но - пока не знаю.
6.Арифметические команды.
Их в процессоре целая куча. И все - для
сложения и вычитания.А для умножения и де-
ления нет.Остается вопрос создателям Z-80:
ПОЧЕМУ НEДOCМOTРEЛИ?! У них там, понимаешь
ли, контролеры пьяные сидят, ничего кроме
бутылки не видят, а нам, кодерам, из-за их
ошибок страдать приходится!
Теперь перейдем конкретно к командам.
Для сложения существуют два типа: ADD и
ADC. Первая просто складывает два числа, а
вторая - складывает два числа и какой-то
"флаг переноса". Я в компьютере смотрел -
у меня такого нет. Наверное,недокомплекта-
ция,на заводе не было.
Команды вычитания так же делятся на два
вида: SUB и SBC.Первая отнимают от аккуму-
лятора число, другая - число и этот самый
"флаг переноса".Обидно,что у меня его нет.
Хотелось бы использовать возможности ком-
пьютера полностью.
ления нет.Остается вопрос создателям Z-80:
ПОЧЕМУ НEДOCМOTРEЛИ?! У них там, понимаешь
ли, контролеры пьяные сидят, ничего кроме
бутылки не видят, а нам, кодерам, из-за их
ошибок страдать приходится!
Теперь перейдем конкретно к командам.
Для сложения существуют два типа: ADD и
ADC. Первая просто складывает два числа, а
вторая - складывает два числа и какой-то
"флаг переноса". Я в компьютере смотрел -
у меня такого нет. Наверное,недокомплекта-
ция,на заводе не было.
Команды вычитания так же делятся на два
вида: SUB и SBC.Первая отнимают от аккуму-
лятора число, другая - число и этот самый
"флаг переноса".Обидно,что у меня его нет.
Хотелось бы использовать возможности ком-
пьютера полностью.
Р.S.Недавно видел,как дети из соседнего
дет.сада шмонались по улице с какими-то
флажками. Наверное, это и есть "переноса".
Надо будет украсть.
Other articles: