飞思卡尔单片机寄存器及汇编指令详解

  • 格式:pdf
  • 大小:873.47 KB
  • 文档页数:18

下载文档原格式

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

附录I:寄存器地址列表

直接页面寄存器总结

高页面寄存器总结

非易失寄存器总结

注:直接页面寄存器表地址的低字节用粗体显示,直接寻址对其访问时,仅写地址低字节即可。第2列中寄存器名用粗体显示以区别右边的位名。有0的单元格表示未用到的位总是读为0,有破折号的单元格表示未用或者保留,对其读不定。

附录II 指令接与寻址方式

HCS08指令集概括

运算符

() = 括号种表示寄存器或存储器位置的内容

← = 用……加载(读: “得到”)

& = 布尔与

| = 布尔或

⊕= 布尔异或

×= 乘

÷ = 除

: = 串联

+ = 加

- = 求反(二进制补码)

CPU registers

A =>累加器

CCR =>条件代码寄存器

H =>索引寄存器,高8位

X => 索引寄存器,低8位

PC =>程序计数器

PCH =>程序计数器,高8位

PCL =>程序计数器,低8位

SP =>堆栈指针

存储器和寻址

M =>一个存储区位置或者绝对值数据,视寻址模式而定

M:M + 0x0001 => 两个连续存储位置的16位值.高8位位于M的地址,低8位位于更高的连续地址.

条件代码寄存器(CCR)位

V => 二进制补码溢出指示,第7位

H => 半进位,第4位

I => 中断屏蔽,第 3位

N => 求反指示器, 第2位

Z => 置零指示器, 第1位

C => 进/借, 第0位 (进位第 7位 )

CCR工作性符号

– => 位不受影响

0 = > 位强制为0

1 = > 位强制为1

= >根据运算结果设置或清除位

U = > 运算后没有定义

机器编码符号

dd =>一个直接寻址0x0000–0x00FF的低8位(高字节假设为0x00)

ee => 16位偏移量的高8位

ff => 16位偏移量的低8位

ii => 立即数的一个字节

jj => 16位立即数值的高位字节

kk => 16位立即数值的低位字节

hh => 16位扩展寻址的高位字节

ll => 16位扩展寻址的低位字节

rr => 相对偏移量

n —任何表达范围在0–7之间的一个有符号数的标号或表达式

opr8i —任何一个表达8位立即值的标号或表达式

opr16 —任何一个表达16位立即值的标号或表达式

opr8a —任何一个表达一个8位值的标号或表达式.指令对待这个8位值为直接页面64K 字节地址空间(0x00xx)中地址的低8位.

opr16a —任何一个表达16位值的标号或表达式.指令对待这个值为直接页面64K字节地址空间.

oprx8 —任何一个表达8位无符号值的标号或表达式,用于索引寻址.

oprx16 —任何一个16位值的标号或表达式.因为HCS08有一个16位地址总线,这可以为一个有符号或者无符号值.

rel —任何指引在当前指令目标代码最后一个字节之后–128 to +127个字节之内的标号或表达式.汇编器会计算包括当前指令目标代码在内的8位有符号偏移量. 寻址方式

隐含寻址(Inherent)如CLRA,只有操作码,无操作数,需要操作的数据一般为CPU寄存器,因此不需要再去找操作数了。(INH)

立即寻址 (Immediate)如LDA #$0A,“$”表示16进制,此时操作数位于FLASH空间,与程序一起存放。(IMM)

直接寻址 (Direct)如 LDA $88,只能访问$0000-$00FF的存储器空间,指令短速度快; (DIR)

扩展寻址 (Extended)如果操作数地址超出了$00FF,自动为扩展寻址;(EXT)

相对寻址(Relative)如BRA LOOP,指令中一般给出8位有符号数表示的偏移量。(REL)

变址寻址 (Indexed) 采用[H:X]或SP作为指针的间接寻址方式。( IX )( IX1 )( IX2 )

变址寻址 (Indexed)

1〉无偏移量:CLR ,X 简写(IX)

2〉无偏移量,指令完成后指针加1(H:X = H:X + 0x0001) ,简写(IX+)只用于指令MOV和CBEQ指令中;

3〉8位偏移量:CLR $10,X 简写(IX1)

4〉8位偏移量,指令完成后指针加1,只用于CBEQ;简写(IX1+)5〉16位偏移量,如STA $0100,X 简写(IX2)

6〉堆栈指针加8位偏移量,如LDA $88,SP 简写(SP1)7〉堆栈指针加16位偏移量简写(SP2)

存储器到存储器寻址方式(Memory to Memory)

1〉直接地址到直接地址如: MOV $00,$20 简写(DD)2〉直接地址到变址、变址加1:MOV $80,X+ 简写(DIX+)3〉立即数到直接地址: MOV #$AA,$00F0 简写(IMD)4〉变址、变址加1到直接地址:MOV X+,$20 简写(IX+D)

寻址方式总结

INH => 固定(无操作数)

IMM => 8位或16位立即数

DIR => 直接8位

EXT => 扩展16位

IX => 16位无偏移索引

IX+ => 16位无偏移索引,后递增 (仅仅CBEQ和MOV)

IX1 => H:X中的带8位偏移的16位索引

IX1+ => 带8位偏移的16位索引,后递增 (仅仅CBEQ)

IX2 => H:X中的带16位偏移的16位索引

REL => 8位相对偏移

SP1 => 带8位偏移r的堆栈指针

SP2 => 带16位偏移的堆栈指针

HCS08指令集概括(图表)