松翰SN 汇编语言与开发工具

合集下载

松翰单片机SONIXSN8P2511程序模板

松翰单片机SONIXSN8P2511程序模板

松翰单片机SONIXSN8P2511程序模板#define MAIN_GLOBAL#include "..\inc\config.h"#include "..\inc\SN8P2501B.h"//************************************************************* ***//// 主函数 //// 功能: 调用各个主函数 ////************************************************************* ***//void main(void){InitCPU();Ram_init();while(1){if(TimeFlag){TEST = !TEST;TimeFlag=0;Time_Fun();}_clrwdt();}}//************************************************************* ***//// 继电器输出 //// 功能: 工作输出 ////************************************************************* ***//void Work_Fun(void){;}//************************************************************* ***//// 硬件初始化 //// 功能: 硬件初始化输入输出定时器开关 AD初始化 ////************************************************************* ***//void InitCPU(void) //单片机初始化{FGIE=0; //关总中断//------------------------------I/O口输出--------------------------//---------------P0---------------FP00M=0;//// FP01M=1;//// FP02M = 0;// FP03M = 0;// FP04M=0;//P0UR = _0000_0001b;//---------------P1---------------FP10M=0;//// FP11M=0;//FP12M=1;// 输出FP13M=0;// 按键// FP14M=1;//// FP16M=1;//// FP15M=1;//// FP17M=1;//P1UR = _0000_1001b;//---------------P2---------------FP20M=0;//FP21M=0;//FP22M=0;//FP23M=0;//FP24M=0;//FP25M=0;//// FP26M=0;//// FP27M=1;//P2UR = _0011_1111b;//---------------P5---------------// FP50M=1;//// FP51M=1;//// FP52M=1;//// FP53M=0;//FP54M=1;//// P5UR = _0000_0000b;//------------------------------T0--------------------------------FT0ENB = 0;FT0IEN = 0;FT0IRQ = 0;T0M = 0X60;//时钟为FCPU/4T0C=7; //T0 间隔250uSFT0ENB = 1;FT0IEN = 1;FGIE=1; //开总中断}//************************************************************* ***//// 变量初始化函数 //// 功能: 对程序中的变量进行赋初值 ////************************************************************* ***//void Ram_init(void){_nop();_nop();Move_Key = 0x70;// Open_FLAG = 1;}//************************************************************* ***//// 走时函数 //// 功能: 对程序中计时功能进行计数和赋值 ////************************************************************* ***//void Time_Fun(void){static uchar Time_5ms_Cnt = 0,Time_10ms_Cnt =0,Time_200ms_Cnt = 0,Time_1S_Cnt = 0;static uchar Leave_Out_ID = 0,Leave_Out_Time_Cnt = 0,YiWei_ID = 0,Leave_Out_Cnt = 5;static uchar Move_IN_Cnt = 0;uchar tmp1;if(Leave_Data_Out_Flag){if(!Leave_Out_ID){Leave_Out_Time_Cnt ++;LEAVE_DATA_OUT_ON();if(Leave_Out_Time_Cnt > 8){Leave_Out_Time_Cnt = 0;Leave_Out_ID = 1;}}else if(Leave_Out_ID == 1){Leave_Out_Time_Cnt ++;LEAVE_DATA_OUT_OFF();if(Leave_Out_Time_Cnt > 5){Leave_Out_Time_Cnt = 0;Leave_Out_ID = 2;}}else if(Leave_Out_ID == 2){if(!Leave_Out_Time_Cnt){tmp1 = Leave_ID;tmp1 |= Move_Key;tmp1 >>= YiWei_ID;tmp1 &= 1;if(tmp1)Leave_Out_Time_Cnt = 0;elseLeave_Out_Time_Cnt = 2; YiWei_ID ++;if(YiWei_ID >= 9){Leave_Out_ID = 0;YiWei_ID = 0;Leave_Out_Time_Cnt = 0; Leave_Data_Out_Flag = 0;}}if(Leave_Data_Out_Flag){Leave_Out_Time_Cnt ++;if(Leave_Out_Time_Cnt <= 4) LEAVE_DATA_OUT_ON();else if(Leave_Out_Time_Cnt < 6) LEAVE_DATA_OUT_OFF();elseLeave_Out_Time_Cnt = 0;}}}Time_5ms_Cnt ++;if(Time_5ms_Cnt >= 5) //接收5ms去扫描{Time_5ms_Cnt = 0;if(MOVE_IN) //倾倒了{Move_IN_Cnt ++;if(Move_IN_Cnt >= 10){Move_IN_Cnt = 15;Move_Key = 0x80;Leave_ID = 0;}}else{if(!K8_IN)Leave_ID = 8;else if(!K7_IN)Leave_ID = 7;else if(!K6_IN)Leave_ID = 6;else if(!K5_IN)Leave_ID = 5;else if(!K4_IN)Leave_ID = 4;else if(!K3_IN)Leave_ID = 3;else if(!K2_IN)Leave_ID = 2;else if(!K1_IN)Leave_ID = 1;Move_IN_Cnt = 0;Move_Key = 0x70;}}Time_10ms_Cnt ++;if(Time_10ms_Cnt >= 10) //发送10MS去扫描{Time_10ms_Cnt = 0;}Time_200ms_Cnt ++;if(Time_200ms_Cnt >= 200){Time_200ms_Cnt = 0;if(!Leave_Data_Out_Flag){Leave_Out_Cnt ++;if(Leave_Out_Cnt >= 10){Leave_Out_Cnt = 0;Leave_Data_Out_Flag = 1;}}}}__interrupt isr1(void) //TC0定时器中断入口{static uchar Time1MS = 0;if(FT0IRQ) //TC0 //定时0.125ms{T0C=6; //T0 间隔250uSTime1MS ++;if(Time1MS >= 4) //1MS中断函数{Time1MS = 0;TimeFlag = 1;}}FT0IRQ = 0;}。

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法汇编语言是一种底层的程序设计语言,直接操作计算机硬件。

在编写汇编语言程序时,需要经过一系列的编程步骤和调试方法,以确保程序的正确性和可靠性。

下面是关于汇编语言的编程步骤和调试方法的一些详细介绍。

一、编程步骤:1.定义程序目标:明确程序的功能、输入和输出。

2.设计算法和逻辑:将目标转化为汇编语言指令,设计算法和逻辑流程。

3.选择寄存器和指令:根据算法和逻辑需求,选择合适的寄存器和指令。

4.编写指令:根据算法和逻辑需求,使用正确的指令来编写汇编语言程序。

5.汇编编译:使用汇编编译器将汇编代码翻译成机器代码。

6.汇编连接:使用链接程序将机器代码和其他必要的文件(如库文件)连接成可执行文件。

7.调试和测试:进行调试和测试,确保程序的正确性和可靠性。

8.优化和改进:根据测试结果,对程序进行优化和改进。

二、调试方法:1.插入调试指令:在程序中插入一些特定的调试指令,可以输出一些关键的变量或标志位,以便观察程序的执行路径和结果。

2.单步执行:逐条执行程序代码,并观察每条指令的执行结果和影响,以及寄存器和存储器的变化情况。

3.观察寄存器和存储器:利用调试器观察程序执行过程中的寄存器和存储器的变化情况,以确定代码逻辑是否正确。

4.打印和日志输出:通过在程序中插入打印和日志输出的语句,可以观察关键变量和代码的执行情况,以帮助调试。

5.内存和寄存器状态检查:检查程序执行过程中的内存和寄存器状态,特别是对一些关键变量和标志位进行监视,以便发现问题所在。

6.脱机调试:将程序转储至仿真器或虚拟机,并在其中进行无风险的调试,以排查错误。

三、汇编程序调试常见问题及解决方法:1.程序崩溃或死循环:检查程序中循环和分支语句的逻辑判断条件是否正确,以及循环内的寄存器和内存操作是否正确。

2.内存访问错误:查看程序访问的内存地址和存储器的范围是否正确,并检查程序中的指针操作是否正确。

3.寄存器使用错误:检查程序中使用的寄存器是否正确选择和使用,尤其是在多个函数调用的情况下,需要注意寄存器的保存和恢复。

Sonix_松翰指令用户指南

Sonix_松翰指令用户指南
数据传送指令.......................................................................................................................................................6 MOV—存储器读/写指令 ..............................................................................................................................6 B0MOV—存储器 BANK0 读/写指令 ............................................................................................................6 XCH—累加器与存储器的数据交换 ..............................................................................................................7 B0XCH—累加器与存储器(BANK0)的数据交换 ......................................................................................7 MOVC—从 ROM 中读取数据 ......................................................................................................................7

SN 单片机汇编软件 V138 中文汉化版

SN 单片机汇编软件 V138 中文汉化版

SN 仿真器汇编软件V138 简体中文汉化版本台湾松翰的 8 位单片机 SN 仿真器汇编软件 V138 已经发布,该版本支持芯片型号如下:支持最新芯片 :SN8F25E27, SN8F25E27L, SN8F25E28, SN8F25E28L, SN8F26E67, SN8F26E67L, SN8F26E68, SN8F26E68L,SN8P2623, SN8P2723, SN8P2929, SN8FMD25A, SN8FMD24A, SN8FMD24AL, SN8FMD25A, SN8FMD25AL, SN8P25234,支持仿真全部真实功能的下列芯片列表:SN8P2501A, SN8P2602A, SN8P2604, SN8P2606, SN8P2608, SN8P270XA, SN8P2711, SN8P2714,SN8P27142, SN8P27143, SN8P2715, SN8P2308, SN8P26042, SN8P2612, SN8P2613, SN8P2624,SN8P2603A, SN8P2611, SN8P2622, SN8P2501B, SN8P2602B, SN8PC13, SN8P2201, SN8P2202,SN8P2203, SN8P2204, SN8A2617, SN8P2604A, SN8P2614, SN8P2808, SN8P2212, SN8P2213,SN8P22121, SN8P26L32, SN8P26L321, SN8P26L34, SN8P2722, SN8P2807, SN8P2234, SN8P2236,SN8P2238, SN8P2711A, SN8P26L38, SN8PC20, SN8P26042A, SN8P22021, SN8P26L31, SN8P2522,SN8P2732, SN8P2733, SN8P2734, SN8P2735, SN8P2754, SN8P2755, SN8P2758, SN8F2251, SN8F2253, SN8F2255, SN8F22511, SN8F22521, SN8F22531, SN8F2251B, SN8F2253B, SN8F2255B,SN8F22511B, SN8F22521B, SN8F22531B, SN8F22721, SN8F2271, SN8F2277, SN8F22711, SN8F2271B,SN8F2277B, SN8F22711B, SN8F22721B, SN8F2288, SN8P2267, SN8PC21, SN8P2233, SN8P2242,SN8P22421, SN8P2521, SN8P26L37, SN8P2708B, SN8F27E62, SN8F27E62L, SN8F27E64, SN8F27E64L,SN8F27E65, SN8F27E65L, SN8P2742, SN8P2743, SN8P2318, SN8P2501B1, SN8P2501C, SN8P2602C,SN8P2712, SN8P2523, SN8P2241, SN8P2317, SN8P2602C1, SN8P2711A1, SN8F27E93, SN8F27E93L,SN8F27E94, SN8F27E94L, SN8P25231, SN8PC22, SN8F26E61, SN8F26E61L, SN8F27E61, SN8F27E61L,SN8F26E611, SN8F26E611L,SN8F27E611, SN8F27E611L,SN8P2267B, SN8P2839, SN8P2947, SN8PC2014,SN8PC2016, SN8P2704B, SN8P2524, SN8P27411, SN8P2267C, SZK671, SN8P2949, SN8P2711A2, SN8P27122, SN8P2511, SN8FMD24, SN8FMD24L, SN8FMD25, SN8FMD25L, SN8F26E64, SN8F26E64L,SN8F26E65, SN8F26E65L, SN8F25E24, SN8F25E24L, SN8F25E25, SN8F25E25L, SN8FMD21, SN8FMD21L,SN8FMD22, SN8FMD22L, SN8FMD23, SN8FMD23L, SN8P2711B, SN8F25E27, SN8F25E27L, SN8F25E28,SN8F25E28L, SN8F26E67, SN8F26E67L, SN8F26E68, SN8F26E68L, SN8P2623, SN8P2723, SN8P2929,SN8FMD25A, SN8FMD24A, SN8FMD24AL, SN8FMD25A, SN8FMD25AL, SN8P25234,提示:a. M2IDE V1.00 或更新的版本仅支持SN8ICE_2K.b. SN8IDE V1.99L ~ V1.99Z 仅支持 SN8ICE_1K(旧名称是 S8KD-2 ICE).c. 停止支持 Writer V3.0 烧写器.由于软件的菜单,对话框,提示语句....全部为英文,因为英文底子差,感觉使用不方便,于是又抽时间给汉化了.主要是对 8 位单片机普通应用部分的菜单,对话框,提示... 进行汉化.部分语音应用之处忽略了而没有汉化.有一些受软件内部保护的地方不够水平也没有汉化.汉化后的主界面:汉化后的菜单:汉化后的对话框:汉化后的提示语句:欢迎爱好使用中文软件界面的朋友下载使用!不足之处,欢迎指正!请下载: HH_M2Asm138.rar (去掉文件名的前面"HH_"字符,覆盖原英文同名文件即可!-----覆盖前请备份英文软件! 以便快速恢复.)。

单片机的软件开发工具与环境介绍

单片机的软件开发工具与环境介绍

单片机的软件开发工具与环境介绍单片机是指集成在单个芯片上的微型计算机系统。

它具备较小的体积、低功耗、低成本以及较强的功能等特点,被广泛应用于各个领域。

在单片机的开发过程中,选择合适的软件开发工具和环境非常关键。

本文将介绍几种常用的单片机软件开发工具与环境。

一、Keil μVisionKeil μVision是一款由Keil Software公司推出的嵌入式系统开发工具。

它是一套集成开发环境(IDE),包含了编译器、调试器、仿真器等功能模块,可以实现单片机程序的编写、编译以及调试。

KeilμVision支持多种芯片系列,如STMicroelectronics的STM32系列、NXP的LPC系列等。

其可视化界面友好,功能强大,被广泛应用于单片机软件开发领域。

二、IAR Embedded WorkbenchIAR Embedded Workbench是由IAR Systems推出的单片机开发工具。

它提供了完整的软件开发流程,包括编写、编译、调试和优化等环节。

IAR Embedded Workbench支持多种单片机系列,如Texas Instruments的MSP430系列、Renesas的RL78系列等。

该工具具有较高的代码生成效率和卓越的调试功能,可以帮助开发者提高开发效率和代码质量。

三、MPLAB X IDEMPLAB X IDE是由Microchip公司开发的一款集成开发环境。

它主要用于开发与Microchip单片机相关的应用程序。

MPLAB X IDE支持多种编程语言,如C、C++以及汇编语言。

该工具提供了丰富的调试功能和模拟器功能,并能够与硬件调试器(如PICkit)结合使用,使得开发者可以更加方便地进行单片机程序的开发和调试。

四、Arduino IDEArduino IDE是一款面向Arduino单片机的开发工具。

Arduino是一种开源的电子原型平台,广泛应用于各个领域的快速原型开发。

汇编语言程序开发工具

汇编语言程序开发工具
2013年8月11日5时4分 DSP原理及应用 7
第4章 汇编语言程序开发工具
2. ’C54x的开发工具
(1)代码生成工具:
助记符指令—代数式指令翻译器:用来将包含 助记符指令的汇编语言源文件转换成包含代数式指令 的汇编语言源文件。 建库实用程序:用来建立用户自己使用的、并 用C/C++语言编写的支持运行的库函数。 十六进制转换程序:可以很方便地将COFF目标 文件转换成TI、Intel、Motorola等公司的目标文件 格式。
2013年8月11日5时4分 DSP原理及应用 3
第4章 汇编语言程序开发工具
4.1 TMS320C54x软件开发过程
1. ’C54x应用软件开发流程
’C54x应用软件的开发可在TI公司提供的开发环境中进行, 用户可以用C/C++语言或汇编语言编写源文件,经C编译器、 汇编器生成COFF格式的目标文件,再用链接器进行链接,生 成在’C54x上可执行的目标代码,然后利用调试工具对可执 行的目标代码进行仿真和调试。 当调试完成后,通过Hex代码转换工具,将调试后的可执 行目标代码转换成EPROM编程器能接受的代码,并将该代码固 化到EPROM中或加载到用户的应用系统中,以便DSP目标系统 脱离计算机单独运行。
目标文件
目标存储器
.bss
RAM
E2PROM
.data
.text
ROM
2013年8月11日5时4分
DSP原理及应用
23
第4章 汇编语言程序开发工具
4.3.2 汇编器对段的处理 汇编器对段的处理是通过段伪指令来区别各个段 的,并将段名相同的语句汇编在一起。
汇编器有5条伪指令可识别汇编语言程序的各个 部分: ● .bss ——定义未初始化段 ● .usect ——定义未初始化段 ● .text ——定义已初始化段 ● .data ——定义已初始化段 ● .sect ——定义已初始化段

松翰(SONIX)烧录器作业指导书

松翰(SONIX)烧录器作业指导书

松翰(SONIX)烧录器作业指导书
文件名称六芯片读取及烧录2.所选择程序读取正常后,将烧录器连接机台进行芯片烧录,注意事项1.取对应转接板插入所烧写程序,注意丝印上所印有型号,如C020配备2501B转接板,使用错误将无法烧录。

2.对所选择程序必须截图存档,方便每日程序点检及日后异常追溯。

4.将烧录器连接机台后,注意LED灯显示,黄色为烧录中,绿色为烧录完成,红色为不良.
作成部门
③编写/日期
②审核/日期
①批准/日期修订次数修订日期审核日期文件编号:XDD/SMT-0001
版本:A.1
松翰(SONIX)烧录器作业指导书第 3 页共 3 页
1 点击“读取OTP”按钮,会将芯片中的信息读出(如果芯片有加密则只能读出部分数
据),并显示在信息框中.
3.程序选取正确后必须读取1PCS芯片,点检芯片是否正确,并如实填写<烧录点检表>.。

单片机的编程语言选择与开发工具推荐

单片机的编程语言选择与开发工具推荐

单片机的编程语言选择与开发工具推荐随着科技的不断发展,单片机已经成为了现代电子产品中不可或缺的核心部件。

单片机的编程语言选择和开发工具的使用对于开发者来说至关重要。

本文将简要介绍几种常见的单片机编程语言,并推荐一些优秀的开发工具供开发者选择。

一、单片机编程语言选择1. C语言C语言是目前最常用的单片机编程语言之一。

它具有良好的可移植性、强大的数据处理能力和丰富的编程库。

C语言使用简单且易于学习,适合初学者入门。

许多著名的单片机制造商都提供了针对C语言的开发工具和库。

2. C++C++语言在C语言的基础上进行了扩展,为单片机编程提供了更多的功能和特性。

C++语言支持面向对象的编程,使得程序结构更加清晰,代码更易于维护。

然而,由于C++语言对内存的使用较为复杂,对于资源有限的单片机来说,需要仔细调试和优化。

3. PythonPython语言在近年来在单片机编程领域中日益流行。

Python语言具有清晰简洁的语法,易于学习和使用。

它支持丰富的库和模块,使得开发人员能够快速实现各种功能。

然而,由于Python解释器的消耗较大,对于对资源要求严格的嵌入式系统来说,需要权衡性能和效率。

二、单片机开发工具推荐1. Keil MDKKeil MDK是一款功能强大、易于使用的开发工具。

它支持多种单片机架构,包括ARM Cortex-M系列和8位STC系列等。

Keil MDK具有直观的用户界面、强大的调试功能和稳定的编译器,可以帮助开发者高效地进行单片机程序开发。

2. MPLAB X IDEMPLAB X IDE是Microchip公司推出的一款开源免费的集成开发环境。

它支持多种编程语言和单片机系列,包括PIC和dsPIC等。

MPLAB X IDE具有友好的用户界面和丰富的功能,包括源代码编辑、调试、仿真等,非常适合微控制器的开发。

3. Arduino IDEArduino IDE是一款适用于Arduino系列单片机的开发工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Example:
B0MOV 0x80, #3
// RAM[0x80] = #3
另外,符号$表示编译器当前运行程序地址(PC值)。
Example:
JMP $ JMP $+1
// To represent unlimited loop // Equivalent to two NOPs
符号$还可以用来获取标号地址的高、中、低字节。
为了避免使用太多不同的标号,以下符号可以用来表示不同的标号名称: 首先,使用符号“@@:”作为临时标号名,可以从前面和后面对它进行访问。 其次,使用“@B”指向前面离它最近的“@@:”标号;使用“@F”指向下一个(离它最近的) “@@:”标号。
Example:
JMP @@:
… JMP
@F
… @B
; jump to the next @@ ; jump to the previous@@
7.1.7 算术运算符
用户可使用+、-、*、/、%、&、|、^、~、()等符号进行算术运算。
Example:
2+3–4 1 2 + 3 * 4 14
以下按优先级顺序列出这些符号的数学涵义。
()
= sub-expression
+
= plus
-
= minus
~
= not
!
= logical not
*
= multiplication
Example:
TITLE
This is a demo code.
SONiX TECHNOLOGY CO., LTD
Page69
SN8 C Studio User’s Manual
7.2.3 变量
EQU
语法:
VARIABLE EQU VALUE or BIT
说明:固定变量声明后不能被修改。
Example:
通常,符号“;”和“//”均可表示注释声明,连续的文字说明写在符号“;”或“//”后面。 Example:
; This is an example of demo code. // This is an example of demo code. 另外,使用符号/*….*/可以框住一行或多行注释。 Example:
Example 1:
<STRING> CLRA TEXTEQU <MOV A,#0>
Example 2:
TEXT MACRO CLRALU TEXTEQU CLRA
SONiX TECHNOLOGY CO., LTD
Page70
Example 3: Example 4:
SN8 C Studio User’s Manual
START
;A = 0X35 ;A = 0X6B ;A = 0X71
下面章节将介绍标号,操作助记符,操作数和注释的书写限制和规则。接下来详细介绍 这四部分。
7.1.1 标号
首先,标号必须以字母a~z,@,或下划线为开头; 除了最后一个字符的其他字符可以是a~z,@,下划线或0~9; 标号的最后一个字符必须为冒号“:”; 标号的长度没有限制但不可以重复命名。
此命令必须定义在汇编程序的最前面,且只能定义一次。
Example:
Chip sn8p2708a
Syntax:
ENDP
说明:强制结束程序,且位于此命令后的程序将不会被编译。
Example:
Endp
7.2.2 用户定义标题
Syntax: TITLE
descritpion statment
说明:TITLE后面为标题的说明部分。
SN8 C Studio User’s Manual
第二部分 开发语言和开发工具
7. Assembler
7.1 SN8 汇编语言
一般而言,汇编的指令包含四部分,它们之间用空格或TAB键隔开。如下所示: 标号 操作助记符 操作码 注释
Example:
START:
MOV ADD DAA JMP
A,#0X35 A,#36H
7.1.6 数值表达式
SONiX TECHNOLOGY CO., LTD
Page67
SN8 C Studio User’s Manual
数值的表示方法有十进制、十六进制、二进制几种,但不管哪一种表示方法,第一个数 字必须是0~9。
Example:
255 0xFF 0FFh 11111111b.
;Decimal expression. ;Hexadecimal expression. ;Hexadecimal expression ;Binary Expression
SONiX TECHNOLOGY CO., LTD
Page65
SN8 C Studio User’s Manual
7.1.2 操作数
如果有两个操作数,应该用符号‘,’将它们隔开。
Example: or
MOV MOV
A , #43h A, #’C’
// block the Operand by ‘ ‘
Example : ORG
B0MOV X, #DATA1$H
B0MOV Y, #DATA1$M
B0MOV Z, #DARA1$L
MOVC

0X123456
Data1 DW
7890H
// X = 0X12 // Y = 0X34 // Z = 0X56 // ACC = 0X90,R = 0X78
最后,符号$还可以用来将表的14~17位定义为高位元(注:这一表示方法2系芯片不支 持)。
<123456> S1, 4, 2 S1, 3
VALUE SIZESTR <STRING>
// s2 equivalent to “45” // s3 equivalent to“3456”
SONiX TECHNOLOGY CO., LTD
Page71
SN8 C Studio User’s Manual
7.1.5 芯片保留字
每款SONIX 8_bit 系列MCU母体都拥有自己的系统寄存器,且已经在汇编程序中定义 为芯片的保留字。例如,H/L寄存器不需要声明就可直接在程序中使用,对应位也一样。 如果程序中用到位寄存器,则应在寄存器名前加前缀“F”。例如将“GIE”置为1,正确代 码为“b0bset FGIE”。可以参阅相关的数据手册了解详细的系统寄存器名称和芯片资料。
VALUE VALUE VALUE
SIZESTR SIZESTR SIZESTR
TEXT MACRO % VARIABLE % (ARITHMETIC)
说 明 : 执 行 SIZESTR 命 令 可 以 从 STRING 得 到 字 符 串 的 长 度 。 字 符 串 的 格 式 请 参 考 TEXTEQU。
TEXTEQU Syntax:
STRING STRING STRING STRING
TEXTEQU TEXTEQU TEXTEQU TEXTEQU
<STRING> TEXT MACRO % VARIABLE % (ARITHMETIC)
说明:文本宏能再次被更改,一般用于字符串的替换。符号“%”后的变量或算术表达式 的值将被转换为字符串。Catstr、substr、sizestr和instr可以用来表示以上四种不同的字 符串。
/* this is an example of demo code*/.
7.1.4 系统操作数
系统默认一部分操作数供用户方便使用。但也有一些操作数不被默认,这取决于所选芯 片。确定这些默认操作数是否存在,可以在程序中判断默认常量@??_existas为1或0来检 查系统是否提供这些操作数。另外,可以通过检查@p?_bits设定操作数的有效值来确定 引脚数量。
<=
= less than or equal to
==
= is equal
!=
= is not equal
&
= and
^
= xor
|
= or
&& = logical and
括号 正的 负的 位逻辑反 逻辑非 乘 除 取模(取余) 加 减 左移 右移 大于 小于 大于等于 小于等于 等于 不等于 位逻辑与 位逻辑异或 位逻辑或 逻辑与
说明:执行SUBSTR命令从STRING中抽取一个子字符串。Start为要取的字符的开始位 置(原字符串的第一个字母为位置1)。Length表示要抽取出字符串的长度。如果省略 长度,则一直取到字符串的最后一位。字符串的格式请参考TEXTEQU。
Example:
SIZESTR Syntax:
S1 TEXTEQU S2 SUBSTR S3 SUBSTR
SONiX TECHNOLOGY CO., LTD
Page68
||
= logical or
逻辑或
SN8 C Studio User’s Manual
7.2 伪指令
这里列举了交叉编译器进行编译产生项目代码时的风格样式的伪指令,根据不同的功能 按以下分类介绍:
7.2.1 程序开始和结束
Syntax: CHIP SN8XXXX 说明:选择所用IC型号。用户可以通过菜单[option]->[chip info]了解当前所用的芯片。
Example:
INSTR Syntax:
V1 SIZESTR <123456>
// v1 Equivalent to 6
VALUE VALUE VALUE VALUE
INSTR INSTR INSTR INSTR
START, <STRING>, <SUBSTRING> START, TEXT MACRO, <SUBSTRING> START, % VARIABLE, <SUBSTRING> START, % (ARITHMETIC), <SUBSTRING>
相关文档
最新文档