Вопросы по теме 'instructions'

64-битные ассемблерные инструкции 32-битных
Я начинаю портировать программу, написанную на C, и имею несколько фрагментов кода, написанных на ассемблере, с инструкциями для 32-битной машины, например ljmp , на 64-битную машину. Есть ли место / документ, в котором есть инструкции по сборке...
1191 просмотров
schedule 12.04.2022

Инструкции по профилированию
Я хочу подсчитать несколько инструкций процессора в своем коде. например Я хотел бы знать, сколько сложений, сколько умножений, сколько операций с плавающей запятой, сколько ветвлений выполняет мой код. В настоящее время я использую gprof под Linux...
1765 просмотров
schedule 04.05.2022

Инструкции IL, не предоставляемые C#
Какие инструкции IL не доступны C#? Я имею в виду такие инструкции, как sizeof и cpblk - нет класса или команды, которая выполняет эти инструкции (sizeof в С# вычисляется во время компиляции, а не во время выполнения AFAIK). Другие?...
2895 просмотров
schedule 15.01.2023

Как получить адрес, по которому пишется одна машинная инструкция?
Теперь у меня есть адрес машинной инструкции из реестра EIP. Эта машинная инструкция может изменить значение определенной области памяти, я хочу, но не могу получить адрес этой памяти. Конечно, я мог бы прочитать данные из адреса машинной...
184 просмотров
schedule 30.04.2024

Язык ассемблера ПК (Пол Картер) - Пример справки Prime.Asm по JO и JE
Код C: #include <stdio.h> int main() { unsigned guess; /* current guess for prime */ unsigned factor; /* possible factor of guess */ unsigned limit; /* find primes up to this value */...
1793 просмотров
schedule 21.06.2022

avx три операнда для sqrt?
Почему инструкция avx sqrt (неупакованная) имеет три операнда? vsqrtsd xmm1, xmm2, xmm3 Означает ли это что-то вроде xmm1=xmm2=sqrt(xmm3) ? Редактировать: Подробный ответ ниже, но вкратце сборочная линия означает: xmm1.low =...
1367 просмотров
schedule 21.02.2024

почему ptrace singlestep возвращает слишком большое количество инструкций при статической компоновке?
Итак, я уже читал эту статью Счет машинных инструкций процесс с использованием PTRACE_SINGLESTEP , и я понимаю, что динамическое связывание тестовой программы с моей программой ptrace вернет количество инструкций, которое также учитывает...
620 просмотров
schedule 14.02.2023

Правильная инструкция в цикле for
Я читаю книгу Компьютерные системы: взгляд программиста (2-й издание) и практическая задача 3.23 меня немного смутили: Функция fun_b имеет следующую общую структуру: int fun_b(unsigned x) { int val = 0; int i; for (...
876 просмотров
schedule 29.04.2024

Набор инструкций Intel: умножить на EAX, EBX, ECX или EDX?
Откуда вы знаете, что когда 'mul ecx' был выполнен. ECX будет умножаться на EAX? А не с EBX или EDX? mul ecx, eax хотя было бы больше смысла.
2016 просмотров

Почему «a» является префиксом байт-кода Java для ссылок на объекты?
Инструкции байт-кода Java для конкретных типов имеют односимвольные префиксы для указания типа, к которому относится инструкция. Взято с Запись Википедии о байт-коде Java В каждом случае имеет смысл выбор префикса, состоящего из первой...
336 просмотров
schedule 10.02.2024

Создайте задержку в Arduino Uno с помощью языка ассемблера без использования таймера
Я только начал изучать микроконтроллеры и не мог понять, как можно вводить задержки в код без использования таймеров. Моя плата имеет часы 16 МГц. Допустим, я хочу ввести задержку в 5 мс, прежде чем я проверю, нажата ли кнопка. Как мне определить,...
5886 просмотров
schedule 04.02.2024

Как работают инструкции ASCII Adjust и Decimal Adjust?
Я изо всех сил пытался понять инструкции по настройке ASCII на языке ассемблера x86. Я вижу по всему Интернету информацию, говорящую мне о разных вещах, но я думаю, что это одна и та же вещь, объясненная в другой форме, которую я до сих пор не...
11548 просмотров
schedule 02.07.2022

Как ЦП правильно декодирует инструкции переменной длины?
На большинстве архитектур все инструкции имеют фиксированную длину. Это упрощает загрузку и выполнение программы. В x86 / x64 инструкции имеют переменную длину, поэтому дизассемблированная программа может выглядеть так: File Type: EXECUTABLE...
1360 просмотров
schedule 15.10.2022

Инструкция с LEA и MOV приводит к одному и тому же результату - почему?
В целях тестирования я написал код сборки x86: lea ebx, [esi] Я изменил строку и написал: mov ebx, esi и программа делает то же самое. Почему? В esi хранится адрес строки. В первой строке я сохранил адрес адреса строки,...
304 просмотров
schedule 04.12.2023

Какое значение имеют операции с регистром EAX, имеющим собственные коды операций?
Если вы посмотрите документацию по операциям вроде cmp , _ 2_ , add , sub и _ 5_ , вы заметите, что операции, которые включают регистр EAX и его 16- и 8-битные варианты в качестве первого операнда, имеют отдельный код операции, который...
632 просмотров

Кто-нибудь может объяснить, как работает инструкция LDRD?
Я просто не могу найти разумного объяснения ldrd. Что будет в r2, что в r3? ldrd r2, r3, [r1]
5935 просмотров
schedule 08.08.2022

Как возможно, что операция БИТОВОЕ И занимает больше тактов ЦП, чем операция АРИФМЕТИЧЕСКОЕ СЛОЖЕНИЕ в программе на языке C?
Я хотел проверить, действительно ли побитовые операции выполняются быстрее, чем арифметические операции. Я думал, что они были. Я написал небольшую программу на C, чтобы проверить эту гипотезу, и, к моему удивлению, сложение занимает в среднем...
1091 просмотров

Как инструкция test_and_set() могла работать на мультипроцессоре?
Уважаемое сообщество, занимающееся переполнением стека! Я читаю «Концепции операционной системы» (2012 г.) Зильбершаца, Галвина и Ганя, там говорится: «Если две инструкции test_and_set() выполняются одновременно (каждая на разных процессорах), они...
438 просмотров

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

Указывает ли [ebp * 2] сегмент DS или SS?
IDM сообщает, что операция памяти использует сегмент SS, если EBP используется в качестве базового регистра. В результате [ebp + esi] и [esi + ebp] ссылаются на сегменты SS и DS соответственно. См. Документ NASM: 3.3 Фактический адрес . В...
643 просмотров
schedule 24.03.2022