Разве это не 1980-е? Разве процессоры не выполняют эти инструкции в одно и то же время в эти дни? Я помню, как в мои 68000 дней, когда деление составляло 100+ циклов и сдвиг составлял всего 3 или 4 ... я не был уверен, что это так, поскольку процессоры продолжают работать.
Почему бы вам не заставить компилятор сгенерировать файл ассемблера, посмотреть, что он генерирует, и запустить некоторые тесты.
Я нашел это в Интернете, что может помочь вам ... хотя это для 'C', я думаю, что большинство вариантов будут одинаковыми.
Q: How can I peek at the assembly code generated by GCC?
Q: How can I create a file where I can see the C code and its assembly
translation together?
A: Используйте ключ -S (примечание: заглавная S) для GCC, и он будет передавать код сборки в файл с расширением .s. Например, следующая команда:
gcc -O2 -S -c foo.c
оставит сгенерированный код сборки в файле foo.s.
Если вы хотите увидеть код C вместе со сборкой, в которую он был преобразован, используйте командную строку, например:
gcc -c -g -Wa, -a, -ad [другие опции GCC] foo.c> foo.lst
, который выведет комбинированный листинг C / сборки в файл foo.lst.
Если вам нужно как получить код ассемблера, так и скомпилировать / связать программу, вы можете либо указать опцию -save-temps для GCC (при этом все временные файлы, включая файл .s, останутся в текущем каталоге). или используйте параметр -Wa, aln = foo.s, который инструктирует ассемблеру выводить перевод ассемблерного кода C (вместе с шестнадцатеричным машинным кодом и некоторой дополнительной информацией) в файл с именем =.