寻址方式与汇编语言.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
寻址方式与汇编语言.ppt

寻址方式与汇编语言 单片机语言 汇编语言指令格式 汇编语言对格式有严格的要求。典型的汇编语言有4部分组成: label: MOVB #$66 , X ;注释 标号 操作码 源操作数 目的操作数 注释 操作码是指令功能的英文缩写,表示指令的功能,由助记符组成。 操作数表示指令操作的对象,不同的指令操作的对象形式不同。 注释说是为了方便阅读加的中文或者英文注释。可有可无。 汇编语言是与硬件有关的语言,都是针对某一种类型的CPU。 不同公司的产品,其汇编语言中使用的助记符可能会略有差异,但是语法格式都是一样的。 9S12单片机指令系统每条指令必须有操作码,操作数可以是0-3个 9S12内核的指令系统一共有601条指令。 汇编语言与机器语言指令是一一对应的。 汇编常量的表示 十进制: 100,255 十六进制: $55、$1234 八进制: @77,@1000 二进制: 字符串: ‘jkl”990’、”ADDX00’8” 寻址方式 寻址:操作数指定了参与运算的数或者数所在的地址。在单片机的存储空间中,寻找指令规定的操作数的地址。 9S12内核有8种寻址方式。 隐含寻址 立即数寻址 直接寻址 扩展寻址 相对寻址 变址寻址 累加器变址寻址 带自动加、减的5位偏移量变址寻址 1. 隐含寻址 定义:只有操作码,没有操作数或操作数为寄存器,不显示操作数。 如:NOP(单片机延时用)PSHA、PSHB、PSHX、PSHY,隐含操作数分别为无、A、B、X、Y。 一般是单字节指令 隐含寻址举例 ;PC=C003,A=CB,SP=500 NOP ;PC=C004,A=CB,SP=500 PSHA ;A=CB,SP=4FF(说明:500-1),[4FF]=CB NOP是单字节指令,只让程序计数器PC加1 PSHA首先移动SP指针,再压入数值 2. 立即数寻址 在立即数寻址方式下,指令中的操作数(参与运算的数)就直接存放在机器代码中,紧跟在操作码之后。 这条指令汇编成机器代码后,操作数作为指令的一部分存放在操作码之后的主存单元中。称这种操作数为立即数 立即数寻址方式常用来给寄存器赋值。 注:立即数前加# LDAA #$55; 表示将十六进制立即数55加载到累加器A中 LDX #1234; 表示将十进制数1234加载到X中 LDY # 表示将二进制载到Y中 3. 直接寻址 操作数是单字节地址(8位),范围是$00~$FF,共256个单元,一般访问I/O寄存器。 如: LDAA $55 表示将$55内存单元的数据加载到累加器A。 执行前:[55]=0,A=CB 执行后:[55]=0,A=0 A指八位 4. 扩展寻址 操作数为16位(双字节)地址,可访问64K空间。 如: LDX $4000 将$4000和$4001内存单元的数据加载到X。 (X表示16位) FREESCALE的MCU采用“低字节数放高位地址单元,高字节数放低位地址单元”。 (1)若:[$4000]=$12, [$4001]=$34 执行 LDX $4000 指令后, XH(高8位)=$12, XL=$34 (2)又如: STAA $4000 ;执行结果为A的内容存到$4000单元 5. 相对寻址 相对转移指令。操作数为单字节 如: 6. 变址寻址 操作数由基地址寄存器(X、Y、SP、PC)加偏移量构成。 如: 若X=$1000 LDAA 0,X ;A=[$1000] LDAA 7,X ;A=[$1000+7] LDAA -150, X ;A=[$1000-150] LDAA 1000, X ;A=[$1000+1000] LDAA [1000,X] ;将X+1000地址单元中的 值作为指针,指向的内存单元的值加载到累加器A中 7.累加器变址寻址 偏移量非立即数,存放在累加器A、B、D中。 如: 若X=$1000 LDAB A,X ;B=[X+A] LDAA D,X ;A=[X+D] 8.带自动加减的5位偏移量间接寻址 有“先加、先减、后加、后减”四种方式。 基址寄存器可以是X,Y,SP。 主要用于数据块复制。 如: MOVW 2, X+, 4, +Y ;执行该指令,将X开始单元的两个单元内容(一个字)传送到Y+4开始的两个单元,传送完

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档