Quote: "Isn't programming in ASM GPU specific?"
No - it's part of DirectX, etc. It's possible that the final machine code passed to the GPU is GPU specific but I've no idea about the details at that level. Also different GPUs will have different features available but as far as I'm aware they all use the same asm code at the application level.
In the good old days (

) you could write your own versions of assembly language and your own compiler - but your assembly code would have to be compiled to machine or processor specific machine code.