"Learns ASM, or Assembly Code",...
but for what assembler? It is different for each program?
Like telling one to learn a secret language, but never telling them what it's called.
From an outsider's perspective
Wikipedias :
"Each assembly language is specific to a particular computer architecture and sometimes to an operating system.[9] However, some assembly languages do not provide specific syntax for operating system calls, and most assembly languages can be used universally with any operating system, as the language provides access to all the real capabilities of the processor, upon which all system call mechanisms ultimately rest. In contrast to assembly languages, most high-level programming languages are generally portable across multiple architectures but require interpreting or compiling, a much more complicated task than assembling."
I might start reading Here:
https://www.ic.unicamp.br/~ducatte/mc404/2010/docs/beginner_avr.pdf