- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 MCS-51指令系统 3-1 指令格式 一、 汇编语言指令格式 [标号]:操作码 [操作数1],[操作数2];[注释] 例: LOOP: MOV A,#40H ;40H - A [标号]:操作码 [操作数1],[操作数2];[注释] 例: LOOP: MOV A,#40H ;40H - A 注意以下一些常用符号: #data 立即数 direct 直接地址 @Ri 以Ri里面的内容为物理地址的 存储单元(i=0、1) Rn 工作寄存器(n=0~7) 二、 伪指令 汇编时不产生机器码,仅供汇编识别控制 1.定位伪指令: ORG m 例: ORG 0000H START: SJMP MAIN … ORG 0030H MAIN: MOV SP,#30H 以START开始的程序汇编为机器码后,从0000H存贮单元开 始连续存放,但不能超过0030H存储单元。 5.定义空间伪指令: DS 表达式 例: ORG 0F00H DS 10H DB 20H,40H 汇编后,从0F00H开始,保留16个字节的ROM单元, 然后从0F10H开始,按照下一条DB伪指令给存储单元赋 值,得(0F10H)=20H,(0F11H)=40H。 DB、DW、DS伪指令都只对ROM起作用!!! 例: ORG 8500H AA EQU R1 A10 EQU 10H DELAY EQU 87E6H MOV R0,A10 ;R0←(10H) MOV A,AA ;A←(R1) LCALL DELAY ;调用起始地址为 ;87E6H的子程序 END EQU赋值后,AA为寄存器R1,A10为8位直接 地址10H,DELAY为16位地址87E6H。 7.数据地址赋值伪指令: 字符名称 DATA 表达式 字符名称没有先定义后使用的限制,DATA赋值指 令可放在源程序的开头或末尾。表达式不可以是汇编符 号(如R0~R7)。 8.位地址赋值伪指令: 字符名称 BIT 位地址 3-2 指令寻址方式 二、直接寻址方式 指令中的操作数是存储器单元的地址(8位),数据存放在存储器单元中。 三、寄存器寻址方式 指令中的操作数为寄存器名(Rn等),数据在寄存器中。例: MOV A,R0 ;A?(R0)设指令执行前(A)=20H,(R0)=40H, 则执行指令后(A)= ? ,(R0)= ? 四、寄存器间接寻址方式 指令中的操作数为寄存器中存放的地址数据。 存放地址的寄存器称为间址寄存器(@Ri)或地址指针(@DPTR)。 例: MOV A,@R0 ;A?((R0)) 设指令执行前(A)=20H,(R0)=40H, 地址为40H的存储单元内容如图所示。执 行指令后,(A)= ? ,(R0)= ? ,(40H)= ? 注意: (1)寄存器间址可拓宽单片机寻址范围, 如:@Ri可用于对片内RAM寻址(00H-7FH)(MOV 指令),也可用于对片外RAM寻址(00H-0FFH) (MOVX指令);@DPTR可寻址片外ROM/RAM的全部 64KB区域(MOVC/MOVX指令)。 (2)寄存器间址指令不能用于寻址SFR。 五、变址间接寻址方式 数据在存储器中,指令给出的寄存器中存有数据的基地址(PC(当前值)或DPTR)和偏移量(A)。 数据地址 = 基地址 + 偏移量 例: MOVC A,@A+DPTR ;A?((A)+(DPTR)) 设指令执行前(A)=09H,(DPTR)=2000H,存储器单 元内容如图所示。则执行指令后, (A)= ? (DPTR)= ? 六、相对寻址方式 以PC的当前内容作为基地址,加上偏移量(有符 号数),所得结果送PC寄存器作为转移目的地址。偏 移量在-12
文档评论(0)