Мул что за программа

Команда MUL (Unsigned Multiply) относится к группе команд целочисленной (или двоичной) арифметики (Binary Arithmetic Instructions) и производит умножение двух беззнаковых целочисленных операндов. Операнд-назначение (DEST) задается неявно и является переменной в регистре (или регистровой паре) AX, DX:AX или EDX:EAX в зависимости от кода команды и атрибута размера операнда. Единственный операнд команды — операнд-источник (SRC) — может быть переменной в регистре или в памяти (r/m8, r/m16, r/m32).

Действие команды MUL зависит от размера операнда-источника (SRC) следующим образом:

  • однобайтный операнд r/m8умножается на значение в регистре AL, результат помещается в регистр AX, флаги EFLAGS.CF и EFLAGS.OF сбрасываются, если результирующее значение в регистре AH равно нулю, иначе — устанавливаются в 1;
  • двухбайтный операнд r/m16умножается на значение в регистре AX, результат помещается в пару регистров DX:AX, регистр DX содержит старшие 16 бит результата, флаги EFLAGS.CF и EFLAGS.OF сбрасываются, если результирующее значение в регистре DX равно нулю, иначе — устанавливаются в 1.
  • четырехбайтный операнд r/m32умножается на значение в регистре EAX, результат помещается в пару регистров EDX:EAX, регистр EDX содержит старшие 32 бита результата, флаги EFLAGS.CF и EFLAGS.OF сбрасываются, если результирующее значение в регистре EDX равно нулю, иначе — устанавливаются в 1.

Команда MUL позволяет также производить вычисления в неупакованном двоично-десятичном формате (неупакованный BCD-формат). Используя команду AAM сразу же вслед за командой MUL, можно произвести так называемую ASCII-коррекцию результата умножения и получить произведение в таком же неупакованном BCD-формате, как и исходные операнды.

КТО ТАКИЕ МУЛЫ РАЗВЕДЕНИЕ МУЛОВ

Для умножения целочисленных значений со знаком предназначены команды MUL, FIMUL, PMULLW и некоторые другие.

Операция:

IF (Операция над байтами)

THEN AX = AL * r/m8

ELSE (* Операция над словами или двойными словами *)

IF (OperandSize = 16)

THEN DX:AX = AX * r/m16

ELSE (* OperandSize = 32 *)

EDX:EAX = EAX * r/m32

Особые ситуации защищенного режима:

#GP(0), если при обращении к операнду в памяти в сегменте DS, ES, FS или GS используется нулевой селектор.
#GP(0), если любая часть операнда в памяти находится вне допустимого пространства эффективных адресов в сегменте CS, DS, ES, FS или GS.
#SS(0), если любая часть операнда в памяти находится вне допустимого пространства эффективных адресов в стековом сегменте SS.

Intel386 … :
#PF(Код ошибки) при страничной ошибке.
#UD при использовании префикса LOCK.

Intel486 … :
#AC(0) при невыровненной ссылке в память, если активирован контроль выравнивания (CR0.AM = 1, EFLAGS.AC = 1, CPL = 3).

Особые ситуации режима реальной адресации:

#GP, если любая часть операнда в памяти находится вне допустимого для реального режима пространства эффективных адресов в сегменте CS, DS, ES, FS или GS.

Мул в домашнем хозяйстве.


#SS, если любая часть операнда в памяти выходит за допустимую для реального режима верхнюю границу стекового сегмента SS.

Intel386 … :
#UD при использовании префикса LOCK.

Особые ситуации режима V86:

#GP(0), если любая часть операнда в памяти находится вне допустимого пространства эффективных адресов в сегменте CS, DS, ES, FS или GS.
#SS(0), если любая часть операнда в памяти находится вне допустимого пространства эффективных адресов в стековом сегменте SS.

Intel386 … :
#PF(Код ошибки) при страничной ошибке.
#UD при использовании префикса LOCK.

Intel486 … :
#AC(0) при невыровненной ссылке в память, если активирован контроль выравнивания (CR0.AM = 1, EFLAGS.AC = 1, CPL = 3).

Замечание:

К командам целочисленной арифметики относятся команды ADD, ADC, SUB, SBB, IMUL, MUL, IDIV, DIV, INC, DEC, NEG, CMP.

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

У команды MUL есть специфическая особенность, которую использовали для идентификации процессоров-клонов V20/V30 производства компании NEC. У процессоров Intel значение флага FLAGS.ZF не меняется по результату выполнения команды, а в процессорах V20/V30 этот флаг устанавливается по результату операции. Следующий код позволяет отличать эти процессоры от продукции Intel.

Читайте также:
Что за программа pci bus

xor AL, AL ; ZF = 1

mov AL, 40h
mul AL ; проверка ZF по результату операции

jz cpu_NEC_V20_V30 ; процессор V20/V30
jnz cpu_Intel_808x ; процессор Intel

Источник: www.club155.ru

Mulesoft: как появился один из лучших интеграционных продуктов

Платформа Mulesoft избавила разработчиков от «ослиной работы» и позволила совершать молниеносную интеграцию без написания кастомного кода. А еще упростила жизнь 1600 компаниям, среди которых Netflix, Audi, Toyota, Mastercard, Cisco и другие. Рассказываем об истории этого прорывного продукта.

3980 просмотров

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

В 2003-м Мэйсон работал над проектом лондонского инвестиционного банка. Его задача – соединить разрозненные системы, на что ушло около 30 миллионов евро и 18 месяцев работы.

– Тогда я был поражен, насколько сложно работать с очень тяжелыми back-end-системами и передавать через них информацию, – вспоминает Росс. – У нас была надежная архитектура и концепция, но реализация с использованием имеющегося на рынке промежуточного ПО не позволяла завершить этот проект так, как мы хотели.

И тогда у Росса возникла простая и мощная идея: зачем создавать кастомный код, постоянного вносить в него изменения, проверять его работу, если быстрее и эффективнее соединять нужные компоненты на одной платформе.

После завершения проекта Мэйсон решил уйти из компании и отправиться в путешествие по Австралии и странам Южной Америки. Однако он успел поработать на судьбоносном для него проекте.

– Перед моим уходом один из партнеров предложил мне подзаработать денег к большому путешествию, присоединившись к интересному проекту. Его команда разрабатывала систему управления кампаниями для благотворительных пожертвований. Кампании могли проходить в прессе, на ТВ, размещаться на билбордах, отправляться через почту, а пожертвования можно было делать с помощью SMS, телефонных звонков, электронной почты или обычной почты. От меня требовалось решить проблему с многоканальным доступом.

Я согласился построить эту систему с одним условием: я буду владельцем базовой платформы и это будет открытое ПО.

Позже Мэйсон организует специализированное сообщество разработчиков, которые смогут протестировать разработку, оставить отзывы о том, что можно улучшить. И только потом он создаст свою компанию – MuleSoft.

За три года разработка Мэйсона набрала популярность, и он открыл компанию MuleSource (с 2009 года – MuleSoft) с центром в Сан-Франциско.

Название объясняется так: мул/ осел (Мule) выполняет тяжелую работу, такую же “ослиную работу” (donkey work) выполняют разработчики, когда пишут код для интеграции систем. Им на помощь приходит AnyPoint Platform, которая позволяет быстро настроить взаимодействие различных приложений, данных и устройств с помощью API.

“API-интерфейсы – это цифровой клей, позволяющий программам общаться друг с другом”.

Росс Мэйсоно, основатель Mulesoft

Сегодня платформу используют более 175 000 разработчиков из более 1600 компаний, среди которых Airbnb, Coca-Cola, Netflix, Barclays, MasterCard, Toyota, Cisco, Audi и др.

Востребованность технологии позволила MuleSoft открыть офисы в 12 странах и создать рабочие места для 1400 человек.

В марте 2018 года Salesforce купила MuleSoft за 6,5 млрд. долларов, это стало самым дорогим на тот момент приобретением компании Бениоффа. Таким образом, две некогда конкурирующие платформы – AnyPoint Platform и Salesforce Integration Cloud – объединил общий владелец.

По мнению экспертов, цель сделки – повысить конкурентноспособность Salesforce на рынке корпоративного ПО, а также открыть доступ к клиентам MuleSoft и продавать им дополнительные продукты.

Почему MuleSoft так хороша

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

Основным критерием успеха стали стратегия развития платформы как облачного сервиса и реализация этого раньше других конкурентов, а также новый подход к философии интеграционной архитектуры, объединивший в единое целое разработку API-сервисов, непосредственно интеграционного слоя и ETL- трансформаций.

Читайте также:
Программа ladies day что это

C помощью Anypoint Platform разработчик запускает приложения в 3 раза быстрее и они работают на 300% продуктивнее.

AnyPoint Platform проводит молниеносную интеграцию приложений, данных и устройств, а также организует их быстрое взаимодействие, позволяет быстро вносить изменения.

Кроме этого, у нее есть автоматизированные настройки системы безопасности, что означает поддержку международных стандартов (ISO 27001, SOC 2, PCI DSS, GDPR). Можно выбрать готовый вариант настройки либо настроить под определенного клиента. Для защиты конфиденциальных данных система предлагает токенизацию с дополнительными возможностями. Благодаря графической визуализации пользователь может в режиме реального времени увидеть работу системы и устранить неполадки с помощью единого интерфейса.

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

Источник: vc.ru

Русские Блоги

Введение в основные концепции открытой платформы ESB Mule

Мул основные понятия

Проще говоря, приложения Mule обрабатываются рядом LEGO-подобных процессоров сообщений.новостиКомбинация этих процессоров — это то, что мы называемflowПроцесс. Понимание базовой структуры сообщений и системы потоков является ключом к пониманию Mule. По сути, каждый поток Mule содержит последовательность строительных блоков, которые принимают, передают и обрабатывают сообщения.

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

Mule Flow

В потоке вы соединяете несколько независимых компонентов вместе для завершения приема, обработки и окончательной маршрутизации сообщений. Flow поддерживает синхронные и асинхронные подпотоки, режимы одностороннего обмена и обмена запросами-ответами и другие совместимые с архитектурой параметры. Вы можете соединить множество потоков вместе, чтобы создать законченное приложение и развернуть его на (локальном?) Сервере Mule, других серверах приложений или в облаке.

Разработать с помощью Flow

Вы можете создать Muleflow двумя способами:

  • Введите несколько строк кода непосредственно в файл конфигурации приложения на основе XML
  • Организовать значки компонентов в визуальную последовательность с помощью графического интерфейса Mule Studio

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

Анатомия потока

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

Эти основные единицы, которые составляют поток, часто называютСтроительный блок(В студии Mule) илиэлемент(В клике или XML-конфигурации студии). В общем случае компонент соответствует значку в Mule Studio — значок представляет источник, процессор или компонент. Компонент — это визуальное представление элемента XML в файле конфигурации приложения Mule.

На следующем рисунке показан простой поток и соответствующий ему код XML в визуальном редакторе Mule Studio.

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

Первым компонентом в большинстве потоков является получатель, который отвечает за получение новых сообщений и помещение их в очередь обработки. Мул используетИсточник новостейЭлемент — входящая конечная точка HTTP в приведенном выше примере — получает сообщение из одного или нескольких внешних источников и запускает выполнение потока.Транспорт (транспорт)Переносить сообщения на уровне интеграции и приложений для обработки.

Мул использоватьКомпонент (компонент)Для доработки конкретной бизнес-логики, такой как проверка клиентов и базы данных инвентаризации. Таким образом, компонент направляет сообщение в правильное приложение (например, в систему исполнения заказов).

Mule использует архитектуру, называемую Staged Event-Driven Architecture (SEDA), для выполнения основной функции асинхронной обработки сообщений в потоке. Стоит отметить, что компонентам не нужно использовать какой-либо конкретный код, связанный с Mule, они могут быть простыми POJO, бинами Spring, бинами Java , скриптами Groovy или содержать данные обработки Веб-сервис бизнес-логики. Компоненты могут быть разработаны даже на других языках, таких как Python, JavaScript, Ruby и PHP. Типы компонентов Mule включают наиболее часто используемые модели корпоративной интеграции.

Читайте также:
Office toolkit что это за программа

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

Когда вы настраиваете отдельные элементы, соединенные вместе, чтобы сформировать поток, вы можете использоватьЯзык выражения мулаИзвлечь информацию о сообщении или его среде и проинструктировать Муле принимать решения по обработке на основе этой информации. Для получения дополнительной информации о языке выражений Mule и о том, как использовать выражения в Mule, см.Введение в выражения Mule。

Подробнее о том, как сообщения передаются в потоке, см. В разделеПонимание системы Мул。

Мул сообщения

Сообщения Mule — это данные, которые проходят через ваше приложение через один или несколько потоков. Он содержит две важные части:

  • новостируководитель, Содержит метаданные для сообщения.
  • Полезная нагрузка сообщенияpayload), Состоящий из данных вашего бизнеса.

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

собственностиИмеет два основных домена: входящий и исходящий.

  • Входящие атрибуты(входящие свойства) автоматически генерируются источником сообщения, пользователи не могут устанавливать или манипулировать этими свойствами.
  • Исходящие атрибуты(исходящие свойства) могут быть настроены пользователем. Атрибут исходящего трафика устанавливается во время процесса потока, и когда сообщение передается из исходящей конечной точки одного потока во входящую конечную точку другого потока через транспорт, исходящий атрибут может стать входящим атрибутом. (Обратите внимание, что если это сообщение передаетсяflow-refВместо транспорта, передаваемого другому потоку, исходящие атрибуты по-прежнему являются исходящими атрибутами и не преобразуются во входящие атрибуты. )

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

переменнаяОпределяемые пользователем метаданные о сообщении. Переменные имеют два эффекта:

  • Переменная потокаСуществует только в текущем потоке.
  • Переменная сеансаДействительно во всех потоках одного приложения.

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

Вы можете использовать язык выражения Mule ( Mule Expression Language , MEL) для установки, запуска и управления исходящими атрибутами, переменными потока и переменными сеанса.

Полезная нагрузка сообщения

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

Однако нет необходимости поддерживать постоянную нагрузку при ее прохождении через поток. Различные процессоры сообщений в Muleflow могут влиять на загрузку по пути, устанавливать, обогащать его значение или преобразовывать его в новый формат. Вы также можете использовать MEL в потоке для извлечения информации из полезной нагрузки.

Источник: russianblogs.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru