I've never read Duntemann's book and I don't even own a 64-bit Intel platform. Only 64-bit system I have is ARM based. That said, I'm probably not the best person to answer this question. However, my source of reference for most things 64-bit is
Ray Toal's NASM Tutorial. If you're already familiar with 32-bit assembly, the tutorial is really easy to follow along with and in many cases I've actually answered questions on this forum by writing 32-bit version and just using that tutorial as a guide-line for converting. One thing I find many people
forget when going between 32- and 64-bit NASM is changing the -f option from
-f elf to
-f elf64 or missing the
-g option, could this be the reason for your problem? I have heard rumors that NASM's 64-bit versions had problems with debugging but I never really had a chance to check it out myself. A friend of mine mentioned that he reverted back to version 2.7 and GDB under 64-bit systems worked fine there. If all else fails, you might try building
NASM 2.7 from source. Keep us updated about your progress.