汇编之创建堆栈

本文详细探讨了汇编语言中堆栈的创建过程,解释了堆栈的工作原理,包括SP寄存器的作用、压栈和弹栈操作,并通过实例分析展示了如何在实际编程中设置和使用堆栈。
摘要由CSDN通过智能技术生成
;定义出所有处理器模式的值,为后面切换处理器做准备
CPU_USER_MODE    EQU    (0x10)
CPU_FIQ_MODE        EQU    (0x11)
CPU_IRQ_MODE        EQU    (0x12)
CPU_SVC_MODE        EQU    (0x13)
CPU_ABT_MODE        EQU    (0x17)
CPU_UND_MODE        EQU    (0x1B)
CPU_SYS_MODE        EQU    (0x1F)

;接下来设置一下堆栈的栈底和堆栈的大小
;系统模式
STACK_SYS_ADDR    EQU    (0x33FF8000)    
STACK_SYS_SIZE    EQU    (1024)
;
STACK_ABT_ADDR    EQU    (STACK_SYS_ADDR - STACK_SYS_SIZE)
STACK_ABT_SIZE    EQU    (1024)
;未定义模式
STACK_UND_ADDR    EQU    (STACK_ABT_ADDR - STACK_ABT_SIZE)
STACK_UND_SIZE    EQU    (1024)
;快中断模式
STACK_FIQ_ADDR    EQU    (STACK_UND_ADDR - STACK_UND_SIZE)
STACK_FIQ_SIZE    EQU    (1024)
;中断模式
STACK_IRQ_ADDR    EQU    (STACK_FIQ_ADDR - STACK_FIQ_SIZE)
STACK_IRQ_SIZE    EQU    (1024 * 20)    ;默认20k给中断
;管理员模式
STACK_SVC_ADDR    EQU    (STACK_IRQ_ADDR - STACK_IRQ_SIZE)
STACK_SVC_SIZE    EQU    (1024 * 20)
    
    EXPORT    STACK_init
    AREA  Stack, CODE, READONLY    ;定义启动代码区域
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值