教学课件微机原理(第2版)3.3 数据传送指令ppt(全).pptx
教学课件微机原理(第2版)3.3 数据传送指令22.3 存储器结构与地址空间学习内容:数据传送类指令目标:掌握如何使用传送指令编程第3章 8051指令系统和汇编程序设计33.2 指令系统第3章 8051指令系统和汇编程序设计3.2.0 指令系统8051微控制器的111条指令,分为5大功能。数据传送类指令:29条算术运算类指令:24条逻辑运算类指令:24条控制转移类指令:17条位操作类指令:17条43.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令 数据传送类指令是最基本、使用最多的一类指令。主要用于数据的传送、保存以及交换等场合。除A内容变化会影响P标志外,其余标志不受影响。29条指令可分成五组:CPU内部传送类指令:16条(MOV)程序存储器访问类指令:2条(MOVC)外部RAM访问类指令:4条(MOVX)堆栈操作类指令:2条数据交换类指令:5条53.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令1.内部RAM数据传送指令(16条):(助记符:MOV(MOVe)指令格式:MOV ,(1)以累加器A为目的操作数的指令(4条)MOV A,Rn ;(A)(Rn)MOV A,direct ;(A)(direct)MOV A,Ri ;(A)(Ri)MOV A,#data ;(A)data功能:把源操作数指定的内容送入A中,即A的赋值指令。63.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令1.内部RAM数据传送指令(16条):(助记符:MOV(MOVe)(2)以直接地址为目的操作数的指令(5条)MOV direct,A ;(direct)(A)MOV direct,Rn ;(direct)(Rn)MOV direct1,direct2 ;(direct1)(direct2)MOV direct,Ri ;(direct)(Ri)MOV direct,#data ;(direct)data 功能:把源操作数的送到片内RAM的direct单元,即内存单元赋值指令。(3)以寄存器Rn为目的操作数的指令(3条)MOV Rn,A ;(Rn)(A)MOV Rn,direct ;(Rn)(direct)MOV Rn,#data ;(Rn)data功能:把源操作数送到工作寄存器Rn中,即工作寄存器赋值指令。73.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令1.内部RAM数据传送指令(16条):(助记符:MOV(MOVe)(4)以间接地址为目的操作数的指令(3条)MOV Ri,A ;(Ri)(A)MOV Ri,direct ;(Ri)(direct)MOV Ri,#data ;(Ri)data 功能:功能:把源操作数送到以Ri的内容为 地址的内部RAM中,给Ri间接寻址的内存单元赋值。例:(A)08H,(R1)10H,执行MOVR1,A后,10H单元的内容变为08H,而R1的内容仍为10H。83.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令1.内部RAM数据传送指令(16条):(助记符:MOV(MOVe)(5)16位立即数传送指令(1条)MOV DPTR,#data16;(DPTR)data16功能:将一个16位的立即数送入DPTR,其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H 的执行结果,与执行下面2条指令的结果相同。MOV DPH,#12H MOV DPL,#34H。93.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令 2.外部RAM访问指令(4条):(助记符:MOVX(MOVe eXternal RAM)MOVX A,DPTR ;(A)(DPTR)MOVX DPTR,A ;(DPTR)(A)MOVX A,Ri ;(A)(Ri)MOVX Ri,A ;(Ri)(A)功能:对外部RAM和外部I/O接口进行读或写操作。采用寄存器间接寻址方式,通过A与之进行信息交换。注意:对外部RAM的读写必须通过A累加器。(对内部RAM的读写,指令丰富)对外部RAM的读写,只能用寄存器间接寻址方式,用DPTR或Ri作为地址指针。(对内部RAM操作,有多种寻址方式)103.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令3.查表指令(2条):(助记符:MOVC(MOVe Code)远程查表指令 MOVC A,A+DPTR ;(A)(A)+(DPTR)功能:将DPTR的内容与A的内容相加后形成一个ROM单元地址,将该ROM单元的内容送至A。DPTR内容不变。优点:可以查找存放在64KROM中任何地址的数据表格,因此称为远程查表指令。缺点:要占用DPTR寄存器。113.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令3.查表指令(2条):(助记符:MOVC(MOVe Code)近程查表指令:MOVC A,A+PC ;(PC)(PC)+1 ;(A)((A)+(PC)功能:将A和当前PC值相加,形成要寻址的ROM单元地址,将该ROM单元中的内容送到A。注意:当前PC值,应为该指令所在地址加1。优点:不占用其他的SFR,不改变PC的值。根据A的内容就可查到数据。缺点:只能查找该指令后256字节范围内的数据表格,因此称为近程查表指令。123.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令4.堆栈操作类指令(2条)助记符:进栈操作指令PUSH(PUSH onto stack)出栈操作指令POP(POP from stack)PUSH direct ;(SP)(SP)+1 ;(SP)(direct)POP direct ;(direct)(SP);(SP)(SP)-1功能:PUSH direct:先修改SP指针,再将内部RAM direct单元的内容压入堆栈。POP direct:将堆栈栈顶的内容弹出,送到内RAM direct单元,再修改SP指针。堆栈指针SP的内容随着栈顶的变化而变化,即总是指向堆栈的顶部133.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令 5.交换指令(5条)助记符:XCH(eXCHange,字节交换);XCHD(eXCHange low-order Digit,低半字节交换);SWAP(SWAP,A的低四位与高四位交换)。l字节交换:XCH A,Rn ;(A)(Rn)XCH A,direct ;(A)(direct)XCH A,Ri ;(A)(Ri)l半字节交换:XCHD A,Ri ;(A)30 (Ri)30SWAP A ;(A)30 (A)74功能:把累加器A中的内容与源操作数所指出的数据相互交换。例:(A)=56H 执行SWAP A后,(A)=65H 例例:(A)=34H,(R0)=20H,(20H)=78H:执行:XCHD A,R0后,(A)=38H,(20H)=74H143.2 指令系统第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令6.数据传送类指令举例例3-1:将外部RAM100H单元中的内容送入外部RAM200H单元中。程序如下:MOV DPTR,#0100H ;(DPTR)#0100HMOVX A,DPTR ;(A)(DPTR),DPTR间址单元的内容读到AMOV DPTR,#0200H ;(DPTR)#0200H MOVX DPTR,A ;(DPTR)(A),A的内容写到DPTR间址单元例3-2:(A)=5BH,(R1)=10H,(R2)=20H,(R3)=30H,(30H)=4FH,执行以下指令后,R1、R2、R3的结果分别是多少?MOV R1,AMOV R2,30HMOV R3,#83H结果:(R1)=5BH,(R2)=4FH,(R3)=83H第3章 8051指令系统和汇编程序设计3.2.1 数据传送类指令