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.)
Best Answer
The »minted« package is your friend here. It uses Python Pygments as back-end for syntax highlighting. And one of the Pygments lexers is for YAML. An approach how to get a YAML script formatted could look like this.
For details about the package and further options for customization please refer to its manual. The example script is taken from the YAML start page.