接上一话题,我们声明了各个段的地址, 这个部分是更为详细的说明各个段,相当于在各个段中开始定义变量了。
.section ".text.boot" /*启动程序段*/
.globl _start /*声明一个全局函数,*/
_start:/*函数的名称*/
/* setup stack with 4KB size */
la sp, stacks_start /*加载标签 stacks_start 的地址到栈指针寄存器 sp*/
li t0, 4096
add sp, sp, t0
/* goto C */
tail sbi_main /*函数调用,*/
.section .data
.align 12
.global stacks_start /*定义全局变量, 栈开始的地方, 但是, 这个栈是在数据段中声明的*/
stacks_start:
.skip 4096 /*在当前位置保留 4096 字节的空间。这通常用于为栈分配内存。*/
高地址
0x80002000 <- sp (栈顶)
+------------------+
| |
| |
| |
| |
+------------------+
0x80001000 <- stacks_start (栈底)
低地址
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。