微机原理ch03指令第二次课_第1页
微机原理ch03指令第二次课_第2页
微机原理ch03指令第二次课_第3页
微机原理ch03指令第二次课_第4页
微机原理ch03指令第二次课_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

知识回顾指令指令指令系统的2知识回顾1:指令系统概述—指令按指令功能按指按指令字长分按指令执行时间 知识回顾2:指令格标号:操作码助的操作数,源操作数;注释例如:Loop:MOVA,R0;(R0)--->(A)4知识回顾3:指令系寻址方式:7寄存器间接立即位寻

MOVA,R0MOVA,40HMOVA,@R1 JCMOV5寻址方寻址空寻址方寻址空寄存器直接寻内部 特殊功能寄存器 内部RAM中20H~2FH单元的128SFR中83个有效位地址间接寻内部RAM00H~7FH(@R0、@R1、外部RAM或外部I/O口@R0、@R1、立即寻程序基址+变寄间寻程序器(@A+DPTR、6内部数 器与内部I/O口统一编1、内部数 器的寻址方1) 寄存器寻址4组R0 直接寻址寄存器间接寻址例:(01H)MOV02H,01H;源寻址和目的寻址均为直接MOV ;源寻址为直接寻址,目的寻址为寄存器寻MOVMOV02H,@R0;源寻址为寄存器间接寻目的寻址为直接720H~2FH direct寄存器间接寻址位寻址MOV26H,C

直接位寻(26H)1MOV26H,A;字节寻址(26H)8830H~7FH direct例:MOV56H,A;字节寻址(56H)8位MOVR0,#66HMOV@R0,#56H可以将用户堆栈设在该区内,堆栈指针9例:P1MOVA,90HMOVA,P1MOVP1,A3、可做片内RAM的指针预先设置RS1、RS0,以选定 1R0,;R0的地址是SETBRS1 MOV R0的地址是R0/R1指向的地址范

片外数 区和外部扩展的I/O口的寻址方指针:R0,R18DPTR16指令助记符

只能寄存器外部数 器的地址,例 MOVMOVA,#34HMOVX@DPTR,AMOVP2,#20HMOVR0,#00HMOVA,#34HMOVX@R0,A

I/O口的地址16R0/R1指向的地址R0/R1指向的地址第三章指令指令指令系统的MCS-51指令系统分类§3-4MCS-51按操作功能数据传送类指令算术运算类指令逻辑运算类指令控制转移类指令布尔处理类指令§3-4MCS51指令中可间接寻址用寄存器i=0或寄存器寻址8位立16位立16位目的11位目的以补码形式表示的地址偏移量直接寻址的地址8位内部RAM或SFR的地@X中的内即(X)作地址,该地址内容((X))第三章指令指令指令系统的MCS-51指令系统分类§3-4MCS51指令系一.数据传送MOV目的操作数源操作MOV( 数据传送类指令不影响标志位Cy、Ac和OV,但以累加器A为目的的指令(4条MOVA,1110寄存器寄存器MOVA,1110寄存器直接寻MOVA,1110寄存器寄存器寻MOVA,0111寄存器立即寻注:机器指令中的低三位rrr表示000-111,对应R0-i表示0-1,对应以累加器A为目的的指令(4条例:若(R1)=20H,(20H)=,执行指令 A,@R1后问 2以Rn为目的的指令(3条例:若(50H)40HMOV后问 3以直接地址为目的的指令(5条例:若(R1)=50H,(50H)=18H,执行MOV40H,@R1后 4例:若(R1)=30H,(A)=20H,执行指MOV@R1,A后 16MOV寻MOV指令的小寻寻A累加寄存栈栈MCS-51MCS-51属向上生长型堆栈,这种堆堆栈的使用有两种方式一种是自动方式,即在调用子程序或断点时,断另一种是指令方式,即使用的堆栈操作指令,执行进出栈操作,其进栈指令为PUSH,出栈指令为POP而恢复现场则是一系列指令方式的出栈操需要保护多少数据由用保护恢复

PUSHACCPUSHPSWPUSH01HPOP01HPOPPSWPOPACC例3-1:堆栈 例:设(A)=30H,(B)=3lH,执行以下指令后,堆栈指针及堆栈内容变MOVSP,(SP)=40H(40H)(SP)=40H(40H)=30H(SP)=41H(41H)=31H(SP)=40H(A)=31H(SP)=3FHPUSHPOPPOPA与片外RAM的传递指MOVX(MoveExternal例3-2:片外RAM的数据传到外部RAM2560H单元中去

DPTR,#2040HA,@DPTR例3-3:分析指令执行后的结 DPTR,DPTR)←9002MOVXA,(A)←MOV30H,(30H)←F5MOVA,(A)←74MOVX@DPTR,((DPTR))←执执行结果为 在此我们可以看出内外部RAM的区别了,内部RAM间以直接进行数据的传递,而外部则不000)(设为20单元0100单元的地址,(即或)只是8低使用时应先将要读或写的地址送入DPTR或Ri中,然后用读写例:将外部RAM中100H单元中的内容送入外部RAM200H单元中 MOVXA,@DPTR MOVX@DPTR,A查表指 (

ROM的数据表例3-4:查表指令的在外部ROM1000H开始存放了0-9的ASCII码,根MOVMOVCA,假设指令所在地址为ADDMOVC例3-5:片外RAM的数据传把外部ROM2040H传送到外部RAM单元,判断程序是否MOVDPTR,MOVCA,MOVMOVXMOV、MOVX、MOVC的区别片内RAM和SFR区的字节单元片外64KB的专门用来 片外64K的ROM.存放XCH字节交换指令XCHA,Rn;(A)(Rn)(n=0-XCHA,半字节交换指令XCHDExchangeloworderXCHDA,@Ri;(A)3-0((Ri))3-SWAPA;(A)7-4(A)3-0累加器例3-6:字节交换指a3a1a3a1a0a2a0a2XCHA

;(A)MOV@R1 ;例3-7:将PSW内容读入MOVMOVPUSHPOPMOVMOV面多添一个“前导”0?汇编语言规定,凡是以字母打头的数据量,应当面添加—个数字“0”,以便在MOVA,#0FFH思考题:判断指令的对与@R1,@R1,R3,@R1,R1,[例3-8]设内部RAM中30H单元的内容为40H,40H单元的内容为10H,P1口作输,其输入数据为0CAH,程序及执行 A,@R0

;单元地址30H送R0;R0间址,将30H单元内容送R1;A送B;R1间址,将40H单元内容送@R1,P;将P1内容送40H单P2,;将P1内容送执行结果:(R0(R1)=?(A)=?(B)=?(40H)=?,执行结果:( ,(R1)=40H,(A)=40H,=10H (40H)=0CAH,[例3-9]已知片外RAM的70H单元中的一个数X,需送到片RAM的1010H单元,试编写程序数据,必须通过MOVR0,#70HMOVDPTR,#1010H A,@R0MOVX@DPTR,A

设:内部RAM(50H)=30H,(51H)=70H,执行下列片段MOVR0,40H b.MOVR0,#40HMOVINCMOV

MOVA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论