Результаты поиска по запросу "assembly"
- если вы поиграете с этим некоторое время, вы, вероятно, расшифруете, что эта простая 8-битная машина действительно использует 8 бит для выбора регистров в машинном коде (допускает теоретически для 256 регистров), в то время как она имеет только 6 регистров и флагов, поэтому это тратит впустую много бит в машинном коде. Было бы легко спроектировать машину с такими же возможностями, используя 5 бит для команды и 3 бита для выбора регистра, создавая двоичные файлы размером 60-70%, но создатель использовал (для читабельности?) Более простую 8-битную инструкцию + 8-битный регистр ,
м, у меня есть 12 регистров. Сколько бит должно быть зарезервировано в порядке команд машинного кода для адресации любого из этих 12 регистров?
@PeterCordes Должен ли я превратить этот ответ в вики сообщества, чтобы вы могли вставить свой ответ здесь? К сожалению, я не могу не принять мой ответ.
у некоторыеAVX код и мне нужно загрузить из потенциально невыровненной памяти. Я сейчас загружаю 4двойникиследовательно, я бы использовал внутреннюю инструкцию _mm256, _loadu_pd [https://software.intel.com/en-us/node/524102]; код, который ...
@ zx485 О да, я обновил свое имя пользователя на github несколько лет назад. Спасибо
ностью потерян с этим. Мне нужно запрограммировать, что вычисляет следующее выражение, используя регистры: varA = (varA + varB) - (varC + varD), где varA, varB и т. Д., Являются переменными. Присвойте целочисленные значения регистрам EAX, EBX, ...
Просто основной список. Я не думаю, что я что-то пропустил, но, конечно, мог бы.
ал, что было ноль. Но,Я вижу здесь, [http://cs.lmu.edu/~ray/notes/nasmtutorial/] Инструкции с двумя операндами памяти встречаются крайне редко Я не могу найти ничего, что объясняет, какие инструкции, хотя и редки, существуют. Какие исключения?
@ollpu: да, хорошая ссылка. Но вы должны внимательно прочитать его, чтобы определить закономерности и три особых случая. Обновил этот ответ разделом, который я изначально написал для другого ответа.
ершенно новичок в двоичном кодировании x86-64. Я пытаюсь исправить старый код ассемблера. В любом случае, я пытаюсь сделать что-то вроде этого (синтаксис Intel): mov [rbp+rcx], alАссемблер в настоящее время генерирует это: 88 04 0Dно это не ...
Вывод переменной в командную строку с использованием сборки в Linux
Пробуя свои силы в сборке Linux, я сталкиваюсь со следующей проблемой. Я только начинаю, так что моя программа является относительно простой, основанной на н...
?) Я уверен, что это сложно в том смысле, о котором мы понятия не имеем.
прочтенияэтот ответ переполнения стека [https://stackoverflow.com/questions/40315803/difference-between-movq-and-movabsq-in-x86-64] , а такжеэтот документ [https://www.cs.cmu.edu/~fp/courses/15213-s07/misc/asm64-handout.pdf]Я до сих пор не ...
И 2. Вы подчеркиваете, что, если проверка TLB включает размеры страниц, возможно, можно избежать воспроизведения при пересечении границы 4 КБ внутри огромной страницы, но я не следовал последнему предложению.
выполнения для этих трех фрагментов: pageboundary: dq (pageboundary + 8) ... mov rdx, [rel pageboundary] .loop: mov rdx, [rdx - 8] sub ecx, 1 jnz .loopИ это: pageboundary: dq (pageboundary - 8) ... mov rdx, [rel pageboundary] .loop: mov rdx, ...
Большое спасибо.
и новичком и самообучающимся, я изучаю ассемблер и сейчас читаю главу 3 книги «Компаньон С» Аллена Холлуба. Я не могу понять описание счетчика программ или ПК, который он описывает в воображаемой демонстрационной машине с двухбайтовым словом. Вот ...
Очень правдоподобно, что они смогли это измерить.
ал с кодом вэтот ответ [https://stackoverflow.com/a/50496379/5801661]Слегка модифицируя его: BITS 64 GLOBAL _start SECTION .text _start: mov ecx, 1000000 .loop: ;T is a symbol defined with the CLI (-DT=...) TIMES T imul eax, eax lfence TIMES T ...