ага, по ЧТ садишь ШД на землю и получаешь 16-разрядный счетчик с тремя питаниями дл перебора нот из ПЗУLavr wrote:Это был музыкальный автомобильный клаксон - 580ВМ80, ПЗУ два мощных транзистора и динамик. Блин - классика минимализма
ЗОДАЧА для 580ВМ80:)
Moderator: Shaos
-
shoorick
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
-
Lavr
- Supreme God
- Posts: 16780
- Joined: 21 Oct 2009 08:08
- Location: Россия
У меня в итоге получилось вот что.
Сигнатуру 0AA55H я взял чисто для примера.
Можно выбрать её другую, можно выбрать её
длиннее, но тогда будет длиннее сканер.
Тем не менее, алгоритм, предложенный Шуриком,
Р А Б О Т А Е Т ! ! !
NOP в начале и HLT в конце просто выравнивают загрузку в стек
по два байта через PUSH ..., чтобы удобно попасть в адреса
На мой взгляд - всё достаточно кратко и элегантно..
Что ж зодачу, которой в ближайший обед примерно 20 лет, мы с вами, уважаемые коллеги, РАСКОЛОЛИ !!!
Сигнатуру 0AA55H я взял чисто для примера.
Можно выбрать её другую, можно выбрать её
длиннее, но тогда будет длиннее сканер.
Тем не менее, алгоритм, предложенный Шуриком,
Р А Б О Т А Е Т ! ! !
Code: Select all
; ZODACHA ;
ORG XXXXH
LXI H,0000H; чистим HL
DAD SP; текущий стек
PUSH H; получим в HL и
POP B; сохраним в BC
LXI D,76E9H; запишем
PUSH D; в стек
LXI D,3933H; сканер
PUSH D; сигнатуры 0AA55H,
LXI H,0FFF4H;вычисляя
DAD B; абсолютный адрес M1
PUSH H; в цикле
LXI D,0C2B5H;поиска
PUSH D; сигнатуры
LXI D,7C3BH; в памяти
PUSH D
LXI D,19E1H
PUSH D
LXI D,0000H
PUSH D
LXI D,3100H
PUSH D
LXI D,0AA56H; = -(55AAH)
LXI H,0000H
DAD SP
PCHL ; переход на сканер
; сигнатуры в стеке
DB 0AAH, 55H; сигнатура
M0: ; искомый адрес.
MOV D,H ; сохраним адрес
MOV E,L ; не используя стек.
MOV H,B ; восстановим
MOV L,C ; старый
SPHL ; стек.
MOV H,D ; к текущему
MOV L,E ; адресу
LXI D,OFFSET; прибавим смещение
DAD D ; к ПП корректировки переходов.
PCHL ; перейдём к ней
; ...
; |
;OFFSET:
; |
; ...
CorTab: ; ПП корректировки переходов.
...
...
Code: Select all
;------- ПОДПРОГРАММА СКАНЕРА СИГНАТУРЫ В СТЕКЕ ---------
NOP ; <--- SP после загрузки сканера
LXI SP,0000H; укажем начало карты памяти
M1:
POP H ; берём в HL два байта
DAD D ; вычитаем 55AAH
DCX SP ; но стек надо сдвинуть только на 1 байт
MOV A,H ; проверяем
ORA L ; HL=0000H ?
JNZ M1 ; если нет - продолжим поиск
INX SP ; исправим искомый адрес от DCX SP
DAD SP ; занесём его в HL
PCHL ; переход на адрес после сигнатуры 0AA55H
HLT; просто выравнивает загрузку в стек
; <--- SP изначально ------------------------
по два байта через PUSH ..., чтобы удобно попасть в адреса
На мой взгляд - всё достаточно кратко и элегантно..
Что ж зодачу, которой в ближайший обед примерно 20 лет, мы с вами, уважаемые коллеги, РАСКОЛОЛИ !!!
-
Shaos
- Admin
- Posts: 24385
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
Lavr
- Supreme God
- Posts: 16780
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
Shaos
- Admin
- Posts: 24385
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Ну чтож ты прицепился к этой лопате 
Я в 1993 году в тетрадочке писал в кодах 580-го проца подпрограммы передачи управления в перемещаемой программе - которая без таблицы, просто перемещаемая (в которой совсем не используются абсолютные адреса). Единственное ограничение - адрес входа в подпрограмму передачи управления должен быть фиксированным, а тут предложен вариант как найти эту подпрограмму не зная адреса. Теперь у нас всё есть, чтобы писать перемещаемые вирусы для процессора 8080
Я в 1993 году в тетрадочке писал в кодах 580-го проца подпрограммы передачи управления в перемещаемой программе - которая без таблицы, просто перемещаемая (в которой совсем не используются абсолютные адреса). Единственное ограничение - адрес входа в подпрограмму передачи управления должен быть фиксированным, а тут предложен вариант как найти эту подпрограмму не зная адреса. Теперь у нас всё есть, чтобы писать перемещаемые вирусы для процессора 8080
-
Lavr
- Supreme God
- Posts: 16780
- Joined: 21 Oct 2009 08:08
- Location: Россия
замечание
Выспавшись и критически взглянув на это творение, я хочу сделать одно
веское замечание. Я писал всё это на эмуле "Специалиста", а "Спец" априори
не имеет прерываний. Чтобы метод был более универсальным и ввиду того,
что мы активно манипулируем стеком, следует критическую часть от начала
программы и до восстановления стека, обрамить парой DI ... EI.
Иначе первое же прерывание всё наше "чюдо в стеке" изгадит.
Возможно, для уверенного опознавания надо взять сигнатуру - в 4 байта.
Сканер это не сильно усложнит.
PS.
я привык в окружении своих друзей, здесь порой вызывают непонимание
и даже обиду. И это правильно, что ты подсказал тег "лопата", теперь
я им буду щютки обрамлять:
Никто ж не обязан знать чюжих привычных щюток.
Вот если ко мне приходит в гости кто-то из друзей, я говорю:
"Граф, кофию-с не желаете-с?" и мы оба улыбаемся, поскольку
знаем этот дремучий анекдот. А у других это вряд ли поколеблет
чувство юмора. Но юмор я люблю - так что лопата - к месту.
PPS. Я спросил... у Гугеля... "где моя любимая?" - да фиг тааам!!!
Я спросил - знает ли Гугель анекдот "Граф, кофию-с не желаете-с?"
Знает!!!
http://stories.live4fun.ru/last/joke/53161
Но как анекдоты со временем портятся и опошляются...
веское замечание. Я писал всё это на эмуле "Специалиста", а "Спец" априори
не имеет прерываний. Чтобы метод был более универсальным и ввиду того,
что мы активно манипулируем стеком, следует критическую часть от начала
программы и до восстановления стека, обрамить парой DI ... EI.
Иначе первое же прерывание всё наше "чюдо в стеке" изгадит.
Возможно, для уверенного опознавания надо взять сигнатуру - в 4 байта.
Сканер это не сильно усложнит.
PS.
Ну я человек конструктивный и заметил, что шутки, к которымShaos wrote:Ну чтож ты прицепился к этой лопате
я привык в окружении своих друзей, здесь порой вызывают непонимание
и даже обиду. И это правильно, что ты подсказал тег "лопата", теперь
я им буду щютки обрамлять:
Code: Select all
"лопата"
...щютка
"/лопата"Вот если ко мне приходит в гости кто-то из друзей, я говорю:
"Граф, кофию-с не желаете-с?" и мы оба улыбаемся, поскольку
знаем этот дремучий анекдот. А у других это вряд ли поколеблет
чувство юмора. Но юмор я люблю - так что лопата - к месту.
PPS. Я спросил... у Гугеля... "где моя любимая?" - да фиг тааам!!!
Я спросил - знает ли Гугель анекдот "Граф, кофию-с не желаете-с?"
Знает!!!
http://stories.live4fun.ru/last/joke/53161
Но как анекдоты со временем портятся и опошляются...
Last edited by Lavr on 03 Feb 2011 09:20, edited 2 times in total.
-
HardWareMan
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
-
Lavr
- Supreme God
- Posts: 16780
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ЛОПАТА для 580ВМ80:)
Канадские первоклассники рисовали на уроке на тему «Кем я хочу быть, когда вырасту».
Рисунок одной девочки (текст на рисунке переводится так: «Когда я вырасту, я хочу быть
как мама») вызвал бурную реакцию учительницы... На следующий день девочка принесла учительнице записку от мамы:
Рисунок одной девочки (текст на рисунке переводится так: «Когда я вырасту, я хочу быть
как мама») вызвал бурную реакцию учительницы... На следующий день девочка принесла учительнице записку от мамы:
г-жа Харрингтон wrote:Дорогая г-жа Дэвис!
Я хочу объяснить, что именно изображено на рисунке моей дочери. Это не я, танцующая стриптиз на шесте!
Я работаю в строительном магазине и как-то раз рассказала своей дочери, сколько денег мы заработали во время
последнего бурана. На рисунке я продаю ЛОПАТУ!
You do not have the required permissions to view the files attached to this post.
iLavr
