Your program is functional. It doesn't meet the requirements of putting EFh into registers H and L. It also places EFh into the location pointed to by HL, as you mention, but which you did not state as a requirement.

Incidentally, this question could have been answered merely by assembling your code and stepping through it with a debugger. Surely that's more effective than asking the question on a forum and waiting for an answer.