Вопросы по теме 'cpu-registers'

Какой хороший пример использования регистровой переменной в C?
Я читаю K&R и наткнулся на небольшой раздел, посвященный регистровым переменным, и мне было интересно, есть ли у людей здесь хорошие примеры того, как это реализовано на практике. Из раздела 4.7 в K&R: Объявление регистра выглядит следующим...
30533 просмотров

Можно ли получить доступ к 32-битным регистрам в C?
Можно ли получить доступ к 32-битным регистрам в C? Если да, то как? А если нет, то есть ли способ встроить ассемблерный код в C? Кстати, я использую компилятор MinGW. Заранее спасибо!
20473 просмотров

Есть ли стандартный способ определения разрядности оборудования?
Переменные типа int якобы являются «одним машинным словом в длину», но во встроенных системах компиляторы C для 8-битного микро-использования должны иметь int из 16 бит !, (8 бит для unsigned char), а для большего количества бит int ведет себя...
794 просмотров
schedule 02.11.2023

C++: список уничтожения asm
В g++ можно указать списки уничтожения для asm, например: asm ("somecode" : : "r1", "r2", "r3"); что означает, что ассемблерный код меняет регистры r1, r2, r3. Теперь мои измененные регистры зависят от параметра шаблона n (блок asm...
843 просмотров

Другое поведение eax по сравнению с другими регистрами
Я написал небольшой фрагмент сборки (Gas, 32 бит), который принимает аргумент командной строки, считает его символы и печатает строку, если она имеет определенную длину (только для целей отладки). Я относительно новичок в сборке, поэтому я почти...
511 просмотров
schedule 20.10.2023

Функция восьми сохраненных регистров (MIPS)
Я наткнулся на это утверждение в своей книге «Организация и проектирование компьютеров» (Patterson & Hennessy): $s0-$s7: восемь сохраненных регистров, которые должны быть сохранены при вызове процедуры (если они используются, вызываемый...
4207 просмотров
schedule 18.05.2023

Как длина слова ISA реализована в аппаратном и программном обеспечении?
Я узнал, что длина слова — это функция ISA, которая должна быть реализована как аппаратно, так и программно. Я имею смутное представление только об ответе. Мне нужна коррекция или подтверждение. Становится ли длина слова размером регистра общего...
700 просмотров
schedule 19.12.2023

Как напечатать -0x4(%rbp) в gdb?
В дизассемблере есть такой код: movl $0x6,-0x4(%rbp) Я пытаюсь напечатать значение таким образом, но терпит неудачу: (gdb) p 0x4(%esp) A syntax error in expression, near `%esp)'. (gdb) p 0x4+$esp Argument to arithmetic operation not a...
12059 просмотров
schedule 11.11.2022

Как распечатать регистры в ядре Linux?
Я хочу распечатать значения пары регистров из кода ядра Linux, работающего на ARM. В частности, у меня есть следующая сборка в linux - e3c52007 bic r2, r5, #7 ; 0x7 e1520003 cmp r2, r3 0a000003 beq c011fa60...
1850 просмотров

Преобразование встроенного ASM во встроенный
Мне дали задание преобразовать небольшой фрагмент ассемблера во встроенный, чтобы проверить производительность. Я никогда не разрабатывал код ни для того, ни для другого, но я понимаю asm и c и читаю внутренний синтаксис. Но я не могу найти...
1560 просмотров
schedule 16.02.2023

Какое состояние регистра по умолчанию при запуске программы (asm, linux)?
Когда программа запускается (linux, elf) - есть ли нули в eax , ebx и т.д. или может быть что угодно (я не делаю никаких вызовов и не использую внешние библиотеки)? На моей машине это действительно так, могу ли я использовать такое поведение при...
3934 просмотров
schedule 12.07.2022

Verilog, FPGA, использование унифицированного регистра
У меня есть вопрос о том, что мне кажется странным в поведении контроллера AGC/SPI, над которым я работаю. Это сделано в Verilog для Xilinx Spartan 3e FPGA. Контроллер представляет собой FSM, который полагается на внешние входы для запуска....
2372 просмотров
schedule 19.12.2022

GDB теряется, когда указатель стека изменяется вручную
Я разрабатываю приложение, которое в какой-то момент должно использовать другой стек, которым будет управлять разработанная мной библиотека. Итак, я вызываю функцию инициализации этой библиотеки, и указатель стека ($sp) устанавливается на нужный мне...
930 просмотров
schedule 13.04.2023

В чем преимущество использования энергонезависимых регистров в соглашении о вызовах?
Я программирую JIT-компилятор и с удивлением обнаружил, что многие из регистров x86-64 энергонезависимы (сохраняются вызываемым) в соглашении о вызовах Win64. Мне кажется, что энергонезависимые регистры просто увеличивают объем работы всех функций,...
1376 просмотров
schedule 06.03.2023

Ограничение использования регистров в C
Мой вопрос очень похож на: GCC: запретить использование некоторых регистров Однако я хотел бы ограничить количество регистров, используемых в функции C. Другими словами, я хотел бы иметь возможность использовать директиву точно так же, как...
1080 просмотров

Умножение двух значений и вывод их на экран (NASM, Linux)
Я продолжаю читать, что для того, чтобы выполнить деление регистра на целое/с плавающей запятой, выполняемые регистры должны быть на самом деле initialized . Мне любопытно, какая правильная директива ассемблера для этого. Я просто предоставляю...
23335 просмотров
schedule 04.11.2023

$zero на MIPS действительно аппаратный ноль?
Я вроде как приверженец сборки x86-64 (может быть, не эксперт), но многие аспекты ассемблера одной платформы похожи на другую, поэтому я также пытаюсь ответить на вопросы, которые на самом деле не входят в круг моих знаний, и я наткнулся на несколько...
5948 просмотров
schedule 19.11.2023

Сборка-push-регистр RAX не то же самое, когда я извлекаю его из стека?
В настоящее время я пишу сборку NASM на 64-битной машине, чтобы распечатать факториал данного ввода, а затем вернуть ввод. Программа правильно работает для распечатки факториальных значений, но возвращаемое значение не возвращает ввод. Да, код...
2176 просмотров
schedule 13.11.2022

Что находится между ESP и EBP?
Верно, я уверен, что на это неявно ответят много раз, но, похоже, я не могу до конца до конца добраться. Если у вас есть трассировка стека (x86) (скажем, глядя на нее в WinDbg) и вы смотрите на регистры, что означает, что значения EBP и ESP...
88780 просмотров

Использование регистров FPU и MMX в качестве регистров общего назначения
Большинство ассемблерных программ используют 4 регистра общего назначения eax ebx ecx edx , но я обнаружил, что довольно часто мне нужно использовать более 4 регистров, чтобы легко выполнить мою задачу, не требуя слишком много push и pop из...
983 просмотров