Answer:
Assembly language is also known as second generation language. We can also say it low level language. To implement assembly language on hardware it require a lot of knowledge of computer hardware.
Mostly assembly language is used in Kernel and hardware drives like RAM or ROM these hardware parts belong to second generation. So, assembly language require a lot of knowledge of hardware as well spare time also to write it to get desired output from the hardware.
Assembly language is also used in video editing and video games and require a lot of time.
I hope it will help you!