В каком поколении машин все инструкции компьютеру давались в машинном коде

Обновлено: 21.11.2024

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Структура управления рисками ISO 31000 – это международный стандарт, который предоставляет компаниям рекомендации и принципы для .

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

Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .

Метаморфное и полиморфное вредоносное ПО – это два типа вредоносных программ (вредоносных программ), код которых может изменяться по мере их распространения.

В контексте вычислений Windows и Microsoft Active Directory (AD) идентификатор безопасности (SID) — это уникальное значение, которое равно .

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

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

Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.

Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.

Износ флэш-памяти NAND — это пробой оксидного слоя внутри транзисторов с плавающим затвором флэш-памяти NAND.

Выносливость при записи — это количество циклов программирования/стирания (P/E), которое может быть применено к блоку флэш-памяти перед сохранением .

Машинный код или машинный язык – это набор инструкций, выполняемых непосредственно центральным процессором компьютера (ЦП). Каждая инструкция выполняет очень специфическую задачу, такую ​​как загрузка, переход или операция АЛУ над единицей данных в регистре или памяти ЦП. Каждая программа, непосредственно выполняемая ЦП, состоит из серии таких инструкций.

  • Квадратные скобки означают, что поле является необязательным.
  • Метка — это идентификатор, которому назначается адрес первого байта инструкции, в которой он появляется. За ним должен следовать «:»
  • Включение пробелов является произвольным, за исключением того, что должен быть вставлен хотя бы один пробел; отсутствие пробела приведет к двусмысленности.
  • Поле комментария начинается с точки с запятой « ;

Машинные инструкции, используемые в микропроцессоре 8086

  • MOV: перемещение байта или слова в регистр или память.
  • IN, OUT: ввод байта или слова из порта, вывод слова в порт.
  • LEA: загрузить эффективный адрес
  • LDS, LES Указатель загрузки с использованием сегмента данных, дополнительный сегмент.
  • PUSH, POP: поместить слово в стек, извлечь слово из стека.
  • XCHG: обмен байтами или словами.
  • XLAT: преобразование байта с помощью таблицы поиска.
  • ADD, SUB: добавить, вычесть байт или слово
  • ADC, SBB: сложение, вычитание байта или слова и перенос (заимствование).
  • INC, DEC: Увеличение, уменьшение байта или слова.
  • NEG: отрицание байта или слова (дополнение до двух).
  • CMP: сравнение байта или слова (вычитание без сохранения).
  • MUL, DIV: умножение, деление байта или слова (без знака).
  • IMUL, IDIV: целочисленное умножение, деление байта или слова (со знаком)
  • CBW, CWD: преобразование байта в слово, слова в двойное слово
  • AAA, AAS, AAM, AAD: настройка ASCII для add, sub, mul, div.
  • DAA, DAS: десятичная корректировка для сложения и вычитания (BCD-числа)
  • НЕ: логическое НЕ байта или слова (дополнение до единицы)
  • И: логическое И байта или слова
  • ИЛИ: логическое ИЛИ байта или слова.
  • Исключающее ИЛИ: логическое исключающее ИЛИ байта или слова
  • ТЕСТ: Тестовый байт или слово (И без сохранения).
  • SHL, SHR: инструкция по логическому смещению сдвига влево, вправо байта или слова? от 1или CL
  • SAL, SAR: арифметический сдвиг влево, вправо байта или слова? на 1 или CL
  • ROL, ROR: Повернуть влево, вправо байт или слово? на 1 или CL.
  • RCL, RCR: Повернуть влево, вправо по переносимому байту или слову? на 1 или CL.
  1. Инструкция по работе со строками — загрузка, сохранение, перемещение, сравнение и поиск байтов/слов
  • MOVS: перемещение строки байтов или слов
  • MOVSB, MOVSW: перемещение байта, строки слова.
  • CMPS: сравнение байтовой или словесной строки.
  • SCAS S: может состоять из строк байтов или слов (по сравнению с A или AX)
  • LODS, STOS: загрузка, сохранение строки байтов или слов в AL.
  • JMP: безусловный переход. Он включает циклическую передачу, инструкции подпрограмм и прерываний.
  • JNZ: переход до тех пор, пока значение счетчика не уменьшится до нуля. Он запускает цикл до тех пор, пока значение, хранящееся в CX, не станет равным нулю
  • ЦИКЛ: безусловный цикл, подсчет в CX, короткий переход к целевому адресу.
  • LOOPE (LOOPZ): Цикл, если равен (ноль), счет в CX, короткий переход к целевому адресу.
  • LOOPNE (LOOPNZ): Цикл, если не равен (не ноль), счет в CX, короткий переход к целевому адресу.
  • JCXZ: переход, если CX равен нулю (используется для пропуска кода в цикле).
  • Инструкции по подпрограммам и прерываниям-
  • CALL, RET: вызов, возврат из процедуры (внутри или вне текущего сегмента).
  • INT, INTO: Программное прерывание, прерывание при переполнении. IRET: Возврат из прерывания.
<р>7. Инструкции по управлению процессором-

  • STC, CLC, CMC: установить, очистить, дополнить флаг переноса.
  • STD, CLD: установить, сбросить флаг направления. STI, CLI: установить, сбросить флаг разрешения прерывания.
  • PUSHF, POPF: отправка флагов в стек, извлечение флагов из стека.

Пример вопроса GATE

Рассмотрите приведенную ниже последовательность машинных инструкций:

В приведенной выше последовательности регистры с R0 по R8 являются регистрами общего назначения. В показанных инструкциях первый регистр хранит результат операции, выполненной на втором и третьем регистрах. Эта последовательность инструкций должна выполняться в конвейерном процессоре команд со следующими 4 этапами: (1) выборка и декодирование инструкции (IF), (2) выборка операнда (OF), (3) выполнение операции (PO) и (4). ) Запишите результат (WB). Стадии IF, OF и WB занимают по 1 тактовому циклу для каждой инструкции. Стадия PO занимает 1 тактовый цикл для инструкции ADD или SUB, 3 тактовых цикла для инструкции MUL и 5 тактовых циклов для инструкции DIV. Конвейерный процессор использует пересылку операндов со стадии PO на стадию OF. Количество тактов, необходимых для выполнения вышеуказанной последовательности инструкций, равно ___________
(A) 11
(B) 12
(C) 13
(D) 14< /p>

Статья предоставлена ​​Пуджей Танеджей. Пожалуйста, пишите комментарии, если вы обнаружите что-то неверное или хотите поделиться дополнительной информацией по теме, обсуждаемой выше.

Машинный язык, в котором код дополнения цифры является дополнением кода цифры.

Связанные термины:

Скачать в формате PDF

Об этой странице

Что такое сборка?

МАЙКЛ Л. ШМИТ, процессор Pentium™, 1995 г.

Машинный язык

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

Обзор исследования поддерживаемого инструментами тестирования проектов, основанных на требованиях, на основе моделей

Ралука Маринеску, . Пол Петтерссон, Достижения в области компьютеров, 2015 г.

6.4 АсмЛ

Затем мы выбираем репрезентативный инструмент категории записи до/после и применяем его к нашему рабочему примеру.

Архитектура

Сара Л. Харрис, Дэвид Харрис, в Digital Design and Computer Architecture, 2022

6.4.7 Интерпретация кода машинного языка

Для интерпретации машинного языка необходимо расшифровать поля каждого 32-битного командного слова. В разных инструкциях используются разные форматы, но все форматы имеют общее 7-битное поле кода операции. Таким образом, лучше всего начать с просмотра кода операции, чтобы определить, является ли это инструкцией типа R, I, S/B или U/J.

Перевод машинного языка на язык ассемблера

Переведите следующий код машинного языка на язык ассемблера.

Решение

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

0100 0001 1111 1110 1000 0011 1011 0011 (0x41FE83B3)

1111 1101 1010 0100 1000 0010 1001 0011 (0xFDA48293)

Код операции определяет, как интерпретировать остальные биты. Код операции первой инструкции — 01100112 ; Итак, согласно Таблице B.1 в Приложении B, это инструкция R-типа, и мы можем разделить остальные биты на поля R-типа, как показано в верхней части рисунка 6.28. Код операции второй инструкции — 00100112 , что означает, что это инструкция I-типа. Мы группируем оставшиеся биты в формат I-типа, как показано на рис. 6.28, где показан ассемблерный код, эквивалентный двум машинным инструкциям.

Рисунок 6.28. Преобразование машинного кода в ассемблерный код

Языки программирования

ХАРВИ М. ДЕЙТЕЛЬ, БАРБАРА ДЕЙТЕЛЬ, Введение в обработку информации, 1986 г.

Язык ассемблера

Сегодня программисты редко пишут программы на машинном языке. Вместо этого они используют более понятные языки ассемблера или языки высокого уровня. Эти языки частично ответственны за широкое использование компьютеров в настоящее время.

Программисты, обремененные программированием на машинном языке, начали использовать сокращения, похожие на английские, для различных инструкций машинного языка. Эти аббревиатуры, называемые мнемоникой (вспомогательные средства запоминания), относятся к действию, которое необходимо предпринять, и имеют больше смысла для программиста. Например, вместо того, чтобы писать «+ 20» для обозначения сложения, программист может написать мнемоническое «ДОБАВИТЬ»; «SUB» может использоваться для вычитания, «DIV» — для деления и т.п. Даже местам хранения были даны имена. Если бы ячейка 92 содержала сумму, ее можно было бы назвать «ИТОГО» или «СУММА» вместо 92. Получившиеся программы было намного легче понять и модифицировать. Например, в программе расчета заработной платы, которая вычитает общую сумму вычетов из валовой заработной платы для расчета чистой заработной платы, могут появиться следующие инструкции на ассемблере:

К сожалению, компьютеры не могли понять эти программы, поэтому мнемоники все равно приходилось переводить на машинный язык для обработки. В профессии программиста возникла аристократия. «Высший класс» состоял из программистов, которые писали программы с использованием англоподобной мнемотехники. Затем «простолюдины», которых называли ассемблерами, брали эти программы и вручную переводили их на машинный язык — довольно механическая работа. В 1950-х годах программисты поняли, что этот перевод может быть выполнен компьютерами быстрее и точнее, чем люди, и поэтому была написана первая программа на ассемблере, или программа-переводчик (рис. 9-1). Программа инструкций, написанная на языке ассемблера, известна как исходная программа; программа на ассемблере переводит ее в программу на машинном языке, называемую объектной программой.

Рисунок 9-1. Программа на ассемблере переводит программу на языке ассемблера (исходную программу) в программу на машинном языке (объектную программу).

Программы можно было писать быстрее на языке ассемблера, чем на машинном языке, хотя их все равно приходилось переводить на машинный язык, прежде чем они могли быть выполнены (см. рис. 9-2). Работа по переводу была более чем оправдана благодаря увеличению скорости программирования и уменьшению количества ошибок.

Рисунок 9-2. Пример мнемоники на языке ассемблера, используемой в некоторых мейнфреймах IBM. Полный набор инструкций предлагает около 200 мнемонических кодов. Коды операций показаны в шестнадцатеричной системе счисления (с основанием 16).

Программы на языке ассемблера также зависят от машины и не переносимы. Программистам приходится писать большое количество инструкций, чтобы выполнять даже простые действия, а программы по-прежнему выглядят на компьютерном языке ( рис. 9-3 ).

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

Макроинструкции

Следующим шагом в процессе эволюции стало введение макрокоманд . Макроинструкция — это одна инструкция, которая транслируется в несколько инструкций машинного языка. С помощью одной макрокоманды программист может указать действие, для которого обычно требуется несколько инструкций на языке ассемблера. Например, простой макрос SUM A, B, C может использоваться для добавления A к B и сохранения результатов в C.

Всякий раз, когда программа на ассемблере сталкивается с макрокомандой, она сначала выполняет раскрытие макроса. Он создает серию инструкций на языке ассемблера для выполнения функции макроса. Например, СУММА A, B, C может быть расширена до

а затем ассемблер переводил эти инструкции на машинный язык.

Изучение вычислительного языка (обновление главы 15)

Менно ван Заанен, Коллин де ла Игуэра, Справочник по логике и языку (второе издание), 2011 г.

16.1 Введение

При работе с языком (машинное) обучение может принимать различные формы, наиболее важными из которых являются те, которые связаны с изучением формальных языков и грамматик на основе данных. Вопросы в этом контексте находились на пересечении областей индуктивного вывода и компьютерной лингвистики в течение последних 50 лет.Возвращаясь к новаторской работе, Хомский (1955) и Соломонов (1964) по совершенно разным причинам интересовались системами или программами, которые могли бы выводить язык при представлении информации о нем.

Голд (1967) чуть позже предложил объединяющую парадигму под названием идентификация в пределе, а термин грамматический вывод, по-видимому, появился в докторской диссертации Хорнинга (1969).

Вне области лингвистики исследователи и инженеры, занимающиеся распознаванием образов, под влиянием Фу (1974) изобрели алгоритмы и изучали подклассы языков и грамматик с точки зрения того, что можно или нельзя изучить ( Фу и Бут, 1975 г.).

Исследователи в области машинного обучения занимались смежными проблемами (самой известной из них была задача вывода детерминированного конечного автомата на основе примеров и контрпримеров строк). Angluin (1981, 1987) ввел важную настройку активного обучения или обучения на основе запросов, в то время как Питт и Вармут (1993) и Питт (1989) дали несколько результатов, вдохновленных сложностью. , показывая сложность различных проблем обучения.

В более прикладных областях, таких как вычислительная биология, исследователи также работали над изучением грамматик или автоматов из строк, например Brazma et al. (1998) . Точно так же, исходя из компьютерной лингвистики, можно указать на работы, связанные с изучением языка с более сложными грамматическими формализмами (Канадзава, 1998), более статистическими подходами, основанными на построении языковых моделей, или различными системами, введенными для автоматического построения грамматик из предложений (Адриаанс , 1992; ван Заанен, 2000). Обзоры связанных работ в конкретных областях можно найти у Сакакибара (1997 г.), де ла Хигера (2005 г.) и Вольф (2006 г.) .

При рассмотрении истории теории формального обучения можно выделить несколько тенденций. Из «интуитивных» подходов, описанных в ранних исследованиях, возникли более фундаментальные идеи. Основываясь на этих идеях и более широком доступе данных, больше исследований было направлено на прикладное изучение языков. В последнее время наблюдается тенденция требовать более теоретически обоснованных доказательств в прикладной области, в основном из-за увеличения размера проблем и важности наличия гарантий на результаты. Эти тенденции привели к междисциплинарному характеру формального изучения языка. Здесь можно найти аспекты изучения естественного языка (как области применения), машинного обучения и теории информации.

При попытке найти общие черты работы в области изучения языков следует учитывать как минимум два аспекта. Обучение происходит в обстановке. Проблемы в этом измерении — это свойства обучающих данных, такие как положительные/отрицательные экземпляры, количество или уровень шума, а также мера успеха. Другое измерение связано с парадигмами в отношении обобщения обучающих данных. Цель изучения языка состоит в том, чтобы найти язык, который используется для генерации обучающих данных. Этот язык обычно более общий, чем обучающие данные, и требует подхода к обобщению.

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

Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

машинный язык, числовые коды операций, которые конкретный компьютер может выполнять напрямую. Коды представляют собой строки из нулей и единиц или двоичные цифры («биты»), которые часто преобразуются как из шестнадцатеричной системы счисления, так и в шестнадцатеричную (с основанием 16) для просмотра и модификации человеком. Инструкции машинного языка обычно используют некоторые биты для представления операций, таких как сложение, и некоторые для представления операндов или, возможно, местоположения следующей инструкции. Машинный язык трудно читать и писать, поскольку он не похож на обычные математические обозначения или человеческий язык, а его коды различаются от компьютера к компьютеру.

Язык ассемблера на один уровень выше машинного языка. Он использует короткие мнемонические коды для инструкций и позволяет программисту вводить имена для блоков памяти, которые содержат данные. Таким образом, вместо «0110101100101000» можно написать «добавить оплату, всего» для инструкции, которая складывает два числа.

Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.

Язык ассемблера разработан таким образом, чтобы его можно было легко перевести на машинный язык. Хотя к блокам данных можно обращаться по имени, а не по их машинному адресу, язык ассемблера не предоставляет более сложных средств организации сложной информации. Как и машинный язык, язык ассемблера требует детального знания конкретной внутренней архитектуры компьютера. Это полезно, когда такие детали важны, например, при программировании компьютера для взаимодействия с устройствами ввода/вывода (принтеры, сканеры, устройства хранения и т. д.).

Читайте также: