- 1、本文档共104页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新型单片朢2
第三章
MCS-51系列单片机的指令系统和汇编语言程序设计;§3-1 汇编语言与指令系统;51系列单片机:;MCS-51汇编语言指令格式:;常用伪指令(汇编命令):;xi :单字节十进制或十六进制数据
“ ”括起来的字符串。;4)定义字: DW y1,y2,……, yn;5)定义位标号: 标号 bit 位;6)DS 指令;7)赋值伪指令EQU;寻址方式 寻址范围 例;一、寻址方式(找信方式);目的地;目的地;目的地;寄存器寻址;寻址比较;寻址比较;寻址比较;寻址比较;寄存器寻址;目的地;寄存器寻址;单元地址;寄存器寻址;例: 指令地址 机器码 汇编语言源指令
0100H 7402 MOV A, # 02H
0102H 83 MOVC A, @A+PC
0103H 00 NOP
0104H 00 NOP
0105H 56 DB 56H, 85H, 67H;存 储 器 访 问 性 质 所用指令及寻址方式
依次取指 根据PC值自动访问
ROM 程序转移 程序转移类指令
用户访问(查表) MOVC指令
访问整个字节 MOV指令(寄存器间址,
片内RAM 直接寻址)
访问可寻址位 位操作指令(直接寻址)
SFR 访问整个字节 MOV指令(直接寻址)
访问可寻址位 位操作指令(直接寻址)
片外RAM 地址≤FFH MOVX指令(寄存器间址)
地址>FFH MOVX指令(DPTR间址);习题和思考题五
1、MCS-51指令系统有几种寻址方式?如果要对特殊功能寄存器进行操作将使用哪种寻址方式?
2、在MCS-51程序段中,怎样识别位地址和字节地址?
3、怎样区分内部RAM高128个字节地址以及特殊功能寄存器的地址?
4、MCS-51指令系统按其操作功能分几大类?;除了POP和传送到PSW的指令外均不影响标志位。;1、以A为目的操作数的指令;2、以Rn为目的操作数的指令;3、以直接地址为目的操作数的指令;4、以寄存器间接地址为目的操作数的指令;MOV指令操作功能;例:设(70H) = 60H, (60H) = 20H, P1口为输入口,
当前输入状态为 B7 H, 执行下面的程序:;功能:① (SP)+1→ SP
② (direct) → (SP);功能:① ((SP)) → direct
② (SP)-1→ SP;四、累加器传送;2 、查表指令;例:累加器A内容是0~9的一个数,用查表法求
其相应的平方值。程序如下:;② MOVC A,@A+DPTR 93H;例:查平方表程序。;3 、字节交换指令;4 ??半字节交换指令;习题与思考题六
1、写出实现以下数据传送的MCS-51指令:
1)?? R7内容传送到R4;
2)?? 外部RAM20H单元内容送R0;
3)?? 外部RAM1000H单元内容送内部RAM30H;
4)?? ROM2000H单元内容送R2;
5) 外部RAM0456H的内容送外部RAM0078H单元。
2、若(SP)=26H,(A)=37H,(DPTR)=0CFA 8H;执行PUSH A,PUSH DPL, POP A, POP DPL指令后,试指出SP、A、DPTR的数值。; 3、设R0的内容为32H,A的内容为48H,内部RAM32H内容为80H,40H内容为08H,请指出在执行下列程序段后各单元内容的变化。
MOV A, @R0
MOV @R0, 40H
MOV 40H, A
MOV R0, #40H
MOV @R0, A
;§3-4 算术操作类指令;例:(A) = 53H,(R0) = 0FCH
ADD A, R0;二、带进位加法指令; 无符号数相加,和的溢出与C的置位统一;
带符号数相加,和的溢出指和大于+127或小于 -128,并用OV置位表示。
例:设(A)=6AH,(R1)=43H,为带符号数;执行指令
ADD A,R1;三、带进位减指令; 无符号数相减,差的溢出与C的置位统一,
带符号数相减,差的溢出指差大于+127或小于 -128,并用OV置位表示。
例:(A)=43H,(R1)=6AH,为带符号数,C=0;执行指令
SUBB A,R1;四、增量指令;例、将30H和31H二单元清0,试编程。
ORG 0100H
MOV R0,#30H ; R0指向30H单元
MOV @R0,#00; 30H单元清0
INC R0 ; R0加1,指向31H单元
MOV @R0
文档评论(0)