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

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

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

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

Ну например, попробуйте решить такие задачи, как писалось — про однокристалки
Итак, пусть есть 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()? :)
Теги:
Хабы:
+8
Комментарии84

Публикации

Изменить настройки темы

Истории

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн