打印

请教下armasm里面MAP,FIELD的问题

[复制链接]
1656|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
afterqcd|  楼主 | 2008-10-25 13:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义:
        MAP     0
count   FIELD   4
type    FIELD   4
size    FIELD   0
下面是如何使用:
        SUB      sp, sp, #size
        MOV      r0, #0
        STR      r0, [sp, #count]
        STR      r0, [sp, #type]

我的疑问就是size既然被定义成0大小,那么就不能存储任何值,为什么还能被引用呢?
还就是为什么要把size定义成0字节?

在44b0的启动代码里面我也见到这种情况,是在为各种栈预留空间的时候
    ^    (_ISR_STARTADDRESS-0x500)            
UserStack    #    256    ;c1(c7)ffa00
SVCStack    #    256    ;c1(c7)ffb00
UndefStack    #    256    ;c1(c7)ffc00
AbortStack    #    256    ;c1(c7)ffd00
IRQStack    #    256    ;c1(c7)ffe00
FIQStack    #    0    ;c1(c7)fff00
最后FIQStack也是0字节

搞不懂,求教

谢谢

相关帖子

沙发
afterqcd|  楼主 | 2008-10-27 10:21 | 只看该作者

自己顶一个

求解啊

使用特权

评论回复
板凳
biehoff| | 2008-10-28 11:08 | 只看该作者

RE

MAP 后面的0 是表示MAP区开始的首地址 而不是SIZE大小
count field 4 
count是标号  4是SIZE大小 意思是 count的空间是 0 到 3  一共4个字节

FIQStack    #    0 
FIQSTACK已经是 MAP最后一个标号了  SIZE是0 其实是SIZE不定的意思吧 也就是说 FIQSTACK的起始地址确定 但大小不定 随便你用···
  
你该先去看看 ARM 汇编伪指令   
  响应阿南版主号召  “ 问前先查”哦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝