Architecture is the specific design of hardware that an assembly language is written for. As an assembly language is a 1 to 1 mapping to machine language spoken by the processor, the architecture defines what the hardware does. It provides the instructions, the data types, the formats, the resources, all in a giant specification. The people who build CPUs implement this architecture specification. From there, the assembly language writers build an assembly language on this specification. This allows the language to be run on any CPU that matches the architecture.

Virtual machines implement their own architecture and are generally able to run other architectures on top of themselves.

The majority of desktops, laptops, and servers run on Intel x86 or its variants. A notable exception is the new Macbook Pro, which runs on custom ARM hardware.

Most mobile devices run on ARM. As mobile devices dominate the world, this means that ARM dominates the world. In the future we will see more ARM devices for everyday computing. If you want to you can take this course as an ARM course, you'll just have to compile everything differently and none of the examples will have the same output. If you want to learn ARM you should do the Azeria Labs ARM course to start, it's way better than this course anyway

This section needs a bit more writing, but for now, read over the Wiki page, it's pretty decent:

For your assignment, ask any questions you do not understand.