Десятичный ассемблер, или программа изменяющая свой код18.10.2014, 15:25. Показов 1555. Ответов 5
Метки нет (Все метки)
Меня очень интересует программирование в десятичных кодах.
Наконец я придумал как это сделать. Можно считать, что я придумал новый язык. Это проще понять на простой задаче. Итак Требуется вычислить 1+2+3+ ... +20000 Вы видите перед собой программный код десятичного Ассемблера. Первая колонка это номер строки. Она нужна человеку, а не программе. Во второй и третьей колонках стоят адреса (номера строк). В последней колонке стоят Коды Команд. Обозначим строку так N A B C N-номер строки, А и В - адреса, С - код команды Пример. 100- очистка строки с адресом А 101- выполняется операция А=А+В (здесь косвенная адресация) Иными словами переменная по адресу А увеличивается на величину переменной по адресу В 001- инкремент переменной по адресу А 002- декремент А 777- условный косвенный переход if A<>0 then B 888- распечатка результата 999- конец программы. Стоп. 001 011 000 100 002 011 009 101 003 009 000 001 004 010 000 002 005 010 002 777 006 011 000 888 007 000 000 999 008 000 000 000 009 000 000 001 010 000 020 000 011 000 000 000 На VB написан код, который сначала заданный файл преобразует в файл прямого (произвольного) доступа и потом считает. Я проверил. Все верно.
2
|
||||||
| 18.10.2014, 15:25 | |
|
Ответы с готовыми решениями:
5
как исправить ошибку? (программа должна перевести двоичный код в десятичный) |
|
Супер-модератор
|
|
| 18.10.2014, 21:11 | |
|
Проект можно развить в двух направлениях:
1) три команды - маловато. Добавить команд - получится байт-код. Но почему нужно помнить десятичные коды, не лучше ли ввести мнемоники типа mov, add, inc, dec, jmp ? ![]() 2) напротив, попытаться выразить все нужное через минимальный набор команд (см. замечательный язык BrainFuck)
1
|
|
|
Модератор
|
|
| 18.10.2014, 21:57 | |
|
В VB6 реализовано нечто подобное под названием P-Code. Это промежуточный машинонезависимый код, которой выполняется виртуальной машиной VB6. Размер опкода переменный от 1 до 2-х байт.
0
|
|
| 19.10.2014, 09:35 [ТС] | ||||||
|
Catstail
Вы подали неплохую мысль, заменить числовые коды команд на буквенные. Не мудрствуя лукаво, я заменил 3-значные коды на 3-значные аббревиатуры Например Оператор goto - got Оператор print - pri Остальное и так понятно ... Программа работает правильно. 001 011 000 cls 002 011 009 add 003 009 000 inc 004 010 000 dec 005 010 002 got 006 011 000 pri 007 000 000 end 008 000 000 000 009 000 000 001 010 000 020 000 011 000 000 000
Я уже подумал о том, чтобы ввести в программу регистры (например сумматор) и стек. Это кардинально увеличит скорость работы. Но я хотел здесь сказать о другом. Кто-то подумает, что овчинка выделки не стоит. Программа Максимум 999 строк. Ошибаетесь. Программа имеет 999 999 999 строк. Вы забыли о косвенной адресации. А так как каждая строка 4 байта, то можно получить программный файл размером почти 4 ГБ. Если этого мало, то можно добавить ещё файлы. Мало не покажется. Ну а какой прок от этой программы? - спросит тот, кто во всем ищет выгоду. Хорошо. Например вам нужно чтобы в папке А Ваши файлы были защищены. Можно сделать так. В папке Б вы будете хранить оригиналы своих файлов. А программа будет раз в минуту проверять не изменились ли они. Если изменились. То она переписывает их заново. Самое главное. Эта программа (она может изменяться) - живое существо. Она может производить сама себя. Она может собирать информацию. Она может вести диалог с человеком. Иными словами она может эволюционировать. Даже господь Бог не сумел создать человека. Но он поступил умнее. Он создал среду в которой было возможно возникновение жизни и ее эволюция до человека. И эта программа тоже может эволюционировать (дайте срок) ...
0
|
||||||
| 19.10.2014, 10:49 [ТС] | |
|
Catstail,
Спасибо! Но я уже этим занимаюсь ... Вы будете первым, кто его увидит ... Сначала это будет очень простой вариант ... Спасибо!
0
|
|
| 19.10.2014, 10:49 | |
|
Помогаю со студенческими работами здесь
6
Машинный код или Ассемблер
Безопасность. wordpress или свой код? Преобразовать двоичный код в двоично-десятичный код (Intel 8051) Будьте осторожны, или Тестируйте свой код по максимуму Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|