I once found a book called "Machine and Assembly Language Programming of the PDP-11" in our university library. It is very old and was published in the 1980s. It includes some interesting knowledge about two pass assembler, relocation and two pass linker.