单片机原理及实用技术_第3章SPCE061A指令系统教材教学课件.ppt

单片机原理及实用技术_第3章SPCE061A指令系统教材教学课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学课件讲义PPT教学教案培训资料医学中小学上课资料

第3章 SPCE061A指令系统 ;3.1 概 述 ;3.1.2 寻址方式 寻址方式主要有以下几种: (1) 立即寻址:操作数以立即数的形式出现。 例如,R1 = 0x1234是把十六进制数0x1234赋给寄存器R1。 (2) 直接寻址:通过存储器地址来访问存储器中的数据。 例如,R1 =[0x2222] 将0x2222单元的数据传送到寄存器R1。 (3) 寄存器寻址:操作数在寄存器中。 例如,R1 = R2 是把寄存器R2中的数据赋给寄存器R1。 ; (4) 寄存器间接寻址:寄存器中存储的是操作数的地址。 例如,R1 = [BP] 是把由BP指向的内存单元的数据传送到寄存器R1。 (5) 变址寻址:操作数的地址由基址和偏移量共同提供。 例如,R1 = [BP+0x34],BP为基址,0x34为偏移量,两者共同确定操作数存放的地址。 ;表3.1 符 号 约 定 ;;3.2 数据传送指令 ;表3.2 数据传送指令一览表(ISA1.1指令集) ;1. 立即寻址 格式1:Rd = IM16 说明:16位立即数送入目标寄存器Rd。 格式2:Rd = IM6 说明:6位立即数扩展为16位送入目标寄存器Rd。例如: R1=0xF001 //R1的值变为0xF001;2. 寄存器寻址 格式1:Rd = Rs 说明:将源寄存器Rs 的数据送给目标寄存器Rd。例如: R2=0xF001 //R2的值为0xF001 R1=R2 //R1的值变为0xF001 ;例1 将R3的值保存于0x25单元。 R3 =0x5678 //把16位立即数0x5678赋给R3 方法1: [0x25]=R3 //将R3的值存储于0x25存储单元(直接寻址), // 0x25单元的内容为0x5678 方法2: R2 =0x25 //立即数0x25送入R2 [R2]=R3 //将R3的值存储于0x25存储单元(寄存器间 //接寻址),0x25单元的内容为0x5678;方法3: BP= 0x20 //立即数0x20送入BP [BP+5]= R3 //将R3的值存储于0x25存储单元(变址寻 //址),0x25单元的内容//为0x5678 ;例2 将0x25,0x26和0x27单元清零。 方法1: R1 = 0 R2 = 0x25 //立即数0x25送入R2中 [R2++] = R1 //R1的值存储于0x25,存储单元R2=R2+1 [R2++] = R1 //R1的值存储于0x26,存储单元R2=R2+1 [R2] = R1 //R1的值存储于0x27 ;方法2: R1 = 0 R2 = 0x27 [R2--] =R1 //R1的值存储于0x27,存储单元R2=R2-1 [R2--] =R1 //R1的值存储于0x26,存储单元R2=R2-1 [R2] = R1 //R1的值存储于0x25 ;方法3: R1 = 0 //影响标志位Z=1,N=0 R2 = 0x24 //立即数0x24 送入R2中 [++R2]= R1 //R2=R2 +1,R2=0x25,而后R1的值存储于0x25单元 [++R2]=R1 //R2=R2 +1,R2=0x26,而后R1的值存储于0x26 单元 [++R2]=R1 //R2=R2 +1,R2=0x27,而后R1的值存储于0x27单元 ;例3 用不同方式读取存储器的值。 BP = 0x20 //将立即数0x20 赋给BP R1 = [BP + 5] //BP+5=0x25,则读0x25单元数据到R1中 R1 = [0x2345] //读0x2345单元数据到R1中 R1 = [BP] //读0x20单元的数据到R1中 R1 = [BP++] //读0x20 单元的数据到R1中,并使BP=0x20+1 R1 = [BP--] //读取0x21单元的数据到R1中,并使BP=0x21-1 R1 = [++BP] //修改BP=0x20+1,读0x21单元的数据到R1; 6. 堆栈操作 除以上介绍的指令外,堆栈(stack)操作属于一种特殊的数据传送指令,在此也一并作以介绍。堆栈操作如图3.1所示。 ; 堆栈指针SP总是指向栈顶的第一个空项,压入一个字后SP减1,将多个寄存器同时压栈,总

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档