Описание тега program-counter

Счетчик программ (ПК), обычно называемый указателем команд (IP) в микропроцессорах Intel x86 и Itanium, а иногда также называемый регистром адреса команд (IAR), счетчиком команд или просто частью секвенсора команд, представляет собой регистр процессора, который указывает, где находится компьютер в своей программной последовательности.
1 ответ

Как выглядит схема на уровне шлюза счетчика программ в процессоре? Или счетчик шагов времени?

Компьютерная архитектура кажется очень сложной областью компьютерной инженерии, которая, я думаю, нуждается в дополнительном материале. Существуют отличные концептуальные объяснения того, как различные устройства работают друг с другом, особенно в о…
06 окт '16 в 00:33
1 ответ

Счетчик программ Pthread

Используя pthreads для C, есть ли способ получить доступ к счетчику программ / указателю команд для определенных потоков? Пример: void *thread_main(void *arg) { long thread = (long)arg; lock (thread); ***print (thread.pc);*** critical_section (threa…
26 янв '17 в 19:24
1 ответ

Выполнить кусок кода из раздела данных

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

Счетчик программ Verilog с разветвлением

Мне нужно создать модуль Verilog, который принимает часы, сброс, непосредственное значение из командного слова (младший байт) и нулевой вывод из АЛУ в качестве входов и генерирует 8-битный программный счетчик (ПК) для выход. Назначение говорит, что …
03 апр '16 в 17:49
2 ответа

Разрыв по адресу "0xXXXXXX" без отладочной информации или вне программного кода

Конфигурация: Используя Nucleo-L476RG. Использование GNU ARM Eclipse. Я сгенерировал минималистский код из STM32CubeMX. Я установил драйвер J-Link на мой ST-Link. Я пытался запустить отладчик для моего кода, но мой программный счетчик не установлен …
08 мар '18 в 16:38
1 ответ

Переполнение счетчика программы?

Возможно ли переполнение счетчика программ (ПК) в процессоре, и если да, то что происходит? То есть, если он может содержать 1 байт, что произойдет, если его значение превысит 255?
01 окт '14 в 10:51
4 ответа

Почему вы не можете установить указатель инструкции напрямую?

В статье в Википедии о сборке x86 говорится, что "регистр IP не может быть доступен программисту напрямую". Прямо означает с инструкциями, как MOV и добавить. Почему бы и нет? В чем причина этого? Каковы технические ограничения?
30 ноя '11 в 21:50
1 ответ

VHDL Программный счетчик, использующий сигналы и ранее сделанные компоненты?

Я в настоящее время нахожусь в середине проекта, где я пытаюсь разработать процессор с одним циклом. Я делаю это без какой-либо облицовки, так как это значительно усложнит дизайн. Я просто делаю шаги ребенка, когда узнаю это. Я застрял в этой части,…
27 ноя '14 в 06:32
0 ответов

Найти программный счетчик процесса в ядре

Я пытаюсь отследить ценность ПК определенного процесса в ядре.Для этого я посмотрел на исходный код ядра и выяснил, что компьютер хранится внутри task_struct->stack и что, чтобы иметь смысл стека, мне нужно набрать приведение его в struct thread_…
25 сен '14 в 05:05
1 ответ

Бесконечный цикл при моделировании дизайна счетчика программ с помощью Icarus Verilog

Я реализую простой сумматор счетчика программ со следующим прототипом: module program_counter(input enable_count, input enable_overwrite, input[31:0] overwrite_value, output[31:0] out); При моделировании с Icarus Verilog я получаю бесконечный цикл п…
06 апр '14 в 22:10
0 ответов

Мне нужно знать, как сделать правильный 4-битный двоичный счетчик

Я попытался сделать 4-битный двоичный счетчик из следующей картинки: В результате создания этой схемы в игре без триггеров или чего-либо другого с блоками меня смутило следующее: где выход? имеет значение тактовая частота? почему не работает? это да…
15 янв '18 в 18:58
2 ответа

Тихая ошибка: отладчик совершает самоубийство, чтобы освободить зомби

Кажется, мое приложение молча выключается каждые 3-4 раза, когда я его запускаю. Не исключение, нет принудительного закрытия сообщения, оно просто открывается на долю секунды, а затем выключается. После этого я могу без проблем запустить его в средн…
17 мар '14 в 20:34
2 ответа

Можно ли изменить или получить доступ к счетчику программ?

Читая о счетчике программ, я узнал, что счетчик программ отличается тем, что нет возможности напрямую изменить его значение. Есть ли какой-либо косвенный способ доступа / изменения содержимого счетчика программ?
26 дек '11 в 11:14
1 ответ

Изменить счетчик программ (ПК) на сохраненный адрес

Я работаю над программой, которая использует встроенную сборку для выполнения прыжка в длину. Насколько я понимаю, все, что мне нужно сделать, это заменить FP и ПК на сохраненные FP и ПК. Используя сборку, я могу изменить указатель кадра (%ebp), но …
07 фев '14 в 18:32
1 ответ

Как получить указатель инструкции в x86_64 без байтов 0x00 или 0xFF?

Есть ли способ получить доступ к значению в указателе инструкций (RIP) без использования call с последующим pop на ассемблере? Или есть опкод машинного кода, который может это сделать? Я гуглил без четких результатов. Моя проблема в том, что у меня …
28 авг '18 в 03:02
1 ответ

Почему в ARMv6 значение ПК равно текущей инструкции плюс 8?

Что если этапов конвейера не 3, например, в ARM1156T2-S (также это ARMv6), он имеет 9 этапов: Fe1 Fe2 De Iss Fe3 Sh ALU Sat WBex ПК по-прежнему адрес текущей инструкции плюс 8?
09 июн '11 в 13:03
3 ответа

Переместить счетчик программ в Delphi Debugging

В Visual Studio при отладке с точками останова вы можете изменить, какая строка кода будет следующей для выполнения, перетаскивая курсор выполнения на другую строку; это позволяет вам пропустить оператор IF и т.п. Мне было интересно, есть ли в Delph…
02 дек '10 в 10:06
1 ответ

Доступ к запланированным инструкциям процесса в модуле ядра

Я хочу написать модуль ядра, который проверяет запланированные инструкции запущенного процесса. Я уже взглянул на Linux Kernel Process Management, который объясняет, как перебирать процессы. struct task_struct *task; for_each_process(task) { /* this…
1 ответ

Изменение счетчика программы не является привилегированной инструкцией. Зачем?

Почему изменение счетчика программы не является привилегированной инструкцией?Программный счетчик хранится в печатной плате, а это в пространстве ядра. но изменение счетчика программы не является инструкцией привилегий? это почему?
6 ответов

Чтение счетчика программы напрямую

Можно ли считать счетчик программ на процессорах Intel напрямую (то есть без "хитростей") в режиме ядра или в каком-либо другом режиме?
01 мар '09 в 15:38