Результаты поиска по запросу "assembly"

2 ответа

 - если вы поиграете с этим некоторое время, вы, вероятно, расшифруете, что эта простая 8-битная машина действительно использует 8 бит для выбора регистров в машинном коде (допускает теоретически для 256 регистров), в то время как она имеет только 6 регистров и флагов, поэтому это тратит впустую много бит в машинном коде. Было бы легко спроектировать машину с такими же возможностями, используя 5 бит для команды и 3 бита для выбора регистра, создавая двоичные файлы размером 60-70%, но создатель использовал (для читабельности?) Более простую 8-битную инструкцию + 8-битный регистр ,

м, у меня есть 12 регистров. Сколько бит должно быть зарезервировано в порядке команд машинного кода для адресации любого из этих 12 регистров?

1 ответ

@PeterCordes Должен ли я превратить этот ответ в вики сообщества, чтобы вы могли вставить свой ответ здесь? К сожалению, я не могу не принять мой ответ.

у некоторыеAVX код и мне нужно загрузить из потенциально невыровненной памяти. Я сейчас загружаю 4двойникиследовательно, я бы использовал внутреннюю инструкцию _mm256, _loadu_pd [https://software.intel.com/en-us/node/524102]; код, который ...

1 ответ

@ zx485 О да, я обновил свое имя пользователя на github несколько лет назад. Спасибо

ностью потерян с этим. Мне нужно запрограммировать, что вычисляет следующее выражение, используя регистры: varA = (varA + varB) - (varC + varD), где varA, varB и т. Д., Являются переменными. Присвойте целочисленные значения регистрам EAX, EBX, ...

ТОП публикаций

1 ответ

Просто основной список. Я не думаю, что я что-то пропустил, но, конечно, мог бы.

ал, что было ноль. Но,Я вижу здесь, [http://cs.lmu.edu/~ray/notes/nasmtutorial/] Инструкции с двумя операндами памяти встречаются крайне редко Я не могу найти ничего, что объясняет, какие инструкции, хотя и редки, существуют. Какие исключения?

1 ответ

@ollpu: да, хорошая ссылка. Но вы должны внимательно прочитать его, чтобы определить закономерности и три особых случая. Обновил этот ответ разделом, который я изначально написал для другого ответа.

ершенно новичок в двоичном кодировании x86-64. Я пытаюсь исправить старый код ассемблера. В любом случае, я пытаюсь сделать что-то вроде этого (синтаксис Intel): mov [rbp+rcx], alАссемблер в настоящее время генерирует это: 88 04 0Dно это не ...

1 ответ

Вывод переменной в командную строку с использованием сборки в Linux

Пробуя свои силы в сборке Linux, я сталкиваюсь со следующей проблемой. Я только начинаю, так что моя программа является относительно простой, основанной на н...

1 ответ

?) Я уверен, что это сложно в том смысле, о котором мы понятия не имеем.

прочтенияэтот ответ переполнения стека [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 ответа

И 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 ответа

Большое спасибо.

и новичком и самообучающимся, я изучаю ассемблер и сейчас читаю главу 3 книги «Компаньон С» Аллена Холлуба. Я не могу понять описание счетчика программ или ПК, который он описывает в воображаемой демонстрационной машине с двухбайтовым словом. Вот ...

2 ответа

Очень правдоподобно, что они смогли это измерить.

ал с кодом вэтот ответ [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 ...