Почему Windows 64 принимал решение потребовать, чтобы xmm6 и xmm7 были сохранены/восстановлены? В Windows 32 Вы могли записать ассемблерные подпрограммы, которые ударили xmm0... xmm7. Но если Вы берете тот же самый ассемблерный код и работаете...
Я прошел курс компьютерной архитектуры и понял, что процессор имеет 32 регистра по 32 бита каждый. Сейчас я изучаю курс компьютерной архитектуры, в котором я прочитал, что у 8086 всего 8 регистров. Но ...
У меня возникли некоторые проблемы с пониманием разницы между сохраненными регистрами вызывающего и вызываемого абонентов и когда что использовать. Я использую MSP430
: procedure: mov.w # 0, R7 mov.w # 0, R6 add.w R6, R7 inc.w ...
Мое понимание регистров x86 говорит, что к каждому регистру может обращаться весь 32-битный код, и он разбит на несколько доступных регистров. В этом примере EAX является 32-битным регистром, если ...
В туре по руководствам Intel для x86-64 я прочитал. Возможно, самым удивительным фактом является то, что такая инструкция, как MOV EAX, EBX, автоматически обнуляет старшие 32 бита регистра RAX. Документация Интел...
Я читаю текст на языке C. В сеансе «Отрицательные и положительные значения» автор упомянул несколько способов представления отрицательного числа в двоичной форме. Я все понял и был ...
В мире Linux, чтобы получить таймер/часы с точностью до наносекунд, можно использовать: #include int foo()
{ временные характеристики; clock_gettime (CLOCK_REALTIME, & ts); //--snip-- ...
В статье Википедии об ассемблере x86 говорится, что "регистр IP не может быть доступен программисту напрямую". Напрямую - это значит с помощью таких инструкций, как mov и add. Почему нельзя? В чем причина ...
Почему ARM имеет только 16 регистров? Это идеальное число? Увеличивает ли расстояние между регистрами с большим количеством регистров время обработки / мощность?
Язык ассемблера x86 пришлось изменить, поскольку архитектура процессора x86 изменилась с 8-разрядной на 16-разрядную, 32-разрядную, а теперь и на 64-разрядную. Я знаю, что в 32-битном ассемблере регистрируют имена (EAX, EBX и т.д.), ...
Являются ли регистры (, такие как eax, ebx, ecx, edx, esp, ebp и т. д. ), доступными в процессоре физически, или они являются местами виртуальной памяти с точки зрения зрения программирования?
В настоящее время я изучаю сборку x86 для развлечения, мне нравится программирование микроконтроллеров, поэтому я знаком с сборкой. В настоящее время я все время искал ответ на этот вопрос ...
Я написал программу, которая пытается прочитать из системы управления и запись в управление. Программа компилирует нормально, но когда встроенная сборка должна быть выполнена, она производит неисправность сегментации ....
Просто начал изучать сборку X64, и у меня есть вопрос о функциях, аргументах и стеке. Насколько я понимаю, первые четыре аргумента в функции передаются на RCX, RDX, R8 и ...
Программный счетчик содержит адрес инструкции, которая должна быть выполнена следующим, в то время как регистр команд содержит фактическую команду, которая должна быть выполнена. один из них не будет достаточно? И что это ...
Я отлаживаю приложение.NET в RC Visual Studio 2010 с помощью представления дизассемблирования. Код оптимизирован и редактор JIT. В конкретной точке я должен изменить флаг ZR CPU так, чтобы инструкция JNE...
У меня есть функция, которая должна быть максимально быстрой, и она использует только целочисленные операции. Он работает на архитектуре AMD64, и мне нужно сделать несколько push/pop, чтобы было достаточно регистров для...
Итак, я знаю, какими должны быть следующие регистры и их использование: CS = Сегмент кода (используется для IP)
DS = сегмент данных (используется для MOV)
ES = Сегмент назначения (используется для MOVS и т. д.)
SS = стек ...
В 32-битной версии у нас было 8 регистров общего назначения. С 64-битной версией количество удваивается, но, кажется, не зависит от самого 64-битного изменения. регистры. С 64-битной версией количество удваивается, но, кажется, не зависит от самого 64-би
Я отлаживаю программу на языке C на ассемблере, чтобы понять, как работает компилятор gcc. Я хочу прочитать свой сегментный регистр $fs, поэтому я использую x/x $fs, однако он говорит мне, что не может получить доступ к памяти. Как я могу получить...
Если я правильно это понимаю, счетчик программ указывает на адрес инструкции, которая должна быть выполнена, и в большинстве случаев вы добавляете четыре к счетчику программ, чтобы перейти к следующей инструкции...
EAX используется для хранения возвращаемого значения функции на 32-битной платформе, мне просто интересно, если размер возвращаемого значения функции превышает 4 байта, как EAX обрабатывает это? В этом случае ОС может сохранить ...
Когда программа запускается (linux, elf) - есть ли нули в eax, ebx и т.д. или там может быть что угодно (я не делаю никаких вызовов и не использую внешние библиотеки)? На моей машине это действительно так, могу ли я передать ...
Я хочу написать некоторую встроенную сборку ARM в свой код на C. Для этого кода мне нужно использовать регистр или два больше, чем только те, которые объявлены как входы и выходы функции. Я знаю, как использовать ...
Я снова задаю еще один безобидный вопрос о Z80 :-) То, как в настоящее время структурировано ядро моего эмулятора, я увеличивая младшие 7 бит регистра обновления памяти каждый раз, когда байт кода операции ...
Я сейчас изучаю ассемблер для процессоров Intel.
Поскольку стек "растет вниз", почему мы должны добавлять для доступа к определенному элементу [ebp + 8] ;; Это даст доступ к первому параметру, который я знаю ...
Инструкция movsb (перемещение строки, байтов) выбирает байт по адресу ds: si, сохраняет его по адресу es: di, а затем увеличивает или уменьшает si и di регистрируются по одному. Я знаю esi, si и edi, ...