• 全部
  • 问答

ARM 指令 关于DCD和SPACE的一个问题

Golden_Chen 2009-04-16 01:18:21
语句如下:
FiqStackSpace SPACE FIQ_Stack_Legth
FiqStack DCD FiqStackSpace + FIQ_Stack_Legth

最后一条语句,DCD的后面跟FiqStackSpace + FIQ_Stack_Legth,
DCD后面的FiqStackSpace,表示一串空字符,这好理解
但是再上FIQ_Stack_Legth,就不明白了,WHY?
...全文
1777 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gzp20 2009-11-17
很有用啊
回复
OneOnce 2009-11-13
FiqStackSpace SPACE FIQ_Stack_Legth
FiqStack DCD FiqStackSpace + FIQ_Stack_Legth

分配一直空间,起始地址是:FIQ_Stack_Legth ,空间大小FiqStackSpace + FIQ_Stack_Legth(其实地址加偏移量或者说长度)。

就跟C中申请内存一样:
PBYTE p;
p = (PBYTE)malloc(100);
回复
lzycome 2009-11-12
ldr r0,=XX 此时的 XX 是地址(伪指令)
ldr r0,XX 此时的 XX 是值
回复
Golden_Chen 2009-04-20
{Label} DCD expr 表示分配一段字内存,并用expr初始化
上楼说FiqStackSpace+ FIQ_Stack_Legth 是一个地址值,那编译时如何区分地址值和初始化值的?
这一点比较迷糊。
回复
liaifeilove 2009-04-16
FiqStackSpace是标号,相当与地址,实际上就是在FiqStackSpace SPACE FIQ_Stack_Legth 这个语句给分配的空间的首地址,FiqStackSpace+ FIQ_Stack_Legth 是这个地址空间的结束地址,将FiqStack指向这个地址,当做栈的顶部,该栈向下生长,长度FIQ_Stack_Legth
回复
发帖
嵌入开发(WinCE)
创建于2007-09-28

1.9w+

社区成员

硬件/嵌入开发 嵌入开发(WinCE)
申请成为版主
帖子事件
创建了帖子
2009-04-16 01:18
社区公告
暂无公告