资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章第五章 HC08 CPU与汇编基础与汇编基础主要内容主要内容v HC08 CPU基本构成 v 寻址方式 v 指令系统 v HCS08 CPU与HC08 CPU的比较 v 08汇编语言基础 鹰撰底刺臻坍巳贸腮营糊惋井多亲艘姑酶赣钥贯韦惜耽棚誊凳掉集牺郎颐飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.1 HC08 CPU基本构成基本构成M68HC08系列单片机的各种型号的系列单片机的各种型号的CPU均使用均使用HC08 CPU,有时,有时也将也将HC08 CPU称为称为CPU08,它具有如下主要特点:,它具有如下主要特点: 目标代码与目标代码与M68HC05系列单片机向上兼容;系列单片机向上兼容; 具有具有16位堆栈指针位堆栈指针SP; 具有具有16位变址寄存器位变址寄存器HX; 8MHz CPU内部总线频率;内部总线频率; 64KB程序程序/数据存储器空间;数据存储器空间; 16种寻址方式;种寻址方式; 不经过累加器不经过累加器A的存储器之间数据直接传送;的存储器之间数据直接传送; 快速快速8位位8位乘法指令、快速位乘法指令、快速16位与位与8位相除指令,增强的位相除指令,增强的BCD指令;指令; 模块化结构,可扩展的内部总线定义可使寻址范围超过模块化结构,可扩展的内部总线定义可使寻址范围超过64KB; 低功耗的低功耗的STOP、WAIT模式。模式。潮岳斩专敝易糕布桩甸谣筷关咋霄造衅仲淀辰臆亲普寿程追华膜檄沉击辑飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.1 HC08 CPU基本构成HC08 CPU中有中有5个寄存器:个寄存器:(1)累加器)累加器A(Accumulator) 累加器累加器A是是8位通用寄存器,用来存放操作数和运算结果。数据读位通用寄存器,用来存放操作数和运算结果。数据读取时,累加器取时,累加器A用于存放从存储器读出的数据;数据写入时,累加器用于存放从存储器读出的数据;数据写入时,累加器A用于存放准备写入存储器的数据。在执行算术、逻辑操作时,累加器用于存放准备写入存储器的数据。在执行算术、逻辑操作时,累加器首先存放一个操作数,执行完毕时累加器存放操作结果。累加器首先存放一个操作数,执行完毕时累加器存放操作结果。累加器A是是指令系统中最灵活的一个寄存器,各种寻址方式均可对之寻址。复位指令系统中最灵活的一个寄存器,各种寻址方式均可对之寻址。复位时,累加器的内容不受影响。时,累加器的内容不受影响。 妖育意应美专莽刨届辰鸡卓国宙闸妆攫瘸抠档琶蜜篆梦木酿舶遍滓亡彤此飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.1 HC08 CPU基本构成(2)变址寄存器)变址寄存器HX(Index Register) HC08 CPU的的变变址址寄寄存存器器HX是是16位位寄寄存存器器,H是是高高8位位,X是是低低8位位,可可单单独独使使用用。变变址址寄寄存存器器HX主主要要用用于于变变址址寻寻址址方方式式中中确确定定操操作作数数的的地地址址,也也可可以以用用来来存存放放临临时时数数据据,作作为为一一般般寄寄存存器器使使用用。复复位位时时,高高8位被清零。位被清零。(3)堆栈指针)堆栈指针SP(Stack Pointer) SP是指向下一个栈地址的是指向下一个栈地址的16位寄存器,堆栈指针位寄存器,堆栈指针SP采用递减的采用递减的结构,即进栈时结构,即进栈时SP减减1,出栈时,出栈时SP加加1。复位时,。复位时,SP的初值为的初值为$00FF(前置符号(前置符号$表示十六进制数,下同)。栈指针复位指令表示十六进制数,下同)。栈指针复位指令(RSP)可将)可将SP的低的低8位置为位置为$FF,而不影响高,而不影响高8位。位。 在堆栈指针作为在堆栈指针作为8位或位或16位的偏移量寻址方式中,位的偏移量寻址方式中,SP充当变址寄充当变址寄存器功能,存器功能,CPU利用利用SP的内容确定操作数的条件地址。的内容确定操作数的条件地址。 卷洼驴稿黍硒泼将峦港沫党酗革叶门梗翰礼俺撮恫开杠杠潞障盏艘眼疵铀飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.1 HC08 CPU基本构成(4)程序计数器)程序计数器PC(Program Counter) 程序计数器程序计数器PC也是也是16位的,可寻址范围达位的,可寻址范围达64KB。PC存放下一条存放下一条指令的地址,在执行转移指令时存放转移地址,在执行中断指令时存指令的地址,在执行转移指令时存放转移地址,在执行中断指令时存放中断子程序入口地址。复位时,程序计数器放中断子程序入口地址。复位时,程序计数器PC装入地址装入地址$FFFE和和$FFFF中的内容。一般地,地址中的内容。一般地,地址$FFFE和和$FFFF中的内容是复位的入中的内容是复位的入口地址,这样,复位后,程序能够从复位入口地址开始执行程序。复口地址,这样,复位后,程序能够从复位入口地址开始执行程序。复位入口地址也称复位向量地址或复位矢量地址(位入口地址也称复位向量地址或复位矢量地址(Reset vector address),意味着复位状态过后,),意味着复位状态过后,PC指向该处,从这里执行程序。指向该处,从这里执行程序。(5)条件码寄存器)条件码寄存器CCR(Condition Code Register) 条件码寄存器条件码寄存器CCR是是8位的寄存器(见图位的寄存器(见图5-1),其中),其中5位(除了位(除了中断屏蔽位中断屏蔽位I)用于指示刚执行完指令的结果状态,这些位可由程序来)用于指示刚执行完指令的结果状态,这些位可由程序来测试。第测试。第6位(位(D6)和第)和第5位(位(D5)永远为)永远为1,其余位有具体的含义。,其余位有具体的含义。磕嗽疮素拢溺柱锈勺鹊未络偿捏捌叉渝校擂脓镇絮撞虹彤籽娃瞬曾楼身钎飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.1 HC08 CPU基本构成HC08 CPU的寄存器的寄存器累加器累加器A变址寄存器变址寄存器H:X堆栈指针堆栈指针SP程序计数器程序计数器PC条件码寄存器条件码寄存器CCR进位进位/借位标志借位标志零标志零标志负标志负标志中断屏蔽位中断屏蔽位半进位标志半进位标志溢出标志溢出标志7 015 H 8 7 X 015 PCH 8 7 PCL 07 0V 1 1 H I N Z C15 SPH 8 7 SPL 0返回返回株叶店积舱货空昔翔扼酪椎臂次吠阔婚殖剑腮摇贸娟新蹲呼殊扇馅费熟献飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.1 HC08 CPU基本构成5.2 寻址方式寻址方式(1)内在寻址方式)内在寻址方式(INH,Inherent addressing mode) 内在寻址,是指那些在指令中已经包含了操作数所在之处。内在寻内在寻址,是指那些在指令中已经包含了操作数所在之处。内在寻址的指令是没有明确指出操作数的指令,操作数由指令隐含,且为单字址的指令是没有明确指出操作数的指令,操作数由指令隐含,且为单字节指令。这类指令只是执行内在的数据操作。例如累加器加节指令。这类指令只是执行内在的数据操作。例如累加器加1指令指令INCA、中断返回指令中断返回指令RTI、停止指令、停止指令STOP和置进位标志和置进位标志SEC等。等。(2)立即寻址方式)立即寻址方式(IMM,Immediate addressing mode) 立即寻址,是在指令中直接给出操作数。这种指令是双字节指令,立即寻址,是在指令中直接给出操作数。这种指令是双字节指令,第一个字节是操作码,第二个字节是参与操作的立即数。立即寻址指令第一个字节是操作码,第二个字节是参与操作的立即数。立即寻址指令通常是对立即数和累加器内容或变址寄存器内进行操作。下述指令属于通常是对立即数和累加器内容或变址寄存器内进行操作。下述指令属于IMM寻址方式。寻址方式。 LDA #$FC ; 把十六进制数把十六进制数$FC放入累加器放入累加器A中中当荣戎盆荡叭彪夜戌假敢仑涤厘雪沪个渤冻钨毕退蚀俊网眺貌聚蹋搂俄咋飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(3)直接寻址方式)直接寻址方式(DIR,Direct addressing mode)直接寻址指令,字长二字节,它可以对存储器的起始直接寻址指令,字长二字节,它可以对存储器的起始256个地址个地址($0000$00FF,叫内存直接页或内存第,叫内存直接页或内存第0页)进行访问。指令的第一页)进行访问。指令的第一个字节是操作码,第二个字节是操作数地址。在直接寻址中,个字节是操作码,第二个字节是操作数地址。在直接寻址中,CPU自动自动把把$00作为操作数高位地址,第二个字节作为操作数的低位地址,其寻作为操作数高位地址,第二个字节作为操作数的低位地址,其寻址范围为址范围为$0000$00FF。下述指令属于。下述指令属于DIR寻址方式。寻址方式。LDA $60 ;将存储单元将存储单元$60中的数取至累加器中的数取至累加器ABRSET和和BRCLR是是2条很特别的条很特别的3字节指令,它们用直接寻址方式字节指令,它们用直接寻址方式取得操作数,用相对寻址方式指明转移目的地址。例如:取得操作数,用相对寻址方式指明转移目的地址。例如:BRCLR 3,$50,A1 ;若存储单元若存储单元$50的第的第3位位=0则转至标号则转至标号A1处处BRSET 3,$50,A1 ;若存储单元若存储单元$50的第的第3位位=1则转至标号则转至标号A1处处整脯袜蹿颁沏稀赠镀遵柯脾派铆袜恋凄你追酣雪蚤绒雁囱澡眩俗砍蔷伏铱飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(4)扩展寻址方式)扩展寻址方式(EXT,Extended addressing mode) 扩展寻址指令是三字节指令,可访问存储器中的任何地址。在这种扩展寻址指令是三字节指令,可访问存储器中的任何地址。在这种指令中,第一个字节是操作码,第二个字节是操作数的高字节地址,第指令中,第一个字节是操作码,第二个字节是操作数的高字节地址,第三个字节是低字节地址。扩展寻址是相对于直接寻址方式而言的,其寻三个字节是低字节地址。扩展寻址是相对于直接寻址方式而言的,其寻址范围为址范围为$0000$FFFF,比直接寻址范围大得多。下述指令属于,比直接寻址范围大得多。下述指令属于EXT寻寻址方式,因为它的地址已经超过了址方式,因为它的地址已经超过了DIR寻址方式的范围。寻址方式的范围。 LDA $023D ;将存储单元将存储单元$023D中的数取至累加器中的数取至累加器A(5)无偏移量变址方式)无偏移量变址方式(IX,Indexed, no offset addressing mode) 无偏移量变址的指令是单字节指令。在这种指令中,变址寄存器无偏移量变址的指令是单字节指令。在这种指令中,变址寄存器HX中的内容是操作数的地址。所以无偏移量变址指令可以对中的内容是操作数的地址。所以无偏移量变址指令可以对$0000$FFFF地址进行寻址。下述指令属于地址进行寻址。下述指令属于IX寻址方式。寻址方式。 LDA ,X ;从变址寄存器从变址寄存器HX指向的存储器单元中取数到累加器指向的存储器单元中取数到累加器A中中 COM ,X ;将变址寄存器将变址寄存器HX指向的存储单元数据取反指向的存储单元数据取反涣氮么挣吊臣领旷情暗梧吭谤茧塌玉纲没逆滚牵萨张地嗅倘州瀑仲吃赢赋飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(6)八位偏移量变址方式)八位偏移量变址方式(IX1,Indexed,8-bit offset addressing mode) 8位偏移量变址是双字节指令,位偏移量变址是双字节指令,CPU把变址寄存器把变址寄存器HX的内容和指令的内容和指令第二个字节内容相加,其和便是操作数地址。下述指令属于第二个字节内容相加,其和便是操作数地址。下述指令属于IX1寻址方寻址方式。式。 STA $80,X ;将将A中的数存至地址为中的数存至地址为HX+$80的存储器单元中的存储器单元中 INC $80,X ;将地址为将地址为HX+$80的存储器单元的内容加的存储器单元的内容加1(7)十六位偏移量变址方式)十六位偏移量变址方式(IX2,Indexed,16-bit offset addressing mode) 该变址方式指令是三字节指令,可访问存储器的任何地址。该变址方式指令是三字节指令,可访问存储器的任何地址。CPU将将变址寄存器变址寄存器HX的内容与指令的第二、三字节相加,和为操作地址。在的内容与指令的第二、三字节相加,和为操作地址。在第二、三字节中,第二字节是高位地址,第三字节是低位地址。下述指第二、三字节中,第二字节是高位地址,第三字节是低位地址。下述指令属于令属于IX2寻址方式。寻址方式。 STA $280,X ;把把A中的数存放到以中的数存放到以HX+$280为地址的存储单元中为地址的存储单元中 INC $280,X ;把以把以HX+$280为地址的存储器单元的内容加为地址的存储器单元的内容加1 暗拆极狂弄涉菜勤绣座固灾濒荐舍吧腥藻技衡获羽邦判滋桶抖终枷猩贤格飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(8)相对变址寻址方式)相对变址寻址方式(REL,Relative addressing mode)相对变址只用于转移指令。当转移条件满足时,相对变址只用于转移指令。当转移条件满足时,CPU将指令中的偏将指令中的偏移量和程序计数器移量和程序计数器 PC的内容相加,得出转移的目的地址。如果转移条的内容相加,得出转移的目的地址。如果转移条件不满足,则件不满足,则CPU执行下一条指令。转移指令中的偏移量是带符号的,执行下一条指令。转移指令中的偏移量是带符号的,且用一字节表示,因此转移指令的偏移量为且用一字节表示,因此转移指令的偏移量为-127+128。偏移量用二进。偏移量用二进制补码表示。相对变址转移指令的转移范围在下一条指令地址的制补码表示。相对变址转移指令的转移范围在下一条指令地址的-127+128之间。下述指令属于之间。下述指令属于REL寻址方式。寻址方式。BRA A1 ;无条件转向标号无条件转向标号A1处执行处执行BSR L1 ;调用标号调用标号L1处的子程序处的子程序特别说明特别说明:以上:以上8种寻址方式在种寻址方式在M68HC05系列中也具有,以下系列中也具有,以下8种种为为M68HC08系列单片机新增的寻址方式,其中系列单片机新增的寻址方式,其中912为存储器到存储器为存储器到存储器的数据传送寻址方式,的数据传送寻址方式,1314是含有加是含有加1的变址寻址,的变址寻址,1516为堆栈寻为堆栈寻址。址。炒蛰朋谎禄四痞拼巾援竹褐侣李蔑灶桑坞郁脂傅挑咆赘召滁僻远彰繁绿臂飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(9)存储器:直接地址)存储器:直接地址直接地址寻址方式直接地址寻址方式(DD, Direct to direct addressing Mode)在存储器的四种数据直接传送的寻址方式中,欲传送的数据直接从在存储器的四种数据直接传送的寻址方式中,欲传送的数据直接从源存储单元送向目的存储单元,勿需寄存器中转。在本寻址方式中,源源存储单元送向目的存储单元,勿需寄存器中转。在本寻址方式中,源地址与目标地址由指令直接给出。只有一条指令为地址与目标地址由指令直接给出。只有一条指令为DD寻址方式:寻址方式:MOV N1,N2 ;把内存变量把内存变量N1赋值给内存变量赋值给内存变量N2等同于下列两条指令,但上述指令不影响累加器等同于下列两条指令,但上述指令不影响累加器A。LDA N1STA N2等同于等同于C语言语句:语言语句:N2=N1;特别说明特别说明:这里设:这里设N1、N2为内存变量,下同。为内存变量,下同。 掘驮婚妓央真赌彬慨泽矽徽从岩天舒定倪焉之慧佃蛋舱季峡瓢疑潜凌贞庭飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(10)存储器:直接地址)存储器:直接地址变址、变址加变址、变址加1的寻址方式的寻址方式(DIX+,Direct to indexed with post increment addressing Mode)源地址为直接地址,目标地址在源地址为直接地址,目标地址在HX中。把源地址的数据存至目标中。把源地址的数据存至目标地址后,地址后,HX+1HX。仅有一条指令为。仅有一条指令为DIX+寻址方式。寻址方式。MOV $80,X+ ;($80)(HX),HX+1HX等同于下列三条,但上述指令不影响累加器等同于下列三条,但上述指令不影响累加器A,主要用于内存或端,主要用于内存或端口数据填充一个表格。口数据填充一个表格。LDA $80 ;($80)ASTA ,X ;A(HX)AIX #!1 ;HX+1HX特别说明特别说明:操作说明栏中,(:操作说明栏中,($80)表示地址为)表示地址为$80的内存单元内的内存单元内容。容。(HX)表示地址为表示地址为HX值的内存单元。若内存单元作为源操作数,表值的内存单元。若内存单元作为源操作数,表示从该内存单元中取数,若内存单元作为目的操作数,表示将数存至该示从该内存单元中取数,若内存单元作为目的操作数,表示将数存至该内存单元。内存单元。 荡屁颐谤风黔醒龙录概袄贰俯策暗感萤洒三塌火奠擎骚屯惠坡膘闭谊宦整飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(11)存储器:立即数)存储器:立即数直接地址寻址方式直接地址寻址方式(IMD,Immediate source to direct destination addressing Mode)该寻址方式,将立即数存入直接地址,指令给出的地址即作为目的该寻址方式,将立即数存入直接地址,指令给出的地址即作为目的地址,在指令书写中,立即数位于直接地址之前,下述指令为地址,在指令书写中,立即数位于直接地址之前,下述指令为IMD寻址寻址方式。方式。MOV #!86,N1 ;将立即数将立即数!86赋值给内存变量赋值给内存变量N1等同于等同于C语言语句:语言语句:N1=86; 浓轰匝轿枪朝纺劳漫沼兆昭岔婴戴戍圆恍闽抖奠本后绒灯冀疗柄垫施冉距飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(12)存储器:变址)存储器:变址直接地址、变址加直接地址、变址加1的寻址方式的寻址方式(IX+D,Indexed with post increment to direct addressing Mode)HX为源地址,直接地址为目的地址,把源地址的数据存至目标地为源地址,直接地址为目的地址,把源地址的数据存至目标地址后后,址后后,HX+1HX。仅有一条指令为。仅有一条指令为IX+D寻址方式。寻址方式。MOV X+,$80 ;(HX)($80),HX+1HX等同于下列三条指令,但上述指令不影响累加器等同于下列三条指令,但上述指令不影响累加器A,主要用于向端,主要用于向端口传送内存数据块。口传送内存数据块。LDA ,X ;(HX)ASTA $80 ;A($80)AIX #!1 ;HX+1HX券埂橱籽砚拉炮拱贩凿锹难犊剧酣阮撩态哨贫篱洛遵酪孟幽擂掣射议品绘飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(13)无偏移量变址、变址加)无偏移量变址、变址加1寻址方式寻址方式(IX+,Indexed,no offset, post increment addressing mode) 在这种寻址方式与无偏移量变址寻址方式在这种寻址方式与无偏移量变址寻址方式IX的区别在于,在本寻址的区别在于,在本寻址方式中多了方式中多了HX+1HX的操作。只有一条指令属于的操作。只有一条指令属于IX+寻址方式,该指寻址方式,该指令先完成比较操作,但不论条件是否满足,均有令先完成比较操作,但不论条件是否满足,均有HX+1HX。通常用于。通常用于寻找一段存储区中是否有与寻找一段存储区中是否有与A中相等的数。中相等的数。 CBEQ X+,rel ;若若A=(HX)则转移,)则转移,HX+1HX(14)八位偏移量变址、变址加)八位偏移量变址、变址加1寻址方式寻址方式(IX1+,Indexed, 8-bit offset, post increment addressing mode) 与上条指令的差别是:目的操作数的地址为与上条指令的差别是:目的操作数的地址为8位直接地址位直接地址+(HX),),属于属于IX+寻址方式的指令也只有一条。寻址方式的指令也只有一条。 CBEQ addr8,X+,rel ;若若A=(HX+addr8)则转移,则转移,HX+1HX池税原咆肃柬与鸥燥鸿范篱惶明坞时缅善父陕旨体焦攫汾忆钟篷拂邮哨阳飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式(15)八位偏移量堆栈寻址方式)八位偏移量堆栈寻址方式(SP1,Stack pointer,8-bit offset addressing mode) 8位偏移量堆栈寻址,是将指令给出的位偏移量堆栈寻址,是将指令给出的8位直接地址与堆栈指针位直接地址与堆栈指针SP相加形成操作数的地址,下列指令属于相加形成操作数的地址,下列指令属于SP1寻址方式。寻址方式。 LDA !2,SP ;(2+SP) A(16)十六位偏移量堆栈寻址方式)十六位偏移量堆栈寻址方式(SP2,Stack pointer,16-bit offset addressing mode) 16位偏移量堆栈寻址,将指令给出的位偏移量堆栈寻址,将指令给出的16位直接地址与堆栈指针位直接地址与堆栈指针SP相加形成操作数的地址,下列指令属于相加形成操作数的地址,下列指令属于SP2寻址方式。寻址方式。 LDA $130,SP ;将地址将地址$130+SP中的数取至中的数取至A中中 特别说明特别说明:实际编程时,程序员不必考虑:实际编程时,程序员不必考虑8位偏移量堆栈寻址还是位偏移量堆栈寻址还是16位偏移量堆栈寻址,汇编程序会自动识别,它们的主要区别在于汇编位偏移量堆栈寻址,汇编程序会自动识别,它们的主要区别在于汇编产生的指令长度不一样。产生的指令长度不一样。 返回返回碍蒋淡边个硝尼立齿彤怔根逢富静搪马偷盏甩撇摩洼较民健逾芝张置澡饥飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.2 寻址方式5.3 指令系统指令系统HC08 CPU指令简表指令简表 :类 型型保保 留留 字字含含 义数据数据传送送类LDALDA、LDXLDX、LDHXLDHX取数到取数到A A、X X、HXHX中中STASTA、STXSTX、STHXSTHX存存A A、X X、HXHX到内存到内存PSHAPSHA、PSHXPSHX、PSHHPSHH、PULAPULA、PULXPULX、PULHPULH进栈、出、出栈TAPTAP、TPATPA、TAXTAX、TXATXA、TXSTXS、TSXTSX寄存器寄存器间传送送MOVMOV存存储器器单元之元之间传送送算算术运算运算类ADDADD、ADCADC、SUBSUB、SBCSBC、MULMUL、DIVDIV加、减、乘、除加、减、乘、除INCINC、INCAINCA、INCXINCX、DECDEC、DECADECA、DECXDECX加加1/1/减减1 1COMCOM、COMACOMA、COMXCOMX、NEGNEG、NEGANEGA、NEGXNEGX求反求反/ /取取补CMPCMP、CPXCPX、CPHXCPHX比比较CLRCLR、CLRACLRA、CLRXCLRX清零清零TSTTST、TSTATSTA、TSAXTSAX测试是否是否为0 0AISAIS、AIXAIXSPSP、HXHX增加增加逻辑运算运算类ANDAND、ORAORA、EOREOR与、或、异或与、或、异或干龄值瞅者奇廉酚铃闲雁描燕挥豪淀酉揖港呕瓮驳吹汝飞圆朱缎粥液照融飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.3 指令系统HC08 CPU指令简表(续):指令简表(续):位操作位操作类指令指令BITBIT、BCLRBCLR、BSETBSET、CLCCLC、SECSEC、CLICLI、SEISEI位位测试、清位、置位、清位、置位移位移位类指令指令ASLASL、ASLAASLA、ASLXASLX、LSLLSL、LSLALSLA、LSLXLSLXASRASR、ASRAASRA、ASRXASRX、LSRLSR、LSRALSRA、LSRXLSRX算算术左移、左移、逻辑左移左移算算术右移、右移、逻辑右移右移ROLROL、ROLAROLA、ROLXROLX、RORROR、RORARORA、RORXRORX循循环左移、循左移、循环右移右移程序控制程序控制类BCCBCC、BCSBCS、BHCCBHCC、BHCSBHCS、BILBIL、BIHBIH、BMCBMC、BMSBMS、BHIBHI、BHSBHS、BLOBLO、BLSBLS、BEQBEQ、BNEBNEBPLBPL、BMIBMI、BGEBGE、BGTBGT、BLEBLE、BLTBLT、BRCLRBRCLR、BRSETBRSET、BRABRA一般一般转移指令移指令CBEQCBEQ、CBEQACBEQA、CBEQXCBEQXDBNZDBNZ、DBNZADBNZA、DBNZXDBNZX比比较相等相等转移移减减1 1不不为0 0转移移JMPJMPJSRJSR、BSRBSR、RTSRTS无条件跳无条件跳转调子程序、子程序返回子程序、子程序返回其它指令其它指令SWISWI、RTIRTI、DAADAA、NSANSA、RSPRSP、NOPNOP、BRNBRN、STOPSTOP、WAITWAIT蔫淫霍筋沸兔晒绍残筋利穴铰疽喂敬沂寺距镁穿资察裔狈干胳吩躁腮撵缠飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.3 指令系统5.3.1 数据传送类指令数据传送类指令5.3.2 算术运算类指令算术运算类指令5.3.3 逻辑运算类指令逻辑运算类指令5.3.4 位操作类指令位操作类指令5.3.5 移位类指令移位类指令5.3.6 程序控制类指令程序控制类指令5.3.7 其它指令其它指令返回返回兑拇苹浩埃炭茁把眠醚缠爪巩磷舱辖唉荚晦磋朱啦丑朴惟榴荚叶潘稚厌剿飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.3 指令系统5.4 HCS08 CPU与与HC08 CPU的比较的比较Freescale于于2004年推出了年推出了08系列单片机的增强系列系列单片机的增强系列MCS08系列。系列。MCS08系列单片机的内核使用系列单片机的内核使用HCS08 CPU。与。与HC08 CPU相比,相比,HCS08 CPU速度更快,内部总线频率由最高速度更快,内部总线频率由最高8MHz提高提高到到20 MHz,即执行一条基本指令的时间是,即执行一条基本指令的时间是50ns。HCS08 CPU共有共有141条基本指令,比条基本指令,比HC08 CPU增加了增加了1条基本条基本指令(即指令(即BGND这一条)。这这一条)。这141条基本指令加上寻址方式形成了条基本指令加上寻址方式形成了280条具体指令,比条具体指令,比HC08 CPU增加了增加了10条具体指令。条具体指令。 骨槛蔡革佩聘撵置砌悬带资珐梆蒜栈蔓锗妻戮屹钾佰替秘银用骄里妄履雕飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较HCS08 CPU比比HC08 CPU增加的指令如下:增加的指令如下:(1)对)对LDHX指令,增加了指令,增加了EXT、IX、IX1、IX2、SP1寻址方式寻址方式 指令 操作 寻址方式 LDHX addr16 (addr16: addr16+1)HX EXT LDHX ,X (HX:HX+1)HX IX LDHX addr16,X (addr16+HX: addr16+HX+1)HX IX2 LDHX addr8,X (addr8+HX: addr8+HX+1)HX IX1 LDHX addr8,SP (addr8+SP: addr8+SP+1)HX SP1 (2)对)对STHX、CPHX增加了增加了EXT、SP1寻址方式寻址方式 STHX addr16 HX(addr16: addr16+1) EXT STHX addr8,SP HX(addr8+SP: addr8+SP+1) SP1 CPHX addr16 HX-(addr16:addr16+1) EXT CPHX addr8,SP HX-(addr8+SP:addr8+SP+1) SP1 (3)增加了)增加了BGND(background)指令,用于调试)指令,用于调试 BGND 用于背景调试 INH 返回返回虾显壹削料承善抡竞惊瑶揩溶哄晕蚁滤襄寻颖嚣门吼刷颈炔驻办舆盏宝苞飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较5.5 08汇编语言基础汇编语言基础5.5.1 08汇编源程序格式汇编源程序格式 把汇编语言写成的源程序把汇编语言写成的源程序“翻译翻译”成机器语言的工具叫成机器语言的工具叫汇编程序汇编程序或或编译器编译器(Assembler),以下统一称作编译器。),以下统一称作编译器。 汇编语言源程序可以用通用的文本编辑软件书写编辑,以汇编语言源程序可以用通用的文本编辑软件书写编辑,以ASCII码码形式存盘。具体的编译器对汇编语言源程序的格式有一定的要求,同形式存盘。具体的编译器对汇编语言源程序的格式有一定的要求,同时,编译器除了识别单片机的指令系统外,为了能够正确地产生目标时,编译器除了识别单片机的指令系统外,为了能够正确地产生目标代码以及方便汇编语言的编写,编译器还提供了一些在汇编时使用的代码以及方便汇编语言的编写,编译器还提供了一些在汇编时使用的命令、操作符号,在编写汇编程序时,也必须正确使用它们。由于编命令、操作符号,在编写汇编程序时,也必须正确使用它们。由于编译器提供的指令仅是为了更好地做好译器提供的指令仅是为了更好地做好“翻译翻译”工作,并不产生具体的工作,并不产生具体的机器指令,因此这些指令被称为机器指令,因此这些指令被称为伪指令伪指令(Pseudo Instruction)。)。 汇编语言源程序以行为单位进行设计,每一行最多可以包含以下汇编语言源程序以行为单位进行设计,每一行最多可以包含以下四个部分:四个部分:标号标号操作码操作码操作数操作数注释注释少辈孺檀砍剪谩验址炬余萌例冶灌靛赵芜邢儡缕徐铜俭寻弘坦阐篡污佑走飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较(1)标号()标号(Labels)对于标号有下列要求及说明:对于标号有下列要求及说明:如果一个语句有标号,则标号必须从第一列开始书写。如果一个语句有标号,则标号必须从第一列开始书写。可以组成标号的字符有:字母可以组成标号的字符有:字母AZ、数字、数字09、下划线、下划线“_”、美元、美元符号符号“$”,但开头的第一个符号不能为数字和,但开头的第一个符号不能为数字和$。08编译器不区分标号中字母的大小写。编译器不区分标号中字母的大小写。标号应小于标号应小于16个字符。个字符。标号后可以带冒号标号后可以带冒号“:”,也可以不带冒号。,也可以不带冒号。一个标号在一个程序中只能定义一次,不能通过编译。一个标号在一个程序中只能定义一次,不能通过编译。若一行中第一个字符是星号若一行中第一个字符是星号“*”,这是标号,表明该行为注释。,这是标号,表明该行为注释。一行语句若只有标号,编译器将把当前程序计数器的值赋给该标号。一行语句若只有标号,编译器将把当前程序计数器的值赋给该标号。若希望更多的编译器能够识别,建议标号长度小于若希望更多的编译器能够识别,建议标号长度小于8个字符。个字符。 “#”表示立即数。表示立即数。 沧怔贡痔彦煌意嘶它晶懒贬秒撇完枉联萎仿容冯贮重城酝睁孵汇乒滤汝胎飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较(2)操作码()操作码(Opcodes) 操作码包括指令码以及后面即将介绍的操作码包括指令码以及后面即将介绍的08编译器可以识别的伪指令编译器可以识别的伪指令码。对于有标号的行,必须用至少一个空格或制表符(码。对于有标号的行,必须用至少一个空格或制表符(TAB)将标号与)将标号与操作码隔开。对于没有标号的行,不能从第一列开始写指令码,应以空操作码隔开。对于没有标号的行,不能从第一列开始写指令码,应以空格或制表符(格或制表符(TAB)开头。)开头。08编译器不区分操作码中字母的大小写。编译器不区分操作码中字母的大小写。 (3)操作数()操作数(Operands) 操作数可以是地址、标号或指令码定义的常数,也可以是由伪运算操作数可以是地址、标号或指令码定义的常数,也可以是由伪运算符构成的表达式。符构成的表达式。08编译器识别下列伪运算符:加(编译器识别下列伪运算符:加(+)、减()、减(-)、乘)、乘(*)、除()、除(/)、特殊除()、特殊除(,允许被除数为,允许被除数为0,此时认为结果也为,此时认为结果也为0)、)、左移(左移()、取余数()、取余数(%)、与()、与(&)、或()、或(|)、异或()、异或()。)。如果超过一种运算或中间有插入空格应使用如果超过一种运算或中间有插入空格应使用把它们包含在内。把它们包含在内。(4)注释()注释(Comments) 注释即是说明文字,若是处于指令之后,则用空格和分号注释即是说明文字,若是处于指令之后,则用空格和分号“;”与与指令分开,若整行为注释文字,则在第一列写上指令分开,若整行为注释文字,则在第一列写上“;”或或“*”。 琢遍赵晨俱盂喀挑坍汗扬鸵啸趋影鼻出字啪履聚莆斑较谱屯乃府梢瞩直敛飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较5.5.2 08伪操作指令伪操作指令 08编译器常用伪指令如下。编译器常用伪指令如下。(1)存储区定义伪指令:)存储区定义伪指令:RMB n 定义了一个存储区,预留定义了一个存储区,预留n个字节。这里的个字节。这里的n可以为数字,也可以是可以为数字,也可以是已经定义过的符号。一般用于在已经定义过的符号。一般用于在RAM区用标号定义数据变量或缓冲区。区用标号定义数据变量或缓冲区。相当于高级语言的变量声明。相当于高级语言的变量声明。(2)字节常数定义伪指令:)字节常数定义伪指令:FCB m 定义程序区中(定义程序区中(Flash存储器区)的字节常数。该伪指令可以有一个存储器区)的字节常数。该伪指令可以有一个或多个用逗号或多个用逗号“,”隔开的操作数。每个操作数的值应在一个字节内,隔开的操作数。每个操作数的值应在一个字节内,编译器将它们分别存放在目标程序的一个地址中。编译器将它们分别存放在目标程序的一个地址中。m可以为数字、标号、可以为数字、标号、字符串。字符串必须用单引号或双引号括起来,实际定义其字符串。字符串必须用单引号或双引号括起来,实际定义其ASCII码。码。(3)双字节常数定义伪指令:)双字节常数定义伪指令:DW n 定义程序区放入目标程序的两个连续地址中,高字节在前,低字节定义程序区放入目标程序的两个连续地址中,高字节在前,低字节在后。在后。n可以是数字或标号。可以是数字或标号。释盘勃狡唆拥桓茂酞揪勒盂田症咀莱纺性瘩浪孤宪掐遗膘否蝎潍区味道豹飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较(4)赋值伪指令:)赋值伪指令: 标号:标号:EQU n 该伪指令把该伪指令把EQU后的操作数值赋给后的操作数值赋给EQU之前的标号,相当于高级语之前的标号,相当于高级语言中给一个常数名赋值,以便后面编程使用。例如:言中给一个常数名赋值,以便后面编程使用。例如: X1_1: EQU $50 ; 把把$50赋值给标号赋值给标号X1_1(5)指令存储定位伪指令:)指令存储定位伪指令:ORG n 定义程序或数据区的起始地址。该伪指令中的表达式定义程序或数据区的起始地址。该伪指令中的表达式n为数字或标号,为数字或标号,它告诉编译器,在指令汇编后,其后的指令在存储器中将从地址它告诉编译器,在指令汇编后,其后的指令在存储器中将从地址n开始开始向地址增大方向存放。对于向地址增大方向存放。对于M68HC08系列单片机来说,一个完整的可以系列单片机来说,一个完整的可以在编译后放入单片机执行的源程序,至少必须有一个在编译后放入单片机执行的源程序,至少必须有一个ORG语句使程序能语句使程序能够放入够放入Flash区。区。(6)INCLUDE 指示命令指示命令 INCLUDE是一个附加文件的链接指示命令,利用它,可以把另一个是一个附加文件的链接指示命令,利用它,可以把另一个源文件插入当前的源文件一起汇编,成为一个完整的源程序。源文件插入当前的源文件一起汇编,成为一个完整的源程序。 格式:格式:$INCLUDE“驱动器名:驱动器名:路径名路径名 文件名文件名”返回返回箩磅龙瘪索厂胃蹭肿滓恐卡肉植床减尖扼作吱慰敷贬搅谣赫轿条圾诲醉挝飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件5.4 HCS08 CPU与HC08 CPU的比较本章从程序员角度介绍本章从程序员角度介绍HC08 CPU的编程结构、寻址方式、指的编程结构、寻址方式、指令系统,比较令系统,比较HC08 CPU与与HCS08 CPU,给出,给出08汇编语言的格式、汇编语言的格式、伪指令以及汇编过程涉及的文件。要求掌握伪指令以及汇编过程涉及的文件。要求掌握CPU内部内部5个寄存器的使个寄存器的使用方法、理解用方法、理解16种寻址方式、记住常用指令、进行编程实践。种寻址方式、记住常用指令、进行编程实践。 本章小结本章小结返回返回骚雾吞当拆远蚂膏岳志赃匿遇小体傍教招像臆碱肥坊渠匀聋政庚匹燥虱铝飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件飞思卡尔8位单片机MC9S85HC8CPU与汇编基础ppt课件
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号