解析汇编语言和高级编程语言有区别吗?

Is there in difference in parsing an assembly language and a high-level programming language?

我们在学校学习了 ARC 汇编语言。它在 Miles Murdocca 的 "Principles of Computer Architecture" 书中用于教授计算机体系结构。 ARC 程序如下所示:

!
!  A simple ARC program to add two numbers
!
        .begin
        .org 2048
 main:  ld [x], %r1            ! load x into %r1
        ld [y], %r2            ! load y into %r2
        addcc %r1, %r2, %r3    ! %r3 <- %r1 + %r2  
        st %r3, [z]            ! store %r3 into z
        halt                   ! halt simulator
        jmpl %r15+4, %r0       ! standard return
 x:     15
 y:     9
 z:     0
        .end

我想为该语言手写一个解析器,但很难将我关于解析器的基本知识应用到汇编语言中。 例如,我无法掌握汇编程序的 抽象语法树

谁能指出解析高级语言和汇编语言或汇编代码的区别?

解析并没有根本的不同。你还有标记、标签、语法等

您可能会发现的主要区别是大多数高级语言支持深层嵌套表达式,这会导致更深层次的语法树(想想嵌套循环、匿名函数等)。

在汇编中,代码的结构通常更像是一个简单的指令列表,深一层,与底层机器指令相当接近。因此,您可能会发现可以将语法 "tree" 表示为单个扁平化列表。