03章指令系统与汇编语言程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《03章指令系统与汇编语言程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 指令系统 汇编语言 程序设计 课件
- 资源描述:
-
1、兼容以前的兼容以前的S12 CPU 0 7 15 0 0 16 位 累 加 器 D 变 址 寄 存 器 X 变 址 寄 存 器 Y 堆 栈 指 针 SP 程 序 计 数 器 PC 条 件 码 寄 存 器 CCR 进 位/借 位 标 志 C 溢 出 标 志 V 零 标 志 Z 负 标 志 N 中 断 屏 蔽 位 I 半 进 位 标 志 H 非 屏 蔽 中 断 允 许 位 X 停 止(STOP)模 式 禁 止 位 S C V N Z I H X S 8 位 累 加 器 A 8 位 累 加 器 B 8 位 累 加 器 A、B 15 0 15 0 0 15 0 15 7 7 15 15 15 3.1
2、CPU内部寄存器内部寄存器 区别于区别于I/O寄存器寄存器;6个:个:D,X,Y,SP,PC,CCR 3.2 寻址方式寻址方式 概念概念-CPU执行指令时确定操作数所在单元地址的方式。执行指令时确定操作数所在单元地址的方式。操作数来自:寄存器、指令代码、存储单元(都有地址)操作数来自:寄存器、指令代码、存储单元(都有地址)S12(X)有有9大种寻址方式:大种寻址方式:(1)隐含寻址)隐含寻址(INH)如如 ROLA (循环左移,操作数(循环左移,操作数A隐含在指令中)隐含在指令中)(2)立即数寻址)立即数寻址(IMM)如如 LDDA#$FF (将十六进制数(将十六进制数FF调入调入A中,中,#
3、表示)表示)(3)直接寻址)直接寻址(DIR)如如 LDAA$55 (8位地址)位地址)(4)扩展寻址)扩展寻址(EXT)如如 LDAA$200A (16位地址)位地址)(5)相对寻址)相对寻址(REL)SHIFT:LDAA#$55 BRA SHIFT (相对地址跳转)(相对地址跳转)3.3 指令概览指令概览 分类分类(表表3-1):数据传送指令数据传送指令算数运算指令算数运算指令逻辑指令逻辑指令程序控制指令程序控制指令中断指令中断指令CPU控制指令控制指令其它指令其它指令注:注:1、浏览书中指令内容、浏览书中指令内容2、以后编程时再查阅、体会、以后编程时再查阅、体会助记方法:英语含义,如:助
4、记方法:英语含义,如:CLR =CleaRLDAA =LoaD Accumulator ASTAB =STore Accumulator BTAB =Transfer A to B MOVB =Move Byte BEQ =Branch EQual zero 3.3.1 数据传送类指令数据传送类指令1、寄存器加载指令、寄存器加载指令:LoaD (注:影响标志位)(注:影响标志位)LDAA#$1F LDAB$40B0 LDD 2,X LDY 2,SP+助记符功能操作LDAA将数据载入寄存器A(M)ALDAB将数据载入寄存器B(M)BLDD将数据载入寄存器D(M:M1)(A:B)LDS将数据载入寄
5、存器SP(M:M1)SPH:SPLLDX将数据载入变址寄存器X(M:M1)XH:XLLDY将数据载入变址寄存器Y(M:M1)YH:YLSTAA$3FSTD -$2000,PCSTY 2,+SP助记符功能操作STAA将寄存器A中内容送入内存单元(A)MSTAB将寄存器B中内容送人内存单元(B)MSTD将寄存器D中内容送入内存单元(A)M,(B)M1STS将堆栈SP中内容送入内存单元(SPH:SPL)M:M1STX将变址寄存器x中内容送人内存单元(XH:XL)M:M1STY将变址寄存器Y中内容送入内存单元(YH:YL)M:M1注意:注意:TAB、TBA影响标志位,影响标志位,TFR不不影响标志位;
6、影响标志位;实际只有上述实际只有上述3条指令,其余写法是为条指令,其余写法是为了兼容老版本了兼容老版本MCU8位到位到16位:通过符号位扩展后传送位:通过符号位扩展后传送16位到位到8位:舍弃高位:舍弃高8位,只传送低位,只传送低8位位例:TAB TFR A,Y TAP (相当于 TFR A,CCR)助记符功能操作TAB将寄存器A中内容送入寄存器B(A)BTBA将寄存器B中内容送人寄存器A(B)ATFR寄存器之间的数据传送(A、B、CCR、D、X、Y、SP)A、B、CCR、D、X、Y、SPTSX将寄存器SP中内容送入寄存器X(SP)XTSY将寄存器SP中内容送入寄存器Y(SP)YTXS 将寄存
7、器X中内容送入寄存器SP(X)SPTYS将寄存器Y中内容送入寄存器SP(Y)SPTPA将寄存器CCR中内容送人寄存器A(CCR)ATAP将寄存器A中内容送人寄存器CCR(A)CCR建议:平常使用时,不应使用位数不匹配的方式进行数据交换。建议:平常使用时,不应使用位数不匹配的方式进行数据交换。特点:特点:1、不影响标志位、不影响标志位2、允许地址与地址间传送、允许地址与地址间传送3、传送方向是、传送方向是 (例(例 MOVB$1000,$2000)4、16位数据结构是高位在前,低位在后位数据结构是高位在前,低位在后 (例:例:MOVW#$100A,$1100)MOVB 1,X,2,Y特点:特点:
8、1、各寄存器都可以入栈、出栈、各寄存器都可以入栈、出栈2、可以做、可以做8位、位、16位操作位操作3、入栈时、入栈时SP-1(2),出栈时,出栈时SP+1(2)LEAX$100A,Y注:不影响标志位注:不影响标志位1、加、减法指令:、加、减法指令:ADD、SUBtract说明:说明:ABA Add B to A (A+B)SBA Subtract B from A (A B)特点:特点:1、CMP 作减法,结果不回传,只影响标志位作减法,结果不回传,只影响标志位 2、TST 固定减固定减0,结果不回传,只影响标志位,结果不回传,只影响标志位 特点:特点:1、用、用0去减该值去减该值 2、不对符
9、号位进行判断、不对符号位进行判断特点:特点:1、是在加法操作之后进行、是在加法操作之后进行 2、是对、是对A进行压缩进行压缩BCD码码加法调整加法调整 3、只有这一条调整指令、只有这一条调整指令 例:例:LDD#$3275 ADDB#$69 EXG A,B DAA EXG A,B ADCA#$26 DAA 结果:结果:D=?$5944说明:说明:1、根据最高位的值将、根据最高位的值将8位扩展为位扩展为16位位 2、源:、源:A,B,CCR 目的:目的:D,X,Y,SP例:例:SEX A,X 1、基本逻辑运算指令、基本逻辑运算指令 BCLR相当与相当与0的位与操作的位与操作 (BCLR$20,#
10、$0F)BSET相当与相当与1的位或操作的位或操作 (BSET$20,#$0F)注意该类指令与注意该类指令与TST、AND的区别的区别-指定的指定的1位或几位,非整体;位或几位,非整体;BIT影响标志位,但不修改操作数影响标志位,但不修改操作数 LSL Logic Shift Left ASR Arithmetic Shift Right ROR ROtate Right 特点:特点:1、ASR补最高位,其余补补最高位,其余补0 2、移出去的进、移出去的进C标志标志1、无条件转移指令、无条件转移指令 JMP (Jump),可以在,可以在64K范围内跳转范围内跳转2、短分支跳转指令、短分支跳转指
11、令 是在当前是在当前PC的值加上一个的值加上一个8位带符号数的偏移量,即位带符号数的偏移量,即跳转范围:跳转范围:128 127127BRA BRanch AlwaysBRN BRanch NeverBCC Branch if Carry ClearBCS Branch if Carry SetBEQ Branch if EQual BMI Branch if MinusBPL Branch if PlusBHI Branch if HigherBHS Branch if Higher or SameBLO Branch if LowerBGT Branch if Greater Than 注
12、意:注意:1、只作检测,满足条件转移,不影响标志位、只作检测,满足条件转移,不影响标志位2、结果不回传、结果不回传例:例:BRCLR$20,#$81,LP1 BRSET$20,#$80,LP2特点:特点:1、是在、是在当前当前PCPC的值加上一个的值加上一个1616位带符号数的偏移量,即跳转范围:位带符号数的偏移量,即跳转范围:32768 32767 2 2、与、与JMPJMP指令实现的方法稍有不同,只能跳转指令实现的方法稍有不同,只能跳转32K32K距离。距离。3 3、与短跳转指令完全类似、与短跳转指令完全类似特点:特点:1、不影响、不依赖标志位、不影响、不依赖标志位 2、转移范围是、转移范
13、围是 256 255ADD:LDX#$0B00 LEAY 4,X LDAB#4 CLCLOOP:LDAA X ADCA 1,Y+STAA 1,X+DBNE B,LOOP特点:特点:1、BSR 调用范围为调用范围为128127 2、JSR调用范围为调用范围为3276832767,支持多种寻址方式,直接寻址方式,支持多种寻址方式,直接寻址方式必须在必须在$0000$00FF内内 (例例:JSR$50 )3、CALL 用于调用用于调用64K以外的子程序,用以外的子程序,用RTC指令返回指令返回特点:特点:1、进入中断时,硬件自动保护现场,、进入中断时,硬件自动保护现场,RTI指指令将恢复现场及断点令
14、将恢复现场及断点2、SWI指令不受指令不受I、X的限制,且执行时会的限制,且执行时会自动将自动将I置置1(即自动关闭可屏蔽中断),(即自动关闭可屏蔽中断),中断向量表入口地址中断向量表入口地址$FFF6-$FFF73、各硬件中断有固定的入口地址表,中断、各硬件中断有固定的入口地址表,中断服务程序需用服务程序需用RTI指令返回指令返回 特点:特点:1、STOP进入伪停机模式,时钟被关闭,功耗最低;当有中进入伪停机模式,时钟被关闭,功耗最低;当有中断或复位时被唤醒断或复位时被唤醒2、WAI 进入等待模式,时钟仍在工作,当有中断或复位时进入等待模式,时钟仍在工作,当有中断或复位时被唤醒,唤醒速度快被
展开阅读全文