Публикации по теме 'machine-code'


Путешествие во времени в 80-е: программирование машинного кода Commodore 64 на BASIC
В этой статье мы углубимся в захватывающую сферу программирования Commodore 64, отправимся в 80-е, чтобы раскрыть искусство создания машинного кода с использованием надежного языка BASIC. Раскрывая вызов Как упоминалось в предыдущей части , мои поиски привели меня к книге по ассамблее, вновь разжигая мои поиски знаний. Первое, что меня впечатлило, это возможность запоминать машинные коды, а затем вызывать их для исполнения, используя только BASIC. Кому-то это может показаться..

Машинный код
Под капотом вашей программы Мы все время пишем программы, используя языки программирования высокого уровня, такие как Java, C и т. Д. С помощью этих программ мы можем дать компьютеру указание сделать что-нибудь полезное. Но задумывались ли вы, как именно компьютер может выполнять эти инструкции? Идея этого поста не в том, чтобы научить вас программировать на языке низкого уровня или, в худшем случае, в двоичной форме, а в том, чтобы показать вам, что происходит под капотом. Как вы,..

Эволюция языков программирования: от машинного кода к Python
Введение: Языки программирования — это неотъемлемая часть области компьютерных наук, позволяющая разработчикам создавать программное обеспечение, операции и системы, которые можно запускать на компьютере. История языков программирования богата и разнообразна, и каждая новая языковая структура основывается на основах, заложенных ее предшественниками. На заре вычислительной техники программирование выполнялось с использованием машинного закона, последовательности нулей и единиц,..

Браузерные движки: вершина под капотом JavaScript
С апреля 2021 года JavaScript исполняется 26 лет. Поскольку язык, изначально предназначенный для чего-то еще, кроме повышения отзывчивости ваших веб-приложений Netscape Navigator, можно с уверенностью сказать, что JS за последние несколько лет стал очень популярным языком. Я мог бы выплеснуть самоуверенную тираду, проведя мозговой штурм, почему JS был языком Интернета, и разработчики программного обеспечения отстаивали здесь, в отличие от, скажем, C # или Java, но все они не смогли бы..

Вопросы по теме 'machine-code'

сборка для сравнения двух чисел
Каков синтаксис ассемблера для определения того, какое из двух чисел больше? Какой у него нижний уровень (машинный код)? Можем ли мы пойти еще ниже? Как только мы доберемся до битового уровня, что произойдет? Как это представлено в 0 и 1?
145742 просмотров
schedule 28.07.2022

Вопросы, касающиеся реализации простого эмулятора ЦП
Исходная информация: В конечном счете, я хотел бы написать эмулятор реальной машины, такой как оригинальная Nintendo или Gameboy. Однако я решил, что мне нужно начать с чего-то гораздо более простого. Мой консультант/профессор информатики...
3144 просмотров
schedule 11.02.2023

Почему EXE не в двоичном формате?
Почему, если вы откроете EXE в шестнадцатеричном редакторе, вы увидите все, что угодно. Если компьютеры понимают только двоичный код, то разве в файле не должно быть только 2 возможных символа? Спасибо
1391 просмотров
schedule 23.05.2022

Является ли ассемблерный код кроссплатформенным?
0x042444FF; /* inc dword ptr [esp+4] */ 0x042444FF — это машинный код, а inc dword ptr [esp+4] — ассемблерный код, я знаю, что машинный код НЕ является кросс-платформенным, так как он зависит от многих факторов. А как насчет ассемблерного...
1760 просмотров
schedule 27.10.2022

Создание пользовательского машинного кода с нуля
Я недавно начал работать с логическим дизайном уровней в качестве любителя, но теперь столкнулся с программным обеспечением, в котором я гораздо менее компетентен. Я завершил разработку пользовательского 4-битного процессора в Logisim на основе...
1204 просмотров
schedule 15.03.2024

Как в сборке x86 установить нулевой флаг (ZF) без операции сравнения?
У меня есть короткий фрагмент сборки (x86), который я пытаюсь понять, что он делает. ... 6: 81 ec 00 01 00 00 sub $0x100, %esp c: 31 c9 xor %ecx , %ecx e: 88 0c 0c mov %cl , (%esp,...
21750 просмотров
schedule 13.04.2023

Как включить и перевести пользовательские инструкции / расширения в стандартный код C / C ++ с сохранением высокой производительности
Я разрабатываю ядро ​​обработки изображений общего назначения для ПЛИС и ASIC. Идея состоит в том, чтобы связать с ним стандартный процессор. Одна из моих проблем - как его "запрограммировать". Поясню: в ядре есть декодер инструкций для моих...
345 просмотров
schedule 10.05.2022

Обратный инженер сборки
Я новичок в реверс-инжиниринге и хочу узнать больше. Я попытался разобрать целевой exe-файл, где обнаружил некоторые функции, которые не мог толком интерпретировать. Надеюсь, кто-то поможет протянуть руку помощи. 00161000 /$ 83EC 08 SUB...
2292 просмотров

Взломать какой-нибудь exe файл - как удалить байты
Сегодня я пытаюсь удалить несколько байтов из EXE-файла. Внутри EXE я нашел путь к файлу, который EXE должен загрузить. Я хочу изменить путь, и для этого мне нужно удалить некоторые символы ../../ . Когда я делаю это и сохраняю файл, он теряет...
1233 просмотров
schedule 23.10.2023

Являются ли операторы goto эффективными по сравнению с вызывающими функциями?
У меня есть следующий код на С++ здесь: #include <iostream> int main(int argc, const char * argv[]) { goto line2; line1: std::cout << "line 1"; goto line3; line2: std::cout << "line 2"; goto line1; line3:...
7938 просмотров
schedule 22.08.2022

Есть ли ассемблер, который позволит мне «встроить» машинный код?
Я много искал в Google способ включения машинного кода прямо в исходный файл сборки. Мне не повезло. Что я подразумеваю под «встроенным машинным кодом», может быть неясно, поэтому позвольте мне привести пример того, что я ищу: ; here's my...
480 просмотров
schedule 07.07.2022

Все ли данные действительны для 16-разрядного машинного кода x86?
Выполнение ndisasm /dev/urandom , кажется, никогда не дает мне никаких ошибок. Это говорит о том, что мне либо очень повезло, либо все байты действительно разбирают на 16-битный ассемблер. Я столкнулся с реальной проблемой, потому что хочу знать,...
195 просмотров
schedule 17.07.2022

Почему карта кода операции ia32 / x64 документирует 0x66 и 0xF2 как двойной обязательный префикс для кода операции 0x0F38F1 (CRC32)?
В Руководстве разработчика программного обеспечения для архитектур Intel 64 и IA-32 строка F, таблица A-4, приложение A.3, том 2C (номер для заказа 326018-045US, январь 2013 г.) уникальна тем, что в ней есть подстрока префикса для комбинации двух...
1014 просмотров
schedule 16.11.2023

Как закодировать непосредственное значение в руке?
Предположим, что есть такой инст: add ip, ip, #0x5000 машинный код 05 CA 8C E2 а также E2 8C CA 05 = 11100010100011001100 1010 00000101 imm = rotate_right(101B, 1010B*2) = 0x5000 Но если мы знаем 0x5000, как мы можем...
4580 просмотров

Как 68000 внутренне представляет инструкции?
Каким образом 68000 представляет инструкции внутри себя. Я читал, что существуют разные типы инструкций: инструкции формата слова с единственной эффективной операцией, инструкции краткого и полного расширения слова. Команда с одним эффективным...
2164 просмотров

Запускать динамически сгенерированную сборку на C (GNU / Linux)
Я пишу пилотный JIT-компилятор на языке C, который в настоящий момент генерирует строки ассемблерного кода. Функциональность встроенной сборки в C работает только со строковыми литералами, которые известны во время компиляции, поэтому я не могу...
1101 просмотров

Машинный код для ветвления
Я немного смущен тем, как инструкция ветвления переводится в машинный код. Я прочитал в своей книге, что ветвь, если инструкция равна, является инструкцией типа B, которая отформатирована следующим образом: код операции reg1 reg2 адрес + смещение...
1614 просмотров

Программа и данные совместно используют оперативную память и имеют разную длину слова.
Архитектура x86_64 имеет (максимальную) длину слова 120 бит, но все пути данных имеют длину 64 бита. Мой вопрос: как программа и данные могут совместно использовать ОЗУ, если они имеют неравную длину слова. Я гуглил, но не нашел ничего, что...
50 просмотров

Как функции кодируются / хранятся в памяти?
Я понимаю, как такие вещи, как числа и буквы, кодируются в двоичном формате и, следовательно, могут храниться как 0 и 1. Но как функции хранятся в памяти? Я не понимаю, как они могут быть сохранены как 0 и 1, и я не понимаю, как что-то может быть...
4354 просмотров

Преобразование в машинный язык
Я изучаю информатику, у меня есть курс COAL (язык компьютерной организации и ассемблера), я пытался преобразовать язык ассемблера в машинный язык, но у меня возникли некоторые трудности. Например, если мне нужно преобразовать MOV [SI + 490], SP в...
474 просмотров
schedule 02.06.2024