ПО ИСПОЛЬЗОВАНИЮ КОМАНД ПРОЦЕССОРА 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.Недавно видел,как дети из соседнего дет.сада шмонались по улице с какими-то флажками. Наверное, это и есть "переноса". Надо будет украсть.