x86 組合語言列表

x86 組合語言列表

我正在嘗試製作以下 x86 彙編語言清單樣式:

x86 組合語言列表

但我沒能做到。我的列表代碼如下:

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\usepackage{tikz}
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc}


\lstdefinestyle{customasm}{
    belowcaptionskip=1\baselineskip,
    frame=single, 
    frameround=tttt,
    xleftmargin=\parindent,
    language=[x86masm]Assembler,
    basicstyle=\footnotesize\ttfamily,
    commentstyle=\itshape\color{green!60!black},
    keywordstyle=\color{blue!80!black},
    identifierstyle=\color{red!80!black},
    tabsize=4,
    numbers=left,
    numbersep=8pt,
    stepnumber=1,
    numberstyle=\tiny\color{gray}, 
    columns = fullflexible,
}

\begin{document}
    \section*{x86 Listing}
\begin{lstlisting}[style=customasm, caption={x86 Code}, label=x86code]
.MODEL SMALL
.STACK 100H
.CODE

MOV AX, 0x3C
MOV BX, 0000000000001010B
ADD AX, BX
MOV BX, 14
SUB AX, BX

MOV AH, 04CH
INT 21H
\end{lstlisting}
    
\end{document}

列表輸出

答案1

也許使用minted包而不是listings一個解決方案?詞法分析器nasm產生的輸出與您的範例非常相似。

\documentclass{article}
\usepackage{caption}
\usepackage[newfloat]{minted}
\captionsetup[listing]{position=top}
\begin{document}
\section*{x86 Listing}
\begin{listing}[h]
\caption{x86 Code}
\begin{minted}[linenos,frame=single]{nasm}
.MODEL SMALL
.STACK 100H
.CODE

MOV AX, 0x3C
MOV BX, 0000000000001010B
ADD AX, BX
MOV BX, 14
SUB AX, BX

MOV AH, 04CH
INT 21H
\end{minted}
\end{listing}
    
\end{document}

結果:

在此輸入影像描述

相關內容