Assembly is nothing but single deployment and selfdescribing. Yes Assembly can have dll/exe.
singledeployment means
1. Dll/exe(PE).
2. selfdescribing
a) Metadata
b) manifest
The assembly could be either exe or dll