Freescale MC9S08AW60汇编学习笔记(一)
2015-04-30 16:09 赤骥~ 阅读(757) 评论(0) 编辑 收藏 举报MC9S08AW60是HCS08系列的MCU,它是8位的MCU,由HCS08核加上存储器和外围模块构成。HCS08系列的MCU除了MC9S08AW系列之外还有MC9S08GB系列、MC9S08GT系列、MC9S08AC系列等。不同型号的MCU应用领域的侧重点不同。
HCS08系列的MCU就只有5个寄存器:A、H:X、SP、PC、CCR。分别是8位、16位、16位、16位、8位。具体功能要在使用中掌握。MC9S08AW60的主频为4MHz,一个总线周期为T=0.25us。MC9S08AW60存放数据的方式是大端方式:低地址存放最高有效字节,此外需要知道的是存储器中RAM地址:$0070~$086F,FLASH地址:$0870~$17FF、$1860~$FFAF。接着我们就可以使用Codewarrior来编写代码了。
首先,给出一个最基础的框架:
org $0070 ;变量定义
x1 ds.b 1
org $1860 ;常量定义并写出主程序
x2 dc.b 1
main: ;主函数
clra
clrx
nop
again: ;主循环
nop
jmp again
org $fffe ;复位向量
dc.w main
编译后,可以在调试面板查看一下效果。其中复位向量的使用实质是在地址$FFFE~$FFFF中写入main函数的地址,当复位时就直接执行$FFFE中的代码,于是转入main函数中,程序就回到了最初的固定状态,复位的使用可以应对程序中出现的异常,就好比手机的重启、初始化之类的总是回到一个可以预知的固定状态。其他程序代码(如:nop表示空操作占用一个总线周期T)可以翻阅数据手册,也可以看看《Freescale-HCS08单片机原理及应用-指令集汇总》——我已经上传了。