Как стать автором
Поиск
Написать публикацию
Обновить

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

Время на прочтение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

Публикации

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