- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)