fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

AsmREPL: Wing your way through x86-64 assembly language

AsmREPL: Wing your way through x86-64 assembly language

Разработчик Ruby и интернет-шутник Аарон Паттерсон опубликовал REPL для 64-битного языка ассемблера x86, позволяющий интерактивно кодировать на самом низкоуровневом из всех языков.

REPL расшифровывается как “read-evaluate-print loop”, и впервые REPL появились в средах разработки Lisp, таких как Lisp Machines. Они позволяют вести постепенную разработку: программисты могут писать код “на лету”, вводя выражения или блоки кода, получая их оценку – выполнение – немедленно, а результаты распечатываются. Это было возможно благодаря тому, что Лисп стирал границы между интерпретируемыми и компилируемыми языками; в наши дни они являются стандартной функцией большинства скриптовых языков.

Паттерсон ранее предлагал новаторские усовершенствования для повышения производительности разработчиков, такие как аналоговый звонок для терминала и улучшающая производительность прошивка для клавиатуры Stack Overflow. На ней есть только клавиши Ctrl, C и V для более легкого копирования-вставки, но прошивка Паттерсона устраняет утомительную необходимость удерживать клавишу управления.

Мы подозреваем, что Assembler REPL появился благодаря работе Паттерсона над его собственным компилятором “точно в срок” для Ruby, TenderJIT. Он занимается подобными вещами на своей основной работе. Как и TenderJIT, основная цель AsmREPL – образовательная.

Паттерсон объяснил: “Я написал его, потому что никогда не могу вспомнить, что делает инструкция test с нулевым флагом. Каждый раз, когда я использую эту инструкцию, мне приходится искать ее в документации. Искать в документации – это хорошо, но выполнение кода в REPL помогает мне лучше запоминать”.

AsmREPL работает, собирая код в буфер общей памяти с помощью Fisk, ассемблера x86-64, написанного на Ruby, разработанного Паттерсоном, а затем используя системный вызов Unix ptrace для отслеживания того, что делает код. Пользователям Windows придется использовать WSL.

Это не совсем то же самое, что монитор машинного кода, как любили пионеры кодирования в ранние 8-битные времена, но это выглядит как забавный инструмент, если вы учитесь писать драйверы устройств или другой очень низкоуровневый код. ®

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *