Freescale汇编指令.ppt
《Freescale汇编指令.ppt》由会员分享,可在线阅读,更多相关《Freescale汇编指令.ppt(27页珍藏版)》请在三一办公上搜索。
1、基于HCS12的嵌入式系统设计,第3章 CPU12指令系统,3.1概述3.2 CPU12汇编指令的格式和符号说明3.2.1 操作码和操作数3.2.2 数据类型数据表示方法寄存器和存储器表示法3.3 寻址方式(Addressing Mode)隐含/固有寻址(Inherent Addressing,INH)立即寻址(Immediate Addressing,IMM)直接寻址(Direct Addressing,DIR)扩展寻址(Extended Addressing,EXT)相对寻址(Relative Addressing,REL)变址寻址(Indexed Addressing,IDX)3.4 S
2、12汇编指令系统数据传送指令算术运算指令逻辑运算指令高级函数指令3.4.5 程序控制指令3.4.6 CPU控制指令,基于HCS12的嵌入式系统设计,第3章 CPU12指令系统,3.1概述基本概念回顾指令:计算机能直接识别和执行的命令,即每个有效的编码组。指令系统:一种计算机CPU所能执行的全部指令的集合。指令助记符(instruction mnemonic symbol):用一组有一定含义的字符表示的指令,一般采用相关的英文单词缩写。汇编语言源程序:利用指令助记符编写的程序。操作码(Opcode):规定一条指令完成何种操作。操作数(Operand):指令所完成操作的对象。3.2 CPU12汇编
3、指令的格式和符号说明3.2.1 操作码和操作数CPU12指令组成:(前导字节)+操作码(+后随字节+扩展字节)后置字节提供了一定形式的变址寻址、传送、交换和循环的基址寄存器和偏移量的符号等信息。扩展字节包含有附加的程序信息,例如地址、偏移量和立即数等。,基于HCS12的嵌入式系统设计,3.2 CPU12汇编指令的格式和符号说明(2),3.2.2 数据类型CPU12支持8种数据类型:位数据(1位);5位带符号整数;8位带/无符号整数;字节型组合BCD数(8位);9位带符号整数;16位带/无符号整数;16位有效地址;32位带/无符号整数。数据表示方法十进制整数可直接使用;16进制数在数字前面加“$
4、”;二进制数前加“%”;立即数应在数据前加“#”。寄存器和存储器表示法寄存器用名称表示,不分大小写;M(Memory location)表示由指令有效地址指向的8位存储单元;R(Result)表示算术或逻辑运算结果;I(Intermediate result)表示算术或逻辑运算的中间结果。寄存器和存储器符号加下标“n”时,表示是它的第n位;16位寄存器符号后加下标“H”或“L”时,表示其高位字节或低位字节。M:M+1表示16位存储器,由M和M+1相邻两个存储单元组成。MM+3表示32位存储器,由4个相邻的存储单元M、M+1、M+2、M+3组成;(M:M+1)表示两个相邻存储单元的内容组成的1个
5、字,(M)为高位字节,(M+1)为低位字节;符号()表示内容,如M(X)、M(SP)分别是由变址寄存器X和堆栈指针SP所指向的存储单元,M(y+3)是由变址寄存器Y加3后指向的存储单元。,基于HCS12的嵌入式系统设计,3.3 寻址方式(1),寻址:寻找操作数地址的过程。有效地址(effective address):操作数所在的地址。寻址方式(Addressing Mode):通过确定操作数所在的位置(地址),提取操作数的方法。CPU12共有6类寻址方式,即固有寻址、立即寻址、直接寻址、扩展寻址、相对寻址和变址寻址。3.3.1 隐含/固有寻址(Inherent Addressing,INH)
6、固有寻址:有效地址包含在操作码中,也称为隐含寻址(Implied addressing),又因为操作数总是处于CPU的寄存器之中,还称为寄存器寻址(Register addressing)。特征:在指令助记符中会出现寄存器的名称,有时在助记符中甚至连寄存器的名称都不出现。3.3.2 立即寻址(Immediate Addressing,IMM)立即寻址:指令的操作数是一个8位或16位二进制数。指令中出现的操作数称为立即数,为了与直接地址相区别,立即数前必须加“#”号。立即寻址常用来给寄存器赋值。3.3.3 直接寻址(Direct Addressing,DIR)直接寻址:指令中直接给出操作数地址的
7、寻址方式。3.3.4 扩展寻址(Extended Addressing,EXT)扩展寻址:指令中直接给出操作数完整16位地址的寻址方式。,基于HCS12的嵌入式系统设计,3.3 寻址方式(2),3.3.5 相对寻址(Relative Addressing,REL)相对寻址只出现在相对转移指令(relative branch instruction)中。相对寻址:当前的PC值加上指令中规定的地址偏移量relx,构成操作数的实际地址的寻址方式。目的地址=源地址+转移指令字节数+relx偏移量为8位、9位和16位带符号二进制补码。短转移的偏移量为$80$7F(-128+127);循环控制指令支持9位
8、偏移量,其数值为$100$0FF(-256+255);长转移的偏移量为$8000$7FFF(-3276832767)。如果偏移量为0,则CPU立即执行紧接着转移指令的下一条指令。程序利用转移指令返回到指令首址,所以程序就在该行落入陷阱,称为“原地踏步”。这是一种终止程序的普通方法,广泛用于程序调试。3.3.6 变址寻址(Indexed Addressing,IDX)变址寻址是CPU12的主要寻址方式,也是本节的重点和难点。变址寻址是以某个寄存器的内容为基本地址,然后在这个基本地址上加上地址偏移量,形成操作数地址或存放操作数地址的地址,并将这个地址单元的内容作为指令的操作数。CPU12 共有4类
9、不同的变址寻址方式,这4类又可进一步分解成12种不同的变址寻址方式。3.3.6.1 常数偏移变址寻址(Constant Offset Indexed Addressing)常数偏移变址寻址:将变址寄存器的内容加上一个常数形成操作数地址。有三种不同的偏移量:5位、9位和16位。,基于HCS12的嵌入式系统设计,3.3 寻址方式(3),A、5位常数偏移变址寻址IDX(5-Bit Constant Offset Indexed Addressing)偏移量为5位带符号数,偏移量大小为:-16+15,5位偏移量隐含在后随字节中,有效地址为变址寄存器内容+5位地址偏移量。B、9位常数偏移变址寻址IDX1
10、(9-Bit Constant Offset Indexed Addressing)9位带符号偏移量的地址偏移范围:-256+255,偏移量的符号位在后随字节中,偏移量大小在扩展字节中,变址寄存器内容加上9位带符号常数偏移量作为操作数地址。C、16 位常数偏移变址寻址IDX2(16-Bit Constant Offset Indexed Addressing)有效地址由变址寄存器内容加上两个偏移量扩展字节形成,可以访问64KB地址空间中的任何单元。3.3.6.2 自动递增/递减变址寻址IDX(Autoincrement/Autodecrement Indexed Addressing)在CPU
11、12的变址寻址方式中,提供了4种方法自动改变基址寄存器的内容,并作为指令执行的一部分。变址寻址前或变址寻址后,变址寄存器中的数值可以加上或减去一个整数值,增加值的范围是00000111(+1+8),减少值范围是11111000(-1-8)。对于先递增或先递减的指令,变址寄存器内容在访问内存单元之前变化,相当于前面常数偏移变址寻址。而对于后递增或后递减指令,则是用变址寄存器中的初值访问内存单元,然后才改变变址寄存器中的内容。3.3.6.3 累加器偏移变址寻址IDX(Accumulator Offset Indexed Addressing)累加器偏移变址寻址:将变址寄存器中的内容与累加器中的无符
12、号偏移量相加,构成有效地址。为了使用这种寻址方式,偏移量必须先置于累加器中,累加器可以是A、B、D。,基于HCS12的嵌入式系统设计,3.3 寻址方式(4),间接变址寻址(Indirect Indexed Addressing)寄存器间接寻址:操作数地址是以寄存器名称的形式间接给出。间接变址寻址:变址寄存器中的内容与一个16位偏移量相加形成一个地址,但该地址并不是操作数的地址,它所指向的地址单元中的内容才是操作数的有效地址。偏移量既可以是一个16位的常数偏移量,也可以是累加器中的内容。A、16位常数偏移间接变址寻址IDX2(16-Bit Constant Indirect Indexed Ad
13、dressing)将由指令提供的16位偏移量与基址变址寄存器(base indexing register)的内容相加,形成一个地址(指针),指向一个存放操作数地址的单元。指令执行时,根据由基址和偏移量所形成的地址指针,首先到指定的地址单元中取得操作数地址,然后再根据操作数地址提取操作数。其有效地址为:effective address=(two offset extension bytes)+(X、Y、SP or PC)为了将这种寻址方式与16位常数偏移变址寻址方式加以区别,在指令助记符的操作数部分,用一个方括号括起来。B、累加器D间接变址寻址D,IDX)(Accumulator D Ind
14、exed-Indirect Addressing)将累加器D中的内容+基址寄存器的内容,形成一个地址指针,指向存放操作数地址的存储单元。指令执行时,根据基址寄存器和偏移寄存器D中的内容形成一个地址,到该地址单元中找到操作数地址,再由操作数地址取得操作数。其有效地址为:effective address=(D)+(X,Y,SP or PC)为了把这种寻址方式与累加器D偏移变址寻址方式区别开来,用一个方括号将指令助记符的操作数部分括起来。,基于HCS12的嵌入式系统设计,3.4 S12汇编指令系统(1),按指令助记符分类,S12共有169种不同的汇编指令。考虑到不同类型的寻址方式,指令数量达594
15、种。按照指令功能,可将指令分为以下几大类:数据传送指令、算术运算指令、逻辑运算指令、转移与子程序调用指令、中断指令、MCU控制指令、高级函数指令、模糊运算指令等。3.4.1 数据传送指令数据传送指令将数据从一处复制到另一处,包括:立即加载、寄存器之间的传送与交换、内存传送到寄存器、寄存器传送到内存、内存之间的传送和堆栈操作指令等。3.4.1.1 寄存器加载指令寄存器加载指令用于将立即数或内存中的操作数传送给寄存器,共6条指令,如表3.1所示。每条指令支持8种源操作数寻址方式:IMM、DIR、EXT、IDX、IDX1、IDX2、D,IDX、IDX2,派生出48条指令。,表3.2 有效地址加载指令
16、,表3.1 寄存器加载指令,3.4.1.2 有效地址加载指令有效地址加载指令可以用来将操作数地址分别传送到寄存器SP、X和Y中。共3条指令,如表3.2所示。采用3种变址寻址:IDX、IDX1、IDX2。指令可将SP、PC、X或Y的值加/减5位、9位或16位常数,或者加上A、B或D的内容,传送到寄存器SP、X和Y中。,基于HCS12的嵌入式系统设计,3.4 S12汇编指令系统(2),3.6.1.3 寄存器存储指令寄存器存储指令仅限于将寄存器内容送入内存单元,共6条指令,如表3.3所示。每条指令支持7种源操作数寻址方式:DIR、EXT、IDX、IDX1、IDX2、D,IDX、IDX2。3.4.1.
17、4 寄存器数据传送指令将源寄存器的内容传送到目的寄存器,共9条指令,如表3.4所示,均为固有寻址方式。实际上该组指令只有3条,其余指令是为兼容68HC11而保留的伪指令,由汇编程序自动汇编成对应的TFR指令,如表3.4中阴影部分所示。源寄存器和目的寄存器可以在9个寄存器中任意选择,包括MCU内部的两个暂存器TMP2和TMP3。其中涉及到TMP2和TMP3的指令是为了以前产品保留的指令,有些汇编程序可能视其为无效指令,但可以通过DC.B和DC.W在程序中直接嵌入这样的指令。,表3.3 寄存器存储指令,表3.4寄存器数据传送指令,基于HCS12的嵌入式系统设计,3.4 S12汇编指令系统(3),注
18、:R1和R2分别是寄存器A、B、CCR、D、X、Y、SP、TMP2、TMP3之一。但TMP3只能作为源寄存器,TMP2只能作为目的寄存器。TFR指令的数据传送规则是:(1)8位到8位或16位到16位,直接传送;(2)8位到16位,通过符号扩展变成16位后传送;TFR A,X等同于SEX A,X(3)16位到8位,舍弃高位,只传送低位。需要说明的是,数据从8位寄存器传送到16位寄存器,8位寄存器的内容传送到16位寄存器的低8位,S12自动在目的寄存器的最高有效字节中执行一次符号扩展。符号扩展的原则是,如果8位寄存器的最高位是0,则16位寄存器的高8位为$00;如果8位寄存器的最高位是1,则16位
19、寄存器的高8位为$FF。,3.4.1.5 寄存器数据交换指令将源寄存器内容与目的寄存器内容进行交换,共3条指令,如表3.5所示,均为固有寻址方式。实际上该组指令只有1条EXG指令,XGDX和XGDY指令是为兼容68HC11而保留的伪指令,由汇编程序自动汇编成对应的EXG指令,如表3.5中阴影部分所示。注:R1和R2分别是寄存器A、B、CCR、D、X、Y、SP、TMP2、TMP3之一。但TMP3只能作为第1操作数寄存器,TMP2只能作为第2操作数寄存器。,表3.5寄存器数据交换指令,基于HCS12的嵌入式系统设计,3.4 S12汇编指令系统(4),该指令可以在任意16位或8位寄存器之间交换数据,
20、规则是:(1)8位8位或16位16位,直接交换;(2)8位16位,将8位寄存器内容高8位零扩展成16位后,传送到16位寄存器,16位寄存器的低8位传送到8位寄存器;(3)16位8位,16位寄存器的低8位传送到8位寄存器,8位寄存器高8位补$00或$FF后,传送到16位寄存器。其中8位寄存器是A时,高8位补$00;8位寄存器是B或CCR时,高8位补$FF。,表3.8 内存数据移动指令,3.4.1.6 内存数据移动指令可以将源操作数(一个字或字节)送到目地地址,源操作数不变。这是S12仅有的两条不涉及内部寄存器而直接进行内存单元之间数据传送的指令,支持6种寻址方式:IMM-EXT、IMM-IDX、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Freescale 汇编 指令

链接地址:https://www.31ppt.com/p-6505989.html