汇编语言在计算机启动时的应用


汇编语言介绍

汇编语言,英文为:assembly language。是一种用于电子计算机符号语言。比起计算机机器语言,它更好的辅助我们开发底层机器。常用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。不同平台之间不可直接移植,学习起来比较枯燥,但由于它比较接近机器底层,所以,它又有它独特的应用。

一段汇编语言在计算机底层启动例子

		Stack_Size      EQU     0x00000400

        AREA STACK, NOINIT, READWRITE, ALIGN=3
		Stack_Mem           SPACE   Stack_Size

		Heap_Size       EQU     0x00000200

        AREA    HEAP, NOINIT, READWRITE, ALIGN=3
		__heap_base
		Heap_Mem        SPACE   Heap_Size
		__heap_limit

                PRESERVE8
                THUMB

		; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

		__Vectors DCD     __initial_sp      ; Top of Stack
                  DCD     Reset_Handler     ; Reset Handler
                  DCD     NMI_Handler       ; NMI Handler
                  DCD     HardFault_Handler ; Hard Fault Handler
                  DCD     0                 ; Reserved
                  DCD     0                 ; Reserved
                  DCD     0           ; Reserved
                  DCD     0           ; Reserved
                  DCD     0           ; Reserved
                  DCD     0           ; Reserved
                  DCD     0           ; Reserved
                  DCD     SVC_Handler ; SVCall Handler
                  DCD     0           ; Reserved
                  DCD     0           ; Reserved
                  DCD     PendSV_Handler ; PendSV Handler
                  DCD     SysTick_Handler ; SysTick Handler

		__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END
		

桂ICP备2022000325号-1

桂公网安备45070302000697