导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→keil c語法問題

* 42545: keil c語法問題

   a872156 
a872156发表的帖子 

 keil c語法問題
最近在研究keil c裡面整個程式流程,但是遇到一些keil c 中裡面語法的問題
首先是我在keil c裡面的startup.a51中有看到
?STACK  SEGMENT   IDATA

  RSEG ?STACK
  DS 1
我知道他是要求保留了一個byte Stack空間,後來在到下面後就出現了
                  MOV SP,#?STACK-1
將分配到的堆疊的第一個位置分給SP
後來在c的程式中我又有到宣各了個變數如下
                  INT8U data SaveSP;
然後在一個組語的檔案程式中又有如下的寫法
                  ?STACK SEGMENT IDATA
            RSEG ?STACK
                  Stack:
                EXTRN DATA(SaveSP)
我就真的搞不懂以上組語的宣告了,我知道extrn是宣告有一個別的檔案的變數
所以SaveSP代表是在那個C程式裡面的INT8U data SaveSP;變數
但是把他放在
                  ?STACK SEGMENT IDATA
            RSEG ?STACK
                  Stack:
代表什麼意思呢?

STACK是idata,但是SaveSP又是data區
如果我程式裡面寫#Stack是代表誰呢?
我一開始以為Stack就是代表SaveSP,後來看一下不對,因為我把他想成這種寫法
                  data_seg_name SEGMENT DATA ; segment for DATA RAM.
                  RSEG data_seg_name ; switch to this data segment
                  data_variable: DS 1 ; reserve 1 Bytes for data_variable
                  data_variable1: DS 2 ; reserve 2 Bytes for data_variable1
其中data_variable就是代表被分配記憶體的起始位置的標記,
但是看來不是這樣,麻煩大家跟我說一聲是什麼意思呢?謝謝您們!!!

发表时间:2003年9月21日20:06:04

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:请大侠告知此芯片的型号[img]http://fulinsz.vicp.net/lzk/images
[下一篇帖子]:能再讲一点吗大虾能说详细点吗?我真的是刚搞这行,在学校里只有理论没有实践啊.拜托了