soryazlawl:
I'm assuming the asm(); is a function that sends data to the port?
no, __asm__ means "I'm using C(++) in this file, but insert this section of assembly language." Assembly language is much lower level language, where every lline corresponds to one thing the microcontroller does.
nop in assembly means "Don't do anything for one clock cycle." So it's a good way to get really really tiny delays (it's like a call to the theoretical delay(62.5 nanoseconds) if you're running an arduino uno. If you have another CPU or another clock speed, it willl be a different time.)