nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:47



Reply to topic  [ 24 posts ]  Go to page Previous  1, 2
ЗОДАЧА для 580ВМ80:) 
Author Message
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
Lavr wrote:
Это был музыкальный автомобильный клаксон - 580ВМ80, ПЗУ два мощных транзистора и динамик. Блин - классика минимализма
ага, по ЧТ садишь ШД на землю и получаешь 16-разрядный счетчик с тремя питаниями дл перебора нот из ПЗУ :)


02 Feb 2011 08:00
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
У меня в итоге получилось вот что.
Сигнатуру 0AA55H я взял чисто для примера.
Можно выбрать её другую, можно выбрать её
длиннее, но тогда будет длиннее сканер.
Тем не менее, алгоритм, предложенный Шуриком,
Р А Б О Т А Е Т ! ! !

Code:
;      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:
;------- ПОДПРОГРАММА СКАНЕРА СИГНАТУРЫ В СТЕКЕ ---------
  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 изначально ------------------------

NOP в начале и HLT в конце просто выравнивают загрузку в стек
по два байта через PUSH ..., чтобы удобно попасть в адреса

На мой взгляд - всё достаточно кратко и элегантно..
Что ж зодачу, которой в ближайший обед примерно 20 лет, мы с вами, уважаемые коллеги, РАСКОЛОЛИ !!! :D


02 Feb 2011 17:29
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Ухты! Таки полетела... :roll:

_________________
:dj: https://mastodon.social/@Shaos


02 Feb 2011 17:51
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Ухты! Таки полетела...

Ну дык!!!
Это только изнасиловать женьщину на площади советчики мешают. ("лопата")
А в программировании они вносят свежий взгляд. ("не лопата, а, скажем, кайло") :wink:


02 Feb 2011 18:16
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Ну чтож ты прицепился к этой лопате :)

Я в 1993 году в тетрадочке писал в кодах 580-го проца подпрограммы передачи управления в перемещаемой программе - которая без таблицы, просто перемещаемая (в которой совсем не используются абсолютные адреса). Единственное ограничение - адрес входа в подпрограмму передачи управления должен быть фиксированным, а тут предложен вариант как найти эту подпрограмму не зная адреса. Теперь у нас всё есть, чтобы писать перемещаемые вирусы для процессора 8080 :kruto:

_________________
:dj: https://mastodon.social/@Shaos


02 Feb 2011 18:55
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Выспавшись и критически взглянув на это творение, я хочу сделать одно
веское замечание. Я писал всё это на эмуле "Специалиста", а "Спец" априори
не имеет прерываний. Чтобы метод был более универсальным и ввиду того,
что мы активно манипулируем стеком, следует критическую часть от начала
программы и до восстановления стека, обрамить парой DI ... EI.
Иначе первое же прерывание всё наше "чюдо в стеке" изгадит.

Возможно, для уверенного опознавания надо взять сигнатуру - в 4 байта.
Сканер это не сильно усложнит.

PS.
Shaos wrote:
Ну чтож ты прицепился к этой лопате

Ну я человек конструктивный и заметил, что шутки, к которым
я привык в окружении своих друзей, здесь порой вызывают непонимание
и даже обиду. И это правильно, что ты подсказал тег "лопата", теперь
я им буду щютки обрамлять:

Code:
"лопата"
...щютка
"/лопата"

Никто ж не обязан знать чюжих привычных щюток.
Вот если ко мне приходит в гости кто-то из друзей, я говорю:
"Граф, кофию-с не желаете-с?" и мы оба улыбаемся, поскольку
знаем этот дремучий анекдот. А у других это вряд ли поколеблет
чувство юмора. Но юмор я люблю - так что лопата - к месту.
:lol:

PPS. Я спросил... у Гугеля... "где моя любимая?" - да фиг тааам!!!
Я спросил - знает ли Гугель анекдот "Граф, кофию-с не желаете-с?"
Знает!!!

http://stories.live4fun.ru/last/joke/53161
Но как анекдоты со временем портятся и опошляются... :oops:


Last edited by Lavr on 03 Feb 2011 09:20, edited 2 times in total.



03 Feb 2011 03:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Ну в наших уральских краях "лопата" - это тоже был дремучий детский анекдот...

_________________
:dj: https://mastodon.social/@Shaos


03 Feb 2011 06:05
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Shaos wrote:
Ну в наших уральских краях "лопата" - это тоже был дремучий детский анекдот...

Ну и в казаше тоже. Я еще в школу ходил, с ранцем. :3


03 Feb 2011 19:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Канадские первоклассники рисовали на уроке на тему «Кем я хочу быть, когда вырасту».
Рисунок одной девочки (текст на рисунке переводится так: «Когда я вырасту, я хочу быть
как мама
») вызвал бурную реакцию учительницы...
Attachment:
Lopata.jpg
Lopata.jpg [ 25.54 KiB | Viewed 6236 times ]
На следующий день девочка принесла учительнице записку от мамы:
г-жа Харрингтон wrote:
Дорогая г-жа Дэвис!
Я хочу объяснить, что именно изображено на рисунке моей дочери. Это не я, танцующая стриптиз на шесте!
Я работаю в строительном магазине и как-то раз рассказала своей дочери, сколько денег мы заработали во время
последнего бурана. На рисунке я продаю ЛОПАТУ!

_________________
iLavr


30 Jun 2018 14:44
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 24 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.