Стековая виртуальная машина на языке Си

Разработка виртуальных машин может быть не только интересным занятием на вечер, но также и полезным приложением при обучении студентов языку ассемблера на предметах ОАиП (основы алгоритмизации и программирования) и ААС (архитектура аппаратных средств). Целью данной статьи станет создание простой стековой виртуальной машины с собственным языком ассемблера , способным выполнять операции условного и безусловного переходов, инкрементирования и декрементирования чисел, загрузки и выгрузки значений в стек. Машина получится минималистичной и будет обладать лишь 10-ью инструкциями , на основе которых можно будет далее вполне корректно создать собственный высокоуровневый язык программирования.

https://habr.com/ru/articles/870938/

#программирование #виртуальная_машина #язык_ассемблера #си

Стековая виртуальная машина на языке Си

Введение Разработка виртуальных машин может быть не только интересным занятием на вечер, но также и полезным приложением при обучении студентов языку ассемблера на предметах ОАиП (основы...

Хабр

[Перевод] Ассемблер для программистов на языках высокого уровня: условные конструкции

В предыдущей статье мы познакомились с основами синтаксиса языка ассемблера и смогли создать программу на основе всего двух команд. Впечатляющий результат! На этом уроке мы изучим новые команды и воспользуемся этими знаниями, чтобы перенести на язык ассемблера первую конструкцию высокого уровня: условные конструкции.

https://habr.com/ru/companies/ruvds/articles/845308/

#ассемблер #x8664 #язык_ассемблера #системные_вызовы #условные_конструкции #ruvds_перевод

Ассемблер для программистов на языках высокого уровня: условные конструкции

В предыдущей статье мы познакомились с основами синтаксиса языка ассемблера и смогли создать программу на основе всего двух команд. Впечатляющий результат! На этом уроке мы изучим новые команды и...

Хабр

[Перевод] Ассемблер для программистов на языках высокого уровня: Hello World

Если вы начинали изучение программирования с 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 К счастью, по второй строке мы можем понять, что он делает. Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён! С чего же вообще начать? Это небольшое введение предназначено для того, чтобы познакомить имеющих опыт в программировании с миром ассемблера. Мы обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования. Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.

https://habr.com/ru/companies/ruvds/articles/844324/

#ассемблер #hello_world #x8664 #язык_ассемблера #системные_вызовы #ruvds_перевод

Ассемблер для программистов на языках высокого уровня: Hello World

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим. Рассмотрим следующий...

Хабр

[Перевод] Побеждаем компилятор в скорости при помощи ассемблера

В наше время все знают, что писать ассемблерный код — занятие для дураков. Компиляторы — это результат буквально человеко- веков разработки, и они понимают процессор гораздо лучше, чем вы. Тем не менее, иногда до нас доносятся слухи . Написанные в древних томах , подслушанные в тайных покоях , начертанные на стенах разрушенных храмов , упоминаемые в загадочных текстах , они рисуют чёткую картину: Компиляторы плохо справляются с генерацией кода для интерпретаторов, и можно превзойти их, написав интерпретатор на языке ассемблера.

https://habr.com/ru/companies/ruvds/articles/828974/

#ruvds_переводы #язык_ассемблера #производительность #оптимизация_кода #aarch64 #ассемблерная_вставка #abi

Побеждаем компилятор в скорости при помощи ассемблера

В наше время все знают, что писать ассемблерный код — занятие для дураков. Компиляторы — это результат буквально человеко- веков разработки, и они понимают процессор гораздо лучше, чем вы. Тем не...

Хабр

[Перевод] Compiler Explorer — уникальный проект для исследования компилируемого кода

Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer , который я в дальнейшем будут называть CE. CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран: Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени. В основе CE лежит очень простая идея. Достаточно ввести исходный код в левую панель, и сайт мгновенно покажет вам на правой панели скомпилированный результат (обычно на языке ассемблера). CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502. То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода. Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.

https://habr.com/ru/companies/ruvds/articles/815675/

#ruvds_переводы #компиляторы #язык_ассемблера #интерпретаторы #llvm #llvm_ir #анализ_кода

Compiler Explorer — уникальный проект для исследования компилируемого кода

Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer , который я в дальнейшем будут называть CE. CE...

Хабр

35 лет SimCity

В этот день, 35 лет назад, появилась SimCity (1989) – градостроительная стратегия, ставшая хитярой и положившая начало целой серии. Более того, благодаря этой игрушке и её создателю Уиллу Райту, появилась на свет Божий другая серия, известная в народе как The Sims (или «Симсы»), в которой можно было создавать с помощью виртуальных человечков всё то, что ты, читатель, обычно делаешь в реальной жизни. А именно – смотреть зомбоящик, вкалывать на работе, есть, спать, справлять нужду, читать газеты, убираться в хате, строить любовь с другими симами, сгореть в квартире или утопиться в бассейне, да-а… впрочем, об этом как-нибудь потом. Сейчас же – окунемся в истоки и узнаем, как Райт сделал то, что сделал и что из этого вышло. Наливай чаёк и усаживайся поудобнее, мы погнали.

https://habr.com/ru/companies/timeweb/articles/790838/

#timeweb_статьи #SimCity #The_Sims #Уилл_Райт #геймдизайн #стратегия #Apple_II #BASIC #Pascal #язык_ассемблера #Robot_Wars #NES #SimCity_2000 #EA

35 лет SimCity

В этот день, 35 лет назад, появилась SimCity (1989) – градостроительная стратегия, ставшая хитярой и положившая начало целой серии. Более того, благодаря этой игрушке и её создателю Уиллу Райту,...

Хабр