1,885
edits
Changes
→Tuesday (Jan 7)
*** Direct access to hardware features, e.g., CPUID registers
** Most of the historical reasons for including assembler are no longer valid. Modern compilers can out-perform most hand-optimized assembly code, atomic operations can be handled by libraries or [[Compiler Intrinsics|compiler intrinsics]], and most hardware access should be performed through the operating system or appropriate libraries.
** A new architecture has appeared: Aarch64, which is part of [http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php ARMv8]. This is the first new [[Computer Architecture|computer architecture]] to appear in several years.
** There are over 1400 software packages/modules present in GNU Linux systems which contain architecture-specific [[Assembly Language|assembly language code]]. Most of these packages cannot be built on Aarch64 systems without modification.
* In this course, you will: