{"id":22824557,"url":"https://github.com/umbrellaleaf5/asm","last_synced_at":"2025-04-23T07:43:53.428Z","repository":{"id":266850030,"uuid":"802498277","full_name":"UmbrellaLeaf5/ASM","owner":"UmbrellaLeaf5","description":"My repository with home and seminars exercises on introduction to computer architecture and assembly language at MIPT DAFE/RSE","archived":false,"fork":false,"pushed_at":"2025-02-28T18:04:28.000Z","size":10593,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T22:51:11.515Z","etag":null,"topics":["assembly","cmake","dafe","education","mipt"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UmbrellaLeaf5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-18T13:15:35.000Z","updated_at":"2025-03-28T10:38:53.000Z","dependencies_parsed_at":"2024-12-06T14:45:35.171Z","dependency_job_id":"93a10260-f292-4a15-afd3-12922d176296","html_url":"https://github.com/UmbrellaLeaf5/ASM","commit_stats":null,"previous_names":["umbrellaleaf5/asm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbrellaLeaf5%2FASM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbrellaLeaf5%2FASM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbrellaLeaf5%2FASM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbrellaLeaf5%2FASM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UmbrellaLeaf5","download_url":"https://codeload.github.com/UmbrellaLeaf5/ASM/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250394539,"owners_count":21423360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembly","cmake","dafe","education","mipt"],"created_at":"2024-12-12T17:07:40.501Z","updated_at":"2025-04-23T07:43:53.422Z","avatar_url":"https://github.com/UmbrellaLeaf5.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Введение в архитектуру компьютера и язык Ассемблера\n\n## Краткое описание\n\nЭто репозиторий с моими (и не только моими) домашними работами и семинарскими упражнениями по этому курсу, который в 2024 году читался во втором семестре на ФАЛТ (ПИШ РПИ) МФТИ.\n\n**Изучаемая архитектура: [x86-64 (также AMD64/Intel64/EM64T)](https://ru.wikipedia.org/wiki/X86-64)**\n\n## О CMake\n\nС помощью CMake здесь настроена возможность компиляции домашних работ и некоторых семинарских упражнений.\n\nОднако для компиляции необходимо установить некоторые библиотеки, а именно `FLTK` и `Boost` (`unit_test_framework`).\n\n[Используя MSYS2](https://vkvideo.ru/video490206404_456239491), это можно сделать следующим образом:\n```shell\npacman -S mingw-w64-x86_64-gcc\npacman -S mingw-w64-x86_64-cmake\npacman -S mingw-w64-x86_64-boost\npacman -S mingw-w64-x86_64-fltk\n```\n\n## Материалы:\n\n### [Домашние работы](/library/hometasks.pdf):\n\n#### 1 задание:\n* [Логические элементы (схемы)](./logic_elements/): Программа на `C++`, которая будет моделировать работу и рисовать на экране одну из следующих логических схем, а также обеспечит ввод входных и вывод выходных сигналов (консоль, файл или GUI) и перерисовку схемы при изменении входных сигналов:\n    * [**4-х разрядный декодер**](./logic_elements/schemes/beautiful_decoder) (в данном случае был реализован n-разрядный декодер, причем с \"красивым\" оформлением, использующем графическую библиотеку FLTK, на основе кода преподавателя А. В. Мишковича);\n    * 4-х разрядная схема сдвига;\n    * 4-х разрядный компаратор;\n    * 4-х разрядный полный сумматор;\n    * 4-х разрядный регистр на основе D-триггеров.\n\n* [Реализация некоторых алгоритмов на машине Тьюринга](./formal_algo/turing/): Машины Тьюринга, которые реализуют:\n    * [сложение двух неотрицательных чисел, данных в двоичной системе счисления](./formal_algo/turing/дз/сложение_двоичных.tur).\n    * [умножение двух неотрицательных чисел, записанных на ленте в виде последовательности единиц](./formal_algo/turing/дз/умножение_единичных.tur), а именно: 0 → 0,1 → 01,2 → 011,3 → 0111,4 → 01111, ... Назовём эту запись единичной записью числа (числа записаны на ленте подряд).\n\n* [Реализация некоторых алгоритмов на машине Маркова](./formal_algo/markov/): Алгоритмы Маркова, которые реализуют:\n    * сложение двух неотрицательных чисел, данных в двоичной системе счисления.\n    * [удвоение числа заданного в виде единичной записи](./formal_algo/markov/дз/удвоение_единичной_записи.nma).\n    * [удвоение числа заданного в двоичной системе счисления](./formal_algo/markov/дз/удвоение_двоичной_записи.nma).\n\n* [Реализация некоторых алгоритмов на конечном автомате](https://github.com/UmbrellaLeaf5/state_machines_executor/tree/main/examples): Конечные автоматы, которые получают на вход двоичную запись натурального числа, начиная с младшего разряда, и выводят двоичную запись числа (все реализации сделаны на основе классов в Python, в будущем планируется создание полноценного графического редактора для удобства выполнения этого задания):\n    * [x + 3](https://github.com/UmbrellaLeaf5/state_machines_executor/blob/main/examples/number_plus_three.py);\n    * [3 * x](https://github.com/UmbrellaLeaf5/state_machines_executor/blob/main/examples/number_mul_three.py);\n    * [3x + 2](https://github.com/UmbrellaLeaf5/state_machines_executor/blob/main/examples/number_mul_three_plus_two.py);\n    * x * (x mod 3).\n\n#### [2 задание](https://github.com/UmbrellaLeaf5/assembly_text_task):\n* [Свойство текста](https://github.com/UmbrellaLeaf5/assembly_text_task/blob/main/assembly_funcs/remove_all_first_repeats.s): Текст начинается заглавной латинской буквой и оканчивается заглавной латинской буквой.\n\n* [Правило 1](https://github.com/UmbrellaLeaf5/assembly_text_task/blob/main/assembly_funcs/change_all_latin_to_star.s): Заменить каждую латинскую букву символом `*`.\n\n* [Правило 2](https://github.com/UmbrellaLeaf5/assembly_text_task/blob/main/assembly_funcs/remove_all_first_repeats.s): Удалить из текста все повторные вхождения его первого символа.\n\n### Прочее:\n\n* [Семинарские упражнения разного рода](./assembly_learning/sem_exercises/) (часто описываются названием папки).\n\n* [Экзаменационное задание](./assembly_learning/exam_exersise/): (пример того, что могут спросить на экзамене): Проверить, является ли число `unsigned int N` степенью двойки.\n\n## [Материалы за авторством Никиты Андреевича Бучилкина](./assembly_learning/hopity/):\n\nКачественное выполнение заданий в этом курсе (в том числе домашних) от [человека](https://github.com/H0p1ty), который сдал зачет **лектору на ОТЛ**.\n\n* [Домашние работы](./assembly_learning/hopity/asm%20tasks/)\n* [Конспекты книги О'Халларона](./assembly_learning/hopity/asm_book_hallaron/)\n* [Семинарские упражнения](./assembly_learning/hopity/code/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumbrellaleaf5%2Fasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumbrellaleaf5%2Fasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumbrellaleaf5%2Fasm/lists"}