单片机原理及应用-指令系统与汇编语言程序设计_第1页
单片机原理及应用-指令系统与汇编语言程序设计_第2页
单片机原理及应用-指令系统与汇编语言程序设计_第3页
单片机原理及应用-指令系统与汇编语言程序设计_第4页
单片机原理及应用-指令系统与汇编语言程序设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

指令系统与汇编语言程序设计3.1CPU寄存器

丰富、强大、灵活,16位处理,共400多条按功能:数据传送、算术运算、逻辑运算、位操作、移位、控制、特殊等,

寻址方式多。S12CPU的内部寄存器3.2寻址方式

概念---CPU执行指令时确定操作数所在单元地址的方式。

S12有6大种寻址方式:(1)隐含寻址(INH)

如ROLA(循环左移,操作数A隐含在指令中)(2)立即数寻址(IMM)

如LDAA#$FF(将十六进制数FF调入A中,#表示)(3)直接寻址(DIR)

如LDAA$55(8位地址)(4)扩展寻址(EXT)

如LDAA$F03B(16位地址)(5)相对寻址(REL)SHIFT:LDAA#$55BRASHIFT(相对地址跳转)

(6)变址寻址(IDX)

特征:以变址寄存器X、Y、SP、PC的内容为基址,再加上或减去一个偏移值如LDD6,X;(6+X)D(A),(6+X+1)D(B)LDAB$FF,Y;($FF+Y)BLDAA$7200,PC;($7200+PC)A

(7)累加器变址寻址如LDAAB,X;(B+X)A

LDAAD,Y;(D+Y)A(8)自动增减的变址寻址如STAA1,-SP;SP-1SP,A(SP)(等效PSHA)LDX2,SP+;(SP)X,SP+2SP(等效PULX)(9)间接变址寻址(内存中再取新地址)如LDAA[9,X];((9+X))A

JMP[D,PC];((D+PC))PC

3.3指令概览3.3.1数据传送指令1、寄存器装载指令LoaD(注意:影响标志位)

LDAA#$1FLDAB$40B0LDD2,XLDY2,SP+2、寄存器存储指令:STore(影响标志位)

STAA$3FSTD-$2000,PCSTY2,+SP3、寄存器传送指令:Transfer注意:TAB、TBA影响标志位,TFR不影响标志位;实际只有上述3条指令,其余写法是为了兼容老版本MCU8位到16位:通过符号位扩展后传送16位到8位:舍弃高8位,只传送低8位例:TABTFRA,YTAP(相当于TFRA,CCR)4、寄存器交换指令:Exchange建议:平常使用时,不应使用位数不匹配的方式进行数据交换。5、内存数据传送指令:Move特点:1、不影响标志位2、允许地址与地址间传送3、传送方向是->(例MOVB$1000,$2000)4、16位数据结构是高位在前,低位在后(例:MOVW#$100A,$1100)MOVB1,X2,Y6、堆栈操作指令:PuSH、PULl特点:1、各寄存器都可以入栈、出栈2、可以做8位、16位操作3、入栈时SP-1(2),出栈时SP+1(2)注:P53表4-7包含了所有与堆栈相关的指令7、有效地址加载指令:LEA

LoadEffectiveAddressLEAX$100A,Y注:不影响标志位3.3.2算术运算类指令1、加、减法指令:ADD、SUBtract说明:ABAAddBtoA(A+B)SBASubtractBfromA(A–B)2、增量、减量指令

INCrement、DECrement3、比较、检测指令:CoMPara、TeST特点:1、CMP作减法,结果不回传,只影响标志位2、TST固定减0,结果不回传,只影响标志位4、求补运算指令:特点:1、用0去减该值2、不对符号位进行判断5、十进制调整指令:DAA

DecimalAdjustA特点:1、是在加法操作之后进行2、是对A进行压缩BCD码加法调整3、只有这一条调整指令例:LDD#$3275ADDB#$69EXGA,BDAAEXGA,BADCA#$26DAA结果:D=?$59446、符号扩展指令:SEX说明:

1、根据最高位的值将8位扩展为16位

2、源:A,B,CCR目的:D,X,Y,SP例:SEXA,X7、乘、除法指令

MULtiply、DIVide3.3.3逻辑指令1、基本逻辑运算指令2、清零和取反指令

CLear、COMplement3、位操作和位检测指令BCLR相当与AND操作(BCLR$20,#$0F)BSET相当与OR操作(BSET$20,#$0F)注意该指令与TST、AND的区别!4、移位指令LSLLogicShiftLeftASRArithmeticShiftRightRORROtateRight特点:

1、ASR补最高位,其余补02、移出去的进C标志3.3.4程序控制类指令1、无条件转移指令:

JMP(Jump)

可以在64K范围内跳转2、短分支跳转指令是在当前PC的值加上一个8位带符号数的偏移量,即跳转范围:-128~+127BRABRanchAlwaysBRNBRanchNeverBCCBranchifCarryClearBCSBranchifCarrySetBEQBranchifEQualBMIBranchifMinusBPLBranchifPlusBHIBranchifHigherBHSBranchifHigherorSameBLOBranchifLowerBGTBranchifGreaterThan

注意:1、只作检测,满足条件转移,不影响标志位2、结果不回传例:BRCLR$20,#$81,LP1BRSET$20,#$80,LP23、长分支跳转指令特点:

1、是在当前PC的值加上一个16位带符号数的偏移量,即跳转范围:-32768~+327672、与JMP指令实现的方法稍有不同,只能跳转32K距离。

3、与短跳转指令完全类似4、循环控制指令特点:1、不影响、不依赖标志位

2、转移范围是-256~+255ADD:LDX#$0B00LEAY4,XLDAB#4CLCLOOP:LDAAXADCA1,Y+STAA1,X+DBNEB,LOOP5、子程序调用与返回指令特点:1、BSR调用范围为-128~+1272、JSR调用范围为-32768~+32767,支持多种寻址方式,直接寻址方式必须在$0000~$00FF内(例:JSR$50)3、CALL用于调用64K以外的子程序,用RTC指令返回3.3.5中断指令特点:1、进入中断时,硬件自动保护现场,RTI指令将恢复现场及断点2、SWI指令不受I、X的限制,且执行时会自动将I置1(即自动关闭可屏蔽中断),中断向量表入口地址$FFF6-$FFF73、各硬件中断有固定的入口地址表,中断服务程序需用RTI指令返回3.3.6CPU控制类指令特点:1、STOP进入伪停机模式,时钟被关闭,功耗最低;当有中断或复位时被唤醒2、WAI进入等待模式,时钟仍在工作,当有中断或复位时被唤醒,唤醒速度快3.3.7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论