Keil C51使用詳解2

admin @ 2014-03-14 , reply:0

命令行  PA func_name
第三節 dScope for Windows命令文件的編製
   dScope除了用命令行的方式進行調試以外,還可將各種調試命令彙集於一個調試文件中,然後調用該文件,就可達到自動測試用戶源代碼的目的。dScope的命令文件支持C/PL/M的格式,因而編製調試命令文件與編製C語言程序有些類似。
1. 地址空間及地址空間類型
(1) 地址空間分段
   dScope提供的最大可用空間為16M,實際上我們只用以下三段:
① 內部數據空間段(0X00段或D段)
0X00:0X0000~0X00:0XFFFF(對MSC51而言為0X00:0X00FF)
② 外部數據空間段(0X01段式或X段)
0X01:0X0000~0X01~0XFFFF
③ 程序空間段(0XFF段或C段)
0XFF:0X0000~0XFF:0XFFFF
(2) 地址空間類型
C:代碼空間
D:內部直接定址空間
I: 內部間接定址空間
X:外部數據空間
B:位定址空間
P:I/O口
EB:擴展的位定址空間(MCS251專有)
ED:擴展的數據空間(MCS251專有)
CO:常數空間(MCS251專有)
HC:正常數空間(MCS251專有)
2. 常量
dScope支持十六進位、八進位、十進位、二進位常數,其後綴分別為H、Q(O)、T(或無)、Y;
dScope不區分常量的大、小寫。
(1) 整型常量
   分為整型(int),無符號整型(uint,00rd),長整型(long),無符號長整型(Wlong、Word)。
(2) 浮點型常量
   與ANSI  C相同。
(3) 字元串常量
     與ANSI  C相同
(4) 字元常量
   分為字元型(Char)和無符號字元型(Uchar)一種。
(5) 行號常數
   指用戶程序中的行號,實際上是個地址
(6) 位常量(Bit):
   0和1
(7) 地址常數
   地址常數的種類很多,地址常數不同於行號常數,行號常數就是一個地址,而地址數被引用時,實際上是取該地址中的數據。
C:代碼地址常數,如C:0X0012或0XFF:0X0012
D:內部直接定址地址常數,如D:0X0068或0X00:0X0068
I:內部間按定址地址常數,如I:0X0010或0X00:0X0010
X:外部數據空間地址常數,如X:0X0028或0X01:0X0028
B:位地址常數,如B:0X20或B:0X24.0
EB:擴展的位地址常數(MCS251專有),  
ED:擴展的數據空間地址常數(MCS251專有)
CO:常數空間地址常數(MCS251專有)
HC:正常數空間地址常數(MCS251專有)
(8) 標識符常量
   即用戶源程序中的標號、函數名等,實際上代表某一地址。
(9) 用戶源程序中定義的常數
3. 變數
   dScope所支持的變數名或標識符最多可由31個字元組成,第一個字母為A~Z,a~z,下劃線或問號,後續字元可為字母、數字、下劃線和問號。除CPU變數和系統變數外,dScope不支持全局變數,但可視“define”命令定義的變數為全局變數。
  Dscope所支持的變數分為以下幾種(變數名稱不區分大、小寫),支持類型轉換:
(1) 整型變數
   分為整型變數(int)、無符號整型變數(uint/word),長整型(Long) 、無符號長整型(Ulong/dword)。
(2) 浮點型變數(float)
   與ANSI  C相同。
(3) 字元型變數L
   分為字元型(char)變數和無符號字元型(Uchar)
(4) 位變數(Bit)
(5) 系統變數  
    dScope自己定義了一系列內部變數,用戶可對這些變數進行讀或讀/寫操作,   可被用戶自定義數所引用。
a.      Cycles (Read Only)
   32位變數(Ulong),指示當前程序執行已花費的指令周期(cycle)。
b.     Ramsize(R/W)
   16位變數(Uint),指示內部可直接定址的數據空間大小。
c.      Radix(R/N)
   8位變數(Uchar),決定輸出的數制
   Radix=0X0A (10進位),Radix=0X10 (16進位)
d.     -IIP-(R/W)
   8位變數(Uchar),指示當前的中斷嵌套數目。
e.      $ (R/W)
   32位變數(Ulong),指出PC值,通過對其進行寫操作,可改變程序執行的流程。
f.       Itrace (R/W)
   8位變數(Uchar),決定是否對程序運行情況進行記錄
   Itrace=1,使能記錄操作
   Itrace=0,根本上記錄操作
g.      __Break__(R/W)
   8位變數(Uchar)  __Break__=1,中止程序的運行
h.      __Mode__和__Frame size__是MCS 251專有的變數。
(6) CPU變數
   即R0~R7、A、C(位變數)、B、DPTR及特殊功能寄存器變數,對這些變數均可進行讀、寫操作。
(7) 用戶源程序中定義的變數、數組、結構等
4. 運算符
   dScope支持ANSI  C的運算符,包括算術運算符,邏輯運算符,關係運算符。
5. 表達式
   以運算符將dScope所支持的常量、變數、函數等連接在一起,就構成了dScope的表達式。
6. 數組
   dScope不支持在命令文件中定義數組,但可引用用戶程序中的數組,引用方式如同C。
7. 結構和聯合
   dScope不支持在命令文件中定義結構和聯合,但可引用用戶程序中的結構和聯合,引用方式如同C,但如要輸出整個結構或聯合的結果,就要用命令“OBJ”。
8. 指針:
   不可自定義指針,但支持用戶源程序中的指針變數。



[admin via 研發互助社區 ] Keil C51使用詳解2已經有4608次圍觀

http://cocdig.com/docs/show-post-536.html