The documentation for listings describes the \lstdefinelanguage
macro, which can be used to define new languages as extensions of others.
\documentclass{article}
\usepackage{listings}
\lstdefinelanguage
[x64]{Assembler} % add a "x64" dialect of Assembler
[x86masm]{Assembler} % based on the "x86masm" dialect
% with these extra keywords:
{morekeywords={CDQE,CQO,CMPSQ,CMPXCHG16B,JRCXZ,LODSQ,MOVSXD, %
POPFQ,PUSHFQ,SCASQ,STOSQ,IRETQ,RDTSCP,SWAPGS, %
rax,rdx,rcx,rbx,rsi,rdi,rsp,rbp, %
r8,r8d,r8w,r8b,r9,r9d,r9w,r9b, %
r10,r10d,r10w,r10b,r11,r11d,r11w,r11b, %
r12,r12d,r12w,r12b,r13,r13d,r13w,r13b, %
r14,r14d,r14w,r14b,r15,r15d,r15w,r15b}} % etc.
\lstset{language=[x64]Assembler}
\begin{document}
\begin{lstlisting}
cdqe 1, r8
push 1
add rsp, 4
push 1
\end{lstlisting}
\end{document}
Which looks a little like:

(I've just added the instructions listed here and only some of the registers, you can easily add any more that you use.)