Chap3MCS_51指令系统.ppt

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

第三章 MCS-51指令系统;一. 汇编语言指令格式 [标号:]操作码 操作数1,操作数2[;注释] 换行表示一条指令结束。 例: LOOP: MOV A,#40H ;取参数;二. 指令中符合意义说明;三. 机器语言指令格式;3-2 指令寻址方式;二.直接寻址方式;直接寻址方式应注意的问题;三.寄存器寻址方式 指令操作数为寄存器名,数据在寄存器中。 例: MOV A,R0 ;A?R0 设指令执行前 A=20H,R0=40H, 执行指令后,A= ?,R0= ?;五.变址间接寻址方式 数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。 数据地址 = 基地址 + 偏移量。;3-3 MCS-51指令系统分析;(一)内部传送指令:实现片内数据存储器中数据传送。 指令格式: MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间址。 ;2.内部RAM单元之间的数据传送;例:;3. 通过累加器的数据传送;例3-3-1:顺序执行下列指令序列,求每一步执行结果。;说明:;(二) 外部传送指令 实现片外数据存储器和A累加器之间的数据传送。 ;例3-3-2: 实现片外数据存储器数据传送(2000H)?(2100H)。;(三) 交换指令 实现片内RAM区的数据双向传送。;2. 半字节交换指令;MOV A, #00H MOV R0, #2AH MOV R1,#2BH XCHD A, @R0 SWAP A XCHD A,@R1 XCH A, 20H;(四)堆栈操作指令 入栈指令:PUSH direct ;SP?SP+1,(SP)?(direct) 出栈指令:POP direct ;(direct)?(SP),SP?SP-1; (五) 查表指令 实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式。 多用于查常数表程序,可直接求取常数表中的函数值。;例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。;2)指令地址 源程序 ORG 1000H ;程序起始地址 1000H SQU: MOV A,20H ;取X 1002H ADD A,#3 ;修正偏移量 1004H MOVC A,@A+PC ;查表求Y=X2 1005H MOV 21H,A ;存结果 1007H RET ;子程序结束 1008H TAB: DB 00,01,04 ;平方表 100BH DB 09,…,225 ;练习题:找出指令错误并改正:;3-3-2 算术运算指令;3-3-2 算术运算指令 完成片内 RAM 和 A 中数据的加减乘除运算。; 0011 1011 + 0011 1011 0111 0110; 2)带进位加法: ADDC A,源操作数 ADDC A, Rn ; A (A)+(Rn)+(Cy) ADDC A, direct ; A (A)+(direct) +(Cy) ADDC A, @Ri ; A (A)+((Ri)) +(Cy) ADDC A, #data ; A (A)+data +(Cy) ; 1001 1010 1110 0011 + 0 1 0111 1101;带进位加法指令ADDC用于多字节运算;十进制加法指令: ADD A,源操作数 DAA 带进位十进制加法指令: ADDC A,源操作数 DA A;例(A)=56H, (R5)=67H,求BCD码之和;2.减法指令 SUBB A,源操作数 ;带借位减法指令;00 0 0 0 0;3. 增量、减量指令;3. 增量、减量指令;4.乘除指令; 例:A= 156(F6H),B= 13(0DH),执行指令 DIV AB 后 求:A= ,B= ,Cy= ,OV= ,P= ? 解: 156 ÷ 13 = 18(12H),余数= 12(0CH)。; 3-3-2 逻辑运算及移位指令;例3-3-7:设 A=,Cy= 0,分别执行下列单条指令: CPL A 求:A= ,Cy= RL A RLC A ;(二)双操作数逻辑运算指令(对位逻辑运算);2.逻辑或运算指令;3.逻辑异或运算指令;思考

文档评论(0)

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

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

1亿VIP精品文档

相关文档