1、官方文档《STM8 CPU programming manual》介绍了指令和寻址方式

2、辅助类文档,boot loader文档《STM8 bootloader》

3、关于一些实例和伪指令的介绍,网搜《STM8S第1章-第5章》,已下载至本人电脑cpu-stm8s目录下和《asm_lnk_user_manual.pdf》

4、关于一些实际应用,网搜《STM8S-汇编》,已下载至本人电脑cpu-stm8s目录下

5、详细教科书《STM8S系列单片机原理与应用》

6、STVD安装目录下的\asm\ 的文档《asm_lnk_user_manual.pdf》和asmdemo文件夹下的例程

1、EQU和#define的区别?

2、寄存器间接寻址(X),表示X为指针,对标为:PIC的间接寻址,INDF0-2

3、LD和MOV的区别?

LD是和寄存器交互时用

MOV只能和mem交互用

4、如何定义为位变量

COMM_LCD
DS.B 1

#define F_TEST COMM_LCD,#5

其中DS.B必不可少

5、()和[]的区别

两者都是间接寻址(何谓间接寻址即指针)

不过()指的是寄存器间接寻址或者以mem为基址+寄存器的变址寻址      例如:LD A,(X)和LD A,($5000,X)

[]为mem,以存储单元作间址的间接寻址方式是STM8 CPU特有的间接寻址方式 。操作数所在的储存单元的地址存放在00段内另一个存储单元中,16位地址要带后缀.W;24位地址形式带后缀.E       例如LD [$50.W],A,

总结:ld A,[$F5]等价于ld A,(($F5))

6、如何定义查表,且表中存放地址

NEC中DW SEG0_LCD

ST中DC.W?而不是DS.W

7、short mem和long mem

如果定义在0-FF,则为short mem,定义在100后面的变量则为long mem,short mem的指令周期比long mem的指令周期短。

定义的ram0变量,FLAG2:DS.B 1  后面如果LD A,FLAG2则会将FLAG2的地址变为long mem;如果FLAG2.B:DS.B 1则会将FLAG2的地址变为short mem

8、将模块的标号也加上后缀.B但是出现问题,报错"as1 : Error 84: Byte Size label has val > 255! (need WORDS?) 'MAIN_LOOP'

"

9、Label属性、地址模式和segment属性的联系

Labe有3属性:size,relativity和scope,size:B、W(word默认)、L(4字节)

当Label的地址为0x00-0xFF时,既可以作为long mem也可以作为short mem,如果加上.B则作为short mem。

当label的地址其他时,不可以为b

Label的属性为relative 和absolute,常量为absolute,其余为relative,Lable的属性由linker决定,程序员不能显式改变

segmeng的对齐方式有byte、word等,这是说segmeng的边界必须以字节对齐、字对齐或其他方式对齐,

具体参考STVD安装目录下的 asm文件夹下的《asm_lnk_user_manual.pdf》

10、STM8S为大端模式,即高字节存放在低地址,即如果你ADDW      X,TMP0_MSB有问题,其中TMP0_MSB是8位的假设值=9,但是X是16位的,将TMP0_MSB时,默认会转换为低字节为0,高字节为TMP0_MSB的值,即ADDW X,0x900

11、查表用LD A,(DIS_TAB,X),其中DIS_TAB为定义的表,X为索引,在flash区定义表格用DC.B、DC.W和DC.L;在ram区定义变量用DS.B,而且千万千万要注意,DS等宏指令不能顶格,前面必须至少一个TAB

最新文章

  1. TFFS格式化到创建成功过程
  2. C# winfrom HttpWebRequest 请求获取html网页信息和提交信息
  3. 深入理解 OWIN 中的 Host 和 Server
  4. Flash相册-------3D旋转应用
  5. 【axc】关于duplicate symbols for architecture x86_64错误的第三种可能及其解决办法
  6. Vue.js相关知识2-组件
  7. Excel快捷键
  8. 精雕细琢 35 套精美的 PSD 图标素材
  9. cocos2dx-lua class语法糖要注意了
  10. English Audio-Books
  11. NodeJS用Express建立project
  12. android沉浸式状态栏的实现
  13. java面向对象三大特性:封装、继承、多态
  14. redis 系列5 数据结构之字典(上)
  15. Java中A instanceof B是什么意思?
  16. n 中选 m —— 随机采样的艺术
  17. AsyncTask实现网络图片的异步加载
  18. diy作品——视觉追踪小车介绍
  19. receiver type *** for instance message is a forward declaration
  20. Ruby中数组的遍历

热门文章

  1. SQlException 对象名无效
  2. zeromq-4.1.2在windows下的编译
  3. Android中onActivityResult()获取返回值
  4. MySQL查询结果保存到本地
  5. django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: admin
  6. Flex tree展开节点问题!
  7. 命令行导入导出Mysql数据库
  8. BeanUtils(前端赋值给后台,忽略空属性)
  9. React 中的 refs的应用
  10. Windows系统环境变量、JAVA环境变量配置以及JVM加载过程