Как стать автором
Обновить

Комментарии 25

Инструкция 0x4e 0x53 0x41 0x20 переводит процессор в привилегированный режим и отключает любые проверки на ring0, ring -1 и т.д.
А вы по памяти коды символов писали или в таблицу подсматривали?
А вы их по памяти читали? :)
Что же должна делать инструкция 4Bh 47h 42h 20h…
НЛО прилетело и опубликовало эту надпись здесь
Ну заглавную A и пробел в конце я глазами разглядел, например, их коды сложно забыть.
HIEW подсказывает, что эта последовательность байтов соответствует этому коду:
dec       bx
inc       di
inc       dx
and       [bx][si],al
Что это делает — честно, не в курсе. Ассемблер один раз порывался выучить, но быстро сдулся :(
ээээм… KGB? мда… сарказм детекшн фейлид :(
Да там ничего сложного нет. Любой ассемблер — суть представление инструкций в человекопонятном виде. А процессор умеет делать довольно примитивные вещи: сложить два числа в регистрах, умножить их, считать число из памяти в регистр — в этом духе. Так что изучайте, лишним не будет. Не обязательно углубляться, достаточно научиться писать простенькие циклы и вызывать процедуры — для понимания того, что сгенерил компилятор из С или C++, хватит вполне. Через месяц-два изучения сможете уже прослеживать корелляцию между своей писаниной и выхлопом компилятора, и соответственно понимать, «сколько стоят» те или иные фичи в ЯП.
echo "...."|hexdump -C
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
В/О FПРГ Fx2 Fx2 × Fx2 ХПС Сх С/П FАВТ В/О 1 ВП 22 В↑ 1 ВП 50 С/П
Когда-то были популярны знаменитые Interrupt List: www.cs.cmu.edu/~ralf/files.html
Там же где-то были и недокументированные команды.
Стоит отметить, что Interrup.lst и TechHelp появились до создания интернета.
А по сути топика — автор и переводчик модолцы… Но, черт возьми! Закопайте же стюардессу!
хорошее было время, ага :)
ну, стюардессу сейчас не закапывает не только ТС)
Мне вспоминается, как я когда-то давно делал таблицу команд процессора 80x86 по книге Зубкова «Ассмеблер для dos windows и unix». Тогда тоже обратил внимание на «ICEPB» 0xF1. Но эта команда была «на виду», ее недокументированность сложно было не заметить. А вообще таких команд может быть неограниченное количество — ведь кроме «основой» таблицы, есть команды начинающиеся с 0x0F — та таблица содержит еще много «дырок», есть команды типа FPU устроенные аналогичным образом и т.п. Наконец, какая-нибудь редкоисползуемая или вообще недокументированная/незадействованная команда может делать что-то не то при определенном сочетании данных в регистрах.
Начиная с PentiumPro все чудеса сошли на нет. Всё просто: так то, что как современные процессоры реально исполняют имеет мало общего с тем, что пишет программист (даже на ассемблере), то всякие подобные чудеса отсекаются на весьма ранних этапах.
Я только вот что не пойму. Если 0x69 — недокументированный алиас к 0x79, то почему 0x79 не проверяется? Вот так недокументированные возможности и становятся внезапным стандартом…
Напомнило передачу о тетеньке, которая расшифровывала таинственные письмена, распечатанные принтером. Но статья любопытная.
НЛО прилетело и опубликовало эту надпись здесь
Когда-то давно читал, что только на 8086 (насчет 8088 не уверен) можно было выполнить mov cs,ax. И это был бы межсегментный переход.
Даже был какой-то вирус, который работал только на 8086 из-за использования этой возможности.
Странно, что так сложно было :) раньше была такая книга «Ассемблер PC/XT». Она, кстати, и в СССР переводная была. Там коды команд описывались с точки зрения дешифратора команд и внутренних состояний процессора. Там же довольно регулярная система команд была. Отлично было видно поведение всех «недокументированных» команд. Плюс, они перечислялись в конце книги. Было ещё несколько подобных книг. И по Z80 подобное было. Просто потом по мере развития архитектуры большая часть документации была переписана и формализована. Некоторые стали legacy либо просто опущены. А тогда во многой литературе описывались не только недокументированные коды, но и отличия между процессорами разных производителей. 8086 отличался от 8080, а Intel от NEC и AMD. И при разработке всякого рода низкоуровневого софта это учитывалось :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории