КОМАНДЫ ДЛЯ ВЫПОЛНЕНИЯ ОПЕРАЦИИ С ОПЕРАНДОМ В ПАМЯТИ И ПОСЛЕДУЮЩЕГО СОХРАНЕНИЯ ОРИГИНАЛЬНОГО ЗНАЧЕНИЯ УКАЗАННОГО ОПЕРАНДА В РЕГИСТРЕ

1. Способ, реализованный при помощи компьютера для выполнения арифметической/логической команды, имеющей операнд с взаимоблокировкой, хранимый в памяти, при этом арифметическая/логическая команда включает поле кода операции, причем поле первого регистра указывает первый операнд в первом регистре, поле второго регистра указывает второй регистр, причем второй регистр указывает местоположение второго операнда в памяти, и поле третьего регистра указывает третий операнд в третьем регистре, при этом выполнение арифметической/логической команды включает:
получение процессором второго операнда из ячейки памяти, указанной вторым регистром, причем второй операнд содержит значение;
получение третьего операнда из третьего регистра;
выполнение заданной кодом операции арифметической операции или логической операции на основе полученного второго операнда и полученного третьего операнда для выдачи результата;
сохранение выданного результата в ячейке памяти, указанной вторым регистром; и
сохранение значения полученного второго операнда в первом регистре.
2. Способ по п.1, отличающийся тем, что дополнительно включает сохранение кода условия, причем код условия указывает, равняется ли результат нулю или результат не равняется нулю.
3. Способ по п.1, отличающийся тем, что заданная кодом операции арифметическая операция является арифметическим или логическим СЛОЖЕНИЕМ и где заданная кодом операции логическая операция является любой из следующих операций: И, ИСКЛЮЧАЮЩЕЕ ИЛИ или ИЛИ, дополнительно включающий:
с учетом того, что результат является отрицательным, сохранение кода условия, указывающего, что результат является отрицательным;
с учетом того, что результат является положительным, сохранение кода условия, указывающего, что результат является положительным; и
с учетом того, что результат является избыточным, сохранение кода условия, указывающего, что результат является избыточным.
4. Способ по п.3, отличающийся тем, что размер операнда определяют кодом операции, где один или несколько первых кодов операций определяют 32-битовые операнды, а один или несколько вторых кодов операций определяют 64-битовые операнды.
5. Способ по п.1, отличающийся тем, что код операции состоит из двух отдельных полей кода операции, где арифметическая/логическая команда дополнительно включает первое поле смещения и второе поле смещения и где ячейку памяти определяют путем сложения содержимого второго регистра и знакового значения смещения, причем знаковое значение смещения включает значение, дополненное знаком первого поля смещения, конкатенированного со вторым полем смещения.
6. Способ по п.1, отличающийся тем, что дополнительно включает:
с учетом того, что код операции является первым кодом операции, а второй операнд выходит за 32-разрядную границу, генерирование исключения при нарушении заданных условий; и
с учетом того, что код операции является вторым кодом операции, а второй операнд выходит за 64-разрядную границу, генерирование исключения при нарушении заданных условий.
7. Способ по п.1, отличающийся тем, что процессор является процессором мультипроцессорной системы, дополнительно включающий:
запрет доступа к ячейке памяти для других процессоров мультипроцессорной системы между указанным получением второго операнда из нее и сохранением результата в ней и
при указанном сохранении выданного результата разрешение доступа к ячейке памяти для других процессоров мультипроцессорной системы.
8. Компьютерный программный продукт для выполнения арифметической/логической команды, имеющей операнд с взаимоблокировкой, хранимый в памяти, при этом арифметическая/логическая команда включает поле кода операции, причем поле первого регистра указывает первый операнд в первом регистре, поле второго регистра указывает второй регистр, причем второй регистр указывает местоположение второго операнда в памяти, и поле третьего регистра указывает третий операнд в третьем регистре, при этом компьютерный программный продукт содержит материальный носитель данных, доступный для чтения устройством обработки данных, и сохраняет команды, которые при выполнении устройством обработки данных осуществляют способ по любому из пп.1-7.
9. Компьютерная система для выполнения арифметической/логической команды, имеющей операнд с взаимоблокировкой, хранимый в памяти, при этом арифметическая/логическая команда включает поле кода операции, причем поле первого регистра указывает первый операнд в первом регистре, поле второго регистра указывает второй регистр, причем второй регистр указывает местоположение второго операнда в памяти, и поле третьего регистра указывает третий операнд в третьем регистре, содержащая:
память и
процессор, соединенный с памятью, причем процессор содержит элемент выборки команды для выборки команд из памяти и один или несколько элементов выполнения для выполнения выбранных команд, при этом компьютерная система настроена на выполнение способа по любому из пп.1-7.