Как стать автором
Обновить

Кто из современных программистов способен решить задачи низкого уровня или Задачки Для Программистов

Время на прочтение1 мин
Количество просмотров3.3K
Навеяно историей об одном байте

А способны ли современные программисты на создание кода как искусства? Попробуйте решить эти задачки :)

Ну например, попробуйте решить такие задачи, как писалось — про однокристалки
Итак, пусть есть 2 однобайтовых регистра A и B, которые образуют двухбайтный AB, стек, условный переход в длинее +- 127 команд от текущей точки, безусловный — 255. 128 команд в оперативной памяти, 8K банк памяти.
Команды работы с регистрами — битовые сдвиги, сложение
Условный переход может быть если стоит флаг выхода за границу регистра?
Что такое выход за границу? Это если к 200 прибавить 100. Будет выход за границу разрядности байта. Это тот, который 8 бит

Допустим первая задача. Реализовать вычитание. У нас есть только сложение.
Сделать A-B, резултьат поместить в A.
Решим задачу для значений до 127. Старший байт будет у нас знаком
Соответственно, выставив старший бит для A, мы получим -A
(-A)+B=A-B
Задача решена

А сможете сделать решение для 255? А для 0xFFFFh?

Предположим с первой задачей справились.

А как поменять между собой значения A и B?

А сможете сделать умножение? А деление? Для облегчения работы — беззнаковое + добавлено еще пара регистров — DE

А знаете как делать процесс ветвления с возвратом в одну точку с использованием стека?

А как реализовать cos() и sin()? :)
Теги:
Хабы:
Всего голосов 38: ↑23 и ↓15+8
Комментарии84

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань