Pull to refresh

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

Reading time1 min
Views3.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()? :)
Tags:
Hubs:
Total votes 38: ↑23 and ↓15+8
Comments84

Articles