Встретил на Хабре очередную статью об написании "простой операционной системы с нуля" и решил поделится своими потугами на эту тему.
Рубрика «ассемблер»
Разбор dos-подобной операционной системы. OzonOS
2024-11-09 в 19:15, admin, рубрики: OSDev, ассемблер, операционные системы, ПрограммированиеАссемблеры, 5 штук — быстрое знакомство для тех кто не знаком
2024-11-01 в 5:13, admin, рубрики: ассемблер, ассемблер (x86)Статья для тех кто не знаком с ассемблерами - но хочет взглянуть "одним глазком". Мы не сделаем вас гуру разработки на ассемблере за 15 минут - но покажем ассемблеры для нескольких популярных архитектур микроконтроллеров (ARM32, AVR, MSP430, 8051) - и для настольных наших компьютеров (x86 под Linux и DOS) - чтобы увидеть их различия и сходства - и не бояться погрузиться глубже, если что-то из этого может быть вам полезно.
Путешествие в мир эмуляторов микропроцессоров
2024-10-15 в 16:15, admin, рубрики: ассемблер, микропроцессоры, Процессоры, ретро, эмуляторВсем привет!
Не так давно на Хабре появился занятный пост о разработке процессора, и я понял, что созрел для своей первой статьи как раз в этом направлении.
Ассемблер для программистов на языках высокого уровня: условные конструкции
2024-09-23 в 13:01, admin, рубрики: ruvds_перевод, x86-64, ассемблер, системные вызовы, условные конструкции, язык ассемблераВ предыдущей статье мы познакомились с основами синтаксиса языка ассемблера и смогли создать программу на основе всего двух команд. Впечатляющий результат!
На этом уроке мы изучим новые команды и воспользуемся этими знаниями, чтобы перенести на язык ассемблера первую конструкцию высокого уровня: условные конструкции.Читать полностью »
Ассемблер для программистов на языках высокого уровня: Hello World
2024-09-18 в 13:01, admin, рубрики: hello world, ruvds_перевод, x86-64, ассемблер, системные вызовы, язык ассемблераЕсли вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим.
Рассмотрим следующий код:
section .data
msg db "Hello, World!"
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 60
mov rdi, 0
syscall
К счастью, по второй строке мы можем понять, что он делает.
Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!
С чего же вообще начать?
Это небольшое введение предназначено для того, чтобы познакомить имеющих опыт в программировании с миром ассемблера. Мы обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования.
Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.Читать полностью »
Секреты Тима Фоллина, бипер, Спектрум и QChan
2024-09-18 в 9:01, admin, рубрики: 1bit, agent x, beyond the ice palace, cabal, Chronos, firefly, midnight resistance, music system, ruvds_статьи, sol-20, trantor, Z80, Zilog, Zilog Z80, zx spectrum, ассемблер, бипер, звук, музыка, спектрум, спикер, тим фоллин, чиптюнСегодня — экстремальный geek out: максимально узкоспециальная тема с запутанным кодом на ассемблере Z80. Раскроем секреты Тима Фоллина в «биперной» музыке на Sinclair ZX Spectrum 48K, попытаемся повторить, а может быть и превзойти его достижения. Некогда объяснять, разберёмся по ходу кода!Читать полностью »
Симкод — это последовательность симкоманд.
Симкоманда — это символьная машинная макрокоманда с Си-подобным синтаксисом.
Например, ассемблерной команде add rax, rbx
соответствует симкоманда rax += rbx
.
Симкод позволяет выразить любой ассемблерный код [и как следствие машинный], только в более человекочитаемом виде. Однако, симкод не пытается назначить символьное обозначение для абсолютно каждой ассемблерной команды — те команды ассемблера, которые не имеют символьной записи, оставляются как есть. Таким образом, симкод является надмножеством ассемблера.
Читать полностью »
Два слова о процедурной графике
2024-07-12 в 17:25, admin, рубрики: demoscene, procedural graphics, sizecoding, ассемблер, Демосцена, конкурс, конкурсы, Программирование, процедурная графикаСреди многочисленных демосценерских конкурсов, которые традиционно входят в программу различных demo party, незаслуженно недооценённым, на мой взгляд, является конкурс процедурной графики (procedural graphics). Смысл этого специфического вида компьютерного творчества - формирование статичного изображения при помощи короткой программы. Стандартные ограничения на размер — 4кб, 1кб, 256 байт.
Разработка игры Jim Power для 8-битной приставки: из первых рук
2024-05-01 в 13:00, admin, рубрики: 6502, 8 бит. игровые консоли, 8-bit, C, Famicom, famitracker, jim power, Nes, Nintendo, ruvds_статьи, sega, snes, ассемблер, денди, игры, Игры и игровые приставки, крис хюльсбек, пиксельная графика, приставка, разработка игр, чиптюнОдно из моих главных увлечений в жизни — видеоигры, преимущественно старые. Я большой энтузиаст ретро-компьютеров и игровых консолей, много лет занимаюсь самыми разнообразными делами в этой области. Кто-то знает меня как разработчика игр, кто-то — как демосценера, кто-то — как чиптюн-музыканта, разработчика музыкального ПО, железных самоделок, и так далее.
Но далеко не все проекты и моя роль в них известны широкой публике. Пожалуй, один из самых интересных — версия игры Jim Power от Piko Interactive, созданная для 8-битной игровой консоли NES (Famicom, Денди). Я занимался им в 2014-2020 годах в качестве приглашённого разработчика.
И хотя это дела давно минувших дней — начинался проект две исторических эпохи назад — проекты такого калибра в своей нише до сих пор случаются не так уж часто. Настало время хотя бы в общих чертах рассказать историю этого проекта, одной из первых любительских разработок, попытавшихся замахнуться на уровень лучших коммерческих игр прошлого.
Если вы когда-либо хотели узнать, как и кем делаются современные игры для несовременных платформ, каким образом люди вообще приходят к этому — сейчас всё будет.Читать полностью »
Как программировали в 1969 году
2024-03-29 в 8:54, admin, рубрики: 1969, ассемблер, история, перфокарты, Программирование, ретроспектива, старое железоЯ провёл это интервью со своей матерью Марианной Эрнерфельд в декабре 2018 года. В посте приведён немного урезанный перевод. Полное интервью на шведском языке можно прочитать здесь.
Почему ты захотела стать программистом?
Я решила стать программистом в 1965-66 годах. Прочитав статью, где на иллюстрации была показана блок-схема, я подумала: «это моё». Когда я выпустилась из старшей школы в 1967 году, не было ни одного университета, обучающего программированию, но существовал полугодовой курс в Сольне [прим. пер.: Сольна — коммуна в Швеции], который превратился в годовой курс, и на него могли выдать студенческий заём. Поэтому я подала на него заявление.
В то же время SJ (шведская государственная железнодорожная компания, на то время монополист) рекламировала программу стажёрства с однолетней оплачиваемой программой обучения, в рамках которой можно было учиться различным частям работы SJ. У SJ был компьютерный отдел, поэтому я подала заявление и в программу SJ, надеясь оказаться в ней.
Однако у SJ оказалось 700 кандидатов на 50 мест, поэтому они устроили суровый процесс отбора с различными тестами. И мне удалось пройти их! Мне нужна была зарплата, чтобы оплачивать собственное жильё, так что я приняла предложение.
Выяснилось, что руководство SJ было очень недовольно тем, что брошюры о стажёрской программе рассылали студентам и мужского, и женского пола! Хотя в программу приняли и не так много девушек, но их всё равно было приличное количество.
Читать полностью »