Какой синтаксис и архитектура блока являются самыми полезными для знания?

Возможно, это слишком странно, но ни одно из вышеизложенных не помогло мне, прежде всего, потому, что я правильно установил lodash (также был переустановлен с помощью вышеупомянутых предложений).

Я исправил его просто с помощью оператора JS in.

23
задан Joe Phillips 31 August 2009 в 19:24
поделиться

10 ответов

Во-первых, существует два типа синтаксиса: Intel и AT&T. В чем разница?

Основные отличия поверхностны: например, обратные операнды.

Почему до сих пор используются два? Когда мне нужно использовать одно вместо другого?

Intel использует синтаксис, который существенно отличается от синтаксиса, который используется практически во всех других документах ISA для процессоров.

GNU , поскольку использует синтаксис AT&T для на всех платформах и поддерживает синтаксис Intel для x86 и x86_64.

Другие ассемблеры (например, NASM, MASM и т. д.) используют исключительно синтаксис Intel.

Итак, как я могу узнать, изучаю ли я сборку из определенного веб-страница будет работать на моей машине?

Это задокументировано в руководствах по процессорам от Intel и AMD . Sandpile также является хорошим ресурсом.

Итак, большой вопрос в том, со всеми этими переменными, как я могу узнать, какой тип мне следует изучать? Что является наиболее распространенным?

Наиболее широко поддерживаемым будет класс Pentium-pro, так называемый «i686», и класс K8 (называемый «x86_64», «amd64» или «EM64T»). Варианты оттуда зависят от того, поддерживается ли MMX, SSE или его варианты. Найдите инструкцию CPUID - она ​​предоставит вам информацию о поддержке процессора, на котором вы работаете.

Как люди могут «знать сборку», когда есть все эти варианты?

Я не знаю ' Не думаю, что кто-нибудь «знает» x86. У каждого, кому это необходимо, есть копия руководства по процессору.

как я могу узнать, какой тип я должен изучать? Что является наиболее распространенным?

Наиболее широко поддерживаемым будет класс Pentium-pro, так называемый «i686», и класс K8 (называемый «x86_64», «amd64» или «EM64T»). Варианты оттуда зависят от того, поддерживается ли MMX, SSE или его варианты. Найдите инструкцию CPUID - она ​​предоставит вам информацию о поддержке процессора, на котором вы работаете.

Как люди могут «знать сборку», когда есть все эти варианты?

Я не знаю ' Не думаю, что кто-нибудь «знает» x86. У каждого, кому это необходимо, есть копия руководства по процессору.

как я могу узнать, какой тип я должен изучать? Что является наиболее распространенным?

Наиболее широко поддерживаемым будет класс Pentium-pro, так называемый «i686», и класс K8 (называемый «x86_64», «amd64» или «EM64T»). Варианты оттуда зависят от того, поддерживается ли MMX, SSE или его варианты. Найдите инструкцию CPUID - она ​​предоставит вам информацию о поддержке процессора, на котором вы работаете.

Как люди могут «знать сборку», когда есть все эти варианты?

Я не знаю ' Не думаю, что кто-нибудь «знает» x86. У каждого, кому это необходимо, есть копия руководства по процессору.

EM64T '). Варианты оттуда зависят от того, поддерживается ли MMX, SSE или его варианты. Найдите инструкцию CPUID - она ​​предоставит вам информацию о поддержке процессора, на котором вы работаете.

Как люди могут «знать сборку», когда есть все эти варианты?

Я не знаю ' Не думаю, что кто-нибудь «знает» x86. У каждого, кому это необходимо, есть копия руководства по процессору.

EM64T '). Варианты оттуда зависят от того, поддерживается ли MMX, SSE или его варианты. Найдите инструкцию CPUID - она ​​предоставит вам информацию о поддержке процессора, на котором вы работаете.

Как люди могут «знать сборку», когда есть все эти варианты?

Я не знаю ' Не думаю, что кто-нибудь «знает» x86. У каждого, кому это необходимо, есть копия руководства по процессору.

12
ответ дан 29 November 2019 в 02:12
поделиться

Весь смысл в том, что вы кодируете, напрямую используя базовый набор команд ЦП. Поскольку разные процессоры имеют разные наборы команд, они все разные. Однако, когда вы знаете одну «сборку» и получаете основные идеи, переключение с одного набора команд на другой становится относительно простым.

Я бы предложил начать со сборки 80386 - она ​​поддерживается практически любым ПК, который вы можете найти, но не имеет слишком много расширений, чтобы запутать кого-то, только начинающего.

7
ответ дан Tal Pressman 29 November 2019 в 02:12
поделиться

Однажды я давно прочитал превосходную книгу Джеффа Дантенманна «Язык ассемблера - шаг за шагом» . Это, пожалуй, единственная книга по ассемблеру 80x86 для начинающих, которую я когда-либо видел, и она очень хорошая. Полагаю, что многое в нем несколько устарело, но программирование на ассемблере на x86 само по себе довольно устарело для большинства вещей в наши дни. Но если вы хотите начать, и вам нужна основа, я думаю, что его книга - то, где вы хотите быть.

2
ответ дан Dave Markle 29 November 2019 в 02:12
поделиться

ты хочешь быть хакером Windows? учиться х86. ты хочешь быть встроенным парнем? пойди купи чип DSP для обучения и научись этому.

2
ответ дан Dustin Getz 29 November 2019 в 02:12
поделиться

Довольно сложно сказать, какая сборка «наиболее полезна», если вы не выберете платформу, которую хотите использовать.

Если вы идете на ПК (intel, amd), начните с сборки x86. Существует общий набор инструкций для разных процессоров + некоторые специфические для технологии инструкции, такие как SSE. Если вы хотите разрабатывать для Windows, взгляните на MASM, для Unix FASM будет хорошим выбором.

1
ответ дан aku 29 November 2019 в 02:12
поделиться

На самом деле, большинству разработчиков в наши дни не нужно знать язык ассемблера. Однако полезно знать концепции , лежащие в основе сборки (архитектура машины, регистры, память и т. Д.). Для этого выучите один процессор, и это все, что вам нужно.

Ознакомьтесь с http://www.grc.com/smgassembly.htm - Стив Гибсон - один из немногих разработчиков, активно пишущих приложения на ассемблере. в наши дни, и на его сайте есть множество ресурсов.

2
ответ дан 29 November 2019 в 02:12
поделиться

Какой тип вам следует выучить? Это зависит от того, что вы хотите с ним делать. Вы хотите узнать больше о своем ПК? Вас интересует встроенное программирование? Убедитесь, что у вас есть способ выполнить свой код. Вы, вероятно, захотите изучить серию x86, но выучить ее не так-то просто. Когда-то я думал, что легче всего освоить цветной компьютер Radio Shack с инструкциями, которые они продавали.

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

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

5
ответ дан 29 November 2019 в 02:12
поделиться

Я помню, как читал вводную книгу по сборке x86 (как мне кажется) Питера Нортона. Книга проводит новичка через процесс создания полноэкранного редактора жесткого диска для MS-DOS. Это лучший способ обучения, потому что вы получаете полный опыт работы с низкоуровневым оборудованием, которое входит в архитектуру x86, и можете применить эти знания и к другим процессорам. Менее полезно знать прерывания DOS, но все же интересно.

2
ответ дан 29 November 2019 в 02:12
поделиться

Я обнаружил, что сборка x86 не так проста для изучения, как первый ассемблер. Msp430 действительно прост. В мире больше процессоров ARM, чем 80x86, так что это неплохая платформа для начала, и ее легко освоить, нормальное количество регистров и, кроме ПК и стека, нет специальных регистров, все они выполняют одни и те же задачи одинаково . Сначала я изучил lsi / pdp11 (нет, не такой уж старый), и он был настолько простым и понятным, что действительно облегчал изучение любого другого. Это был ассемблер, из которого произошел язык C. Не уверен, где бы вы узнали, msp430 недалеко ушел и доступен.

Вопрос изменился после того, как я написал это. Главный ответ - сначала научиться программировать, но я подозреваю, что вы уже знаете, и это не относится к ассемблеру. Второе обучение выполнению этих шагов программирования путем разбиения его на загрузку и сохранение регистров и операции типа alu. Понимая прерывания и их влияние, прерывание может произойти между любыми двумя инструкциями, вы должны сохранить состояние машины, регистры и флаги и т. Д. Некоторые процессоры делают большую часть этого за вас, поэтому вам может потребоваться попробовать несколько разных. чтобы понять сложность. Прерывания и процедуры обслуживания прерываний являются продвинутыми, просто возможность разбить вашу задачу на небольшие простые операции, обычно основанные на регистре, квалифицируется как программирование на ассемблере.

Некоторые процессоры делают большую часть этого за вас, поэтому вам может потребоваться попробовать несколько разных, чтобы понять сложность. Прерывания и процедуры обслуживания прерываний являются продвинутыми, просто возможность разбить вашу задачу на небольшие простые операции, обычно основанные на регистре, квалифицируется как программирование на ассемблере.

Некоторые процессоры делают большую часть этого за вас, поэтому вам может потребоваться попробовать несколько разных, чтобы понять сложность. Прерывания и процедуры обслуживания прерываний являются продвинутыми, простая возможность разбить вашу задачу на небольшие простые операции, обычно основанные на регистре, квалифицируется как программирование на ассемблере.
2
ответ дан 29 November 2019 в 02:12
поделиться

Как уже упоминалось, найдите понравившийся ассемблер, поддерживающий ваше оборудование и узнать это. Есть много вариантов, не все из которых Intel или AMD. В ряде встроенных систем используются другие микросхемы, включая почтенную серию 680x0.

Что касается знания всей сборки, знает ли кто-нибудь все языки программирования? Кто-нибудь знает все о dot net API? Вы очень хорошо знаете небольшой основной раздел любого языка программирования, немного больше, которое вы можете использовать, но, возможно, не до конца понимаете, и большой выбор, о котором вы немного знаете, но должны обратиться к руководству, и есть неизвестная сумма, о которой вы вообще ничего не знаете.

Даже древний 6502 имел десятки операндов и методов адресации. Вы узнаете, что вам нужно для работы. Чем больше работы вы выполняете, тем больше учитесь.

2
ответ дан 29 November 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: