ARM匯編程序設計之:ARM匯編器所支持的偽操作
5.協(xié)處理器寄存器名稱定義偽操作CN
(1)語法格式
CN偽操作為協(xié)處理器寄存器定義名稱。
語法格式如下。
NameCNexpr
①Name
定義的協(xié)處理器寄存器的名稱。
注意 | 該名稱不能和已經定義寄存器或協(xié)處理器名稱相同。 |
②expr
協(xié)處理器寄存器編號。
(2)使用說明
協(xié)處理器寄存器編號的數值范圍為0~15。避免使用不同的名稱定義同一物理寄存器。
注意 | 協(xié)處理器寄存器的名稱不能被定義為c0~c15,這些名稱已經被匯編器預定義。 |
(3)示例
將協(xié)處理器寄存器6命名為Power。
PowerCN6
6.協(xié)處理器名稱定義偽操作CP
(1)語法格式
CP偽操作為指定的協(xié)處理器定義名稱。
語法格式如下。
NameCPexpr
①Name
定義的協(xié)處理器名稱。
注意 | 該名稱不能和已經定義寄存器或其他協(xié)處理器名稱相同。 |
②expr
協(xié)處理器編號。
(2)使用說明
協(xié)處理器編號范圍為0~15。
使用CP偽操作為協(xié)處理器定義一個方便記憶的名稱,可以使程序員更高效地編寫代碼。
注意 | 協(xié)處理器寄存器的稱不能被定義為p0~p15,這些名稱已經被匯編器預定義。 |
(3)示例
將協(xié)處理器6命名為Dmu。
DmuCP6
7.VFP寄存器名稱定義偽操作DN/SN
(1)語法格式
DN偽操作為雙精度(double-precision)VFP寄存器定義名稱。D0~D15是匯編器預先定義的,用戶不能使用。
SN偽操作為單精度(single-precision)VFP寄存器定義名稱。S0~S31是匯編器預先定義的,用戶不能使用。
語法格式如下。
NameDNexpr
NameSNexpr
①Name
指定的VFP寄存器的名稱。
注意 | 該名稱不能和已經定義寄存器或其他協(xié)處理器名稱相同。 |
②expr
指定VFP寄存器編號。對于雙精度寄存器編號范圍為0~15;對于單精度寄存器編號范圍為0~31。
(2)示例
①將VFP雙精度寄存器6定義為energy。
energyDN6
②將VFP單精度寄存器16定義為mass。
massSN16
8.浮點寄存器名稱定義偽操作FN
(1)語法格式
FN為一個FPA浮點寄存器定義名稱。F0~F7是匯編器預先定義的,用戶不能使用。
注意 | FPA的使用在ARM公司新發(fā)布的編譯器RVCT中已不再支持。 |
語法格式如下。
NameFNexpr
①Name
指定的浮點寄存器的名稱。
注意 | 該名稱不能和已經定義寄存器或其他協(xié)處理器名稱相同。 |
②expr
指定浮點寄存器編號。編號范圍為0~7。
(2)示例
為浮點寄存器6指定名稱為Energy。
EnergyFN6
評論