Author |
Message |
Bill
Fanat
Joined: 25 Jan 2014 21:54 Posts: 92 Location: 37.113.169.14
|
некий файл листинга тестовой (судя по заголовку) программы. Откуда и как он попал ко мне абсолютно не помню. Может, кто-нибудь подскажет мне что это за ассемблер и для какого процессора.
|
01 Apr 2021 02:20 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Интересная зогатка... весь антураж ассемблерной программы прямо как от PDP-11или чего-то близкого... Но ld a, (x)+ - значит есть индексный регистр x с постинкрементом... А это не розыгрышь, случаем, из 1990 года? 01-Apr-90
_________________ iLavr
|
02 Apr 2021 15:29 |
|
|
Bill
Fanat
Joined: 25 Jan 2014 21:54 Posts: 92 Location: 37.113.169.14
|
| | | | Lavr wrote: Интересная зогатка... весь антураж ассемблерной программы прямо как от PDP-11или чего-то близкого... Но ld a, (x)+ - значит есть индексный регистр x с постинкрементом... А это не розыгрышь, случаем, из 1990 года? 01-Apr-90 | | | | |
В каждой шутке есть доля шутки Вот ещё немного | | | | Code: STRING Macro-12 V0.1 Copyright (c) domEl 2019 03-Apr-21 Saturday 13:34 Page 1 1 .title STRING 2 .ident /V01/ 3 .psect $$code 4 5 strcpy:: 6 000000 0626 0004 ld x, (sp+4) ; Source string pointer 7 000002 0666 0002 ld y, (sp+2) ; Destination string pointer 8 000004 0454 1$: ld a, (x)+ ; Copy string 9 000005 1455 st a, (y)+ ; 10 000006 0042 7774 bne 1$ ; 11 12 000010 0566 0002 ld d, (sp+2) ; Return destination pointer 13 000012 0756 rts 14 15 strlen:: 16 000013 0626 0002 ld x, (sp+2) ; Get string pointer 17 000015 7154 1$: tst (x)+ ; Scan the string to the end 18 000016 0042 7775 bne 1$ ; 19 20 000020 7244 dec x ; Adjust the pointer 21 000021 5626 0002 sub x, (sp+2) ; Calculate the string length 22 000023 0544 ld d, x ; Return the result 23 000024 0756 ret 24 25 strchr:: 26 000025 0466 0004 ld a, (sp+4) ; Get the char to be found 27 000027 0626 0002 ld x, (sp+2) ; Get string pointer 28 000031 7150 1$: tst (x) ; Is the end of string? 29 000032 0043 0006 beq 2$ ; Jump if yes 30 31 000034 6454 cmp a, (x)+ ; Is the char found? 32 000035 0042 7772 bne 1$ ; Loop if no 33 34 000037 7244 dec x ; Adjust the string pointer 35 000040 0544 ld d, x ; Return it 36 000041 0756 rts ; 37 38 000042 7003 2$: clr d ; Return NULL 39 000043 0756 ret ; 40 41 strrchr:: 42 000044 0466 0004 ld a, (sp+4) ; Get the char to be found 43 000046 0626 0002 ld x, (sp+2) ; Get string pointer 44 000050 7154 1$: tst (x)+ ; Find the string end 45 000051 0042 7775 bne 1$ ; 46 47 000053 6460 2$: cmp a, -(x) ; Is the char found? 48 000054 0043 0006 beq 3$ ; Jump if yes 49 50 000056 6626 0002 cmp x, (sp+2) ; Is the string start? 51 000060 0052 7771 bhi 2$ ; Loop if no 52 53 000062 7003 clr d ; Return NULL 54 000063 0756 ret 55 56 000064 0544 3$: ld d, x ; Return a pointer to the char 57 000065 0756 ret 58 59 .end 59 | | | | |
|
03 Apr 2021 01:45 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А это не может быть ассемблером от каких-то учебных моделей типа: http://educomp.runnet.ru ? А то, помню, попадался мне учебничек толстый и в принципе не глупый, и с ассемблером, но основанный на абстрактной ЭВМ, чем-то напоминающей PDP-8.
_________________ iLavr
|
03 Apr 2021 10:19 |
|
|
Bill
Fanat
Joined: 25 Jan 2014 21:54 Posts: 92 Location: 37.113.169.14
|
Вообще-то, это, с одной стороны, действительно первоапрельская шутка. С другой стороны, это абстрактная (пока ещё) ЭВМ, которую я надеюсь реализовать в "железе". Архитектурно, она действительно представляет собой нечто среднее между PDP-8 и PDP-11. Хотя изначально я взял за основу МП MC6809, увеличив размер байта до 12 разрядов. Что касается ассемблера, то он сделан на основе Macro-11. Но он тоже до конца ещё не реализован.
|
03 Apr 2021 11:42 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Хорошая шутка! И "зогатка" отличная! Но, похоже, я всё угадал... Спасибо вам! Отличный пост! А то тут что-то и шутить перестали... и шутки понимать... P.S. Кстати, тут в своё время была "зогатка" от Дёмина - в очень хорошем стиле!
_________________ iLavr
|
03 Apr 2021 15:12 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Зря промолчали! Вдруг бы что необычное сказали! У вас ведь тоже "зогатки" получаются хоть куда! Так спотыкнёшься по пути и думаешь, что же такое автор сказать-то хотел... Потом догадываешься... ааа... ну да... бох же...
_________________ iLavr
|
04 Apr 2021 14:36 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Точно-точно... особенно те, кто высшую школу подзабыли, и путают Шоттки и Шмитта... Есть такая поговорка:" На бога надейся, но и сам не плошай..."
_________________ iLavr
|
05 Apr 2021 10:26 |
|
|
Konstantin18
Maniac
Joined: 15 Jan 2019 15:48 Posts: 326 Location: Украина, Луганская обл.
|
Дааа ... А я только после последнего поста Лавра ошибку увидел. Видимо, весенний авитаминоз ...
|
05 Apr 2021 13:45 |
|
|