当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

数据传送类指令(PPT讲稿)

资源类别:文库,文档格式:PPT,文档页数:6,文件大小:440KB,团购合买
点击下载完整版文档(PPT)

数据传送类指令 指令特点:1、把源操作数传送到目的操作数,指令执行后,源操作数不 变,目的操作数修改为源操作数;2、除传送到了A的指令外,一般不影 响PSW中的标志位;3、涉及到了的助记符:片内RAM:MOV、PUSH、 POP、XCH、XCHD、SWAP片外RAM:MOVX片内外ROM: MOVC 、内部RAM的数据传送指令 o1、与累加器有关的传送指令 实现A与不同寻址方式所指定的RAM单元之间的数据传送。 ⊙MOVA,Rn;A←Rn,n=0~7 例:设(A)=56H O MOV Rn,A;Rn←A MOV PSW, #OOH O MOV A,@Ri;A←((Ri)) MOV R2, A eMOV@Ri,A;(Ri)←A,i=0、1 MOV PSW, #08H o MOV A, direct: A+direct MOV R2, A ⊙ MO direct,A; direct←A

数据传送类指令  指令特点:1、把源操作数传送到目的操作数,指令执行后,源操作数不 变,目的操作数修改为源操作数;2、除传送到了A的指令外,一般不影 响PSW中的标志位;3、涉及到了的助记符:片内RAM:MOV、PUSH、 POP、XCH、XCHD、SWAP 片外RAM:MOVX 片内外ROM: MOVC  一、内部RAM的数据传送指令  1、与累加器有关的传送指令  实现A与不同寻址方式所指定的RAM单元之间的数据传送。  MOV A,Rn;A←Rn ,n=0~7 例:设(A)=56H  MOV Rn,A;Rn←A MOV PSW,#00H  MOV A,@Ri;A←((Ri)) MOV R2,A  MOV @Ri,A;(Ri)←A,i=0、1 MOV PSW,#08H  MOV A,direct;A← direct MOV R2,A  MOV direct,A; direct←A

、内部RAM的数据传送指令 2、立即数传送指令 o MOV Rn, #data: Rnt- data 例: O MOV A,#data;A←data MOV RI, #40H o MOV direct, #data: direct+ data MOV ORI, #30H o MOV aRi, #data;(Ri)+data o MOV DPTR, #data16: DPTRe data16 (DPH←data158,DPL←data7~0) 3、内部RAM单元之间的数据传送指令 o MOV direct1, direct2; directl←( direct)例: o MOV direct, @Ri; directe((Ri)) MOV RO, #30H o MOV @Ri, direct; (Ri)+( direct) MOV RI, #31H o MOV Rn, direct: Rnt( direct) MOV A, aRO o Mov direct, Rn: directe( Rn) MOV aRI, A 例3-10、例3-11

一、内部RAM的数据传送指令 2、立即数传送指令  MOV Rn,#data;Rn← data 例:  MOV A, #data;A← data MOV R1,#40H  MOV direct, #data; direct← data MOV @R1,#30H  MOV @Ri, #data;(Ri)← data  MOV DPTR, #data16;DPTR← data16  (DPH← data15~8,DPL← data7~0) 3、内部RAM单元之间的数据传送指令  MOV direct1, direct2; direct1←( direct2) 例:  MOV direct, @Ri; direct← ((Ri)) MOV R0,#30H  MOV @Ri, direct;( Ri)← ( direct) MOV R1,#31H  MOV Rn, direct; Rn← ( direct) MOV A, @R0  MOV direct, Rn; direct←( Rn) MOV @R1,A  例3-10、例3-11

二、A与片外RAM之间的数据传送 指令 o只能与累加器A之间进行传送,且只能用Ri(R0、 R1)、DPTR间址。 O MOVX A,@Ri;A←((Ri)),i=0、 o MOVX A, @DPTR; A+((DPTR)) MOVX aRI,A;(Ri)←(A) o MOVX QDPTR, A:(DPTR)+(A) 例:将外部RAM2000单元的内容送内部RAM3OH单 元。 解: MOV DPTR,#2000H MOVX A, aDPTR MOV 30H A

二、A与片外RAM之间的数据传送 指令  只能与累加器A之间进行传送,且只能用Ri(R0、 R1)、DPTR间址。  MOVX A, @Ri;A← ((Ri)) ,i=0、1  MOVX A, @DPTR;A←((DPTR))  MOVX @Ri,A;(Ri)← (A)  MOVX @DPTR,A;(DPTR)←(A)  例:将外部RAM2000H单元的内容送内部RAM30H单 元。  解:MOV DPTR,#2000H  MOVX A, @DPTR  MOV 30H,A

、程序存储器取数指令 o完成从ROM中读取数据并送往累加器A中 o MOVC A, @A+PC; A((A)+(PC)+1) o功能:以PC作为基址寄存器,A的内容作为无符号数和PC当前值 (下一条指令的第一字节地址)相加后得到一个16位的地址,把 该地址所指的ROM单元内容送到A中 [例3-14]已知(A)=30H,执行下列指令后 2000H: MOVC A,@A+PC 2001H: MOV 78H, A 结果:将ROM中共中央031H单元中的内容送A,然后又送给内部 RAM78H单元 MOVC A, @A+DPTR; A+((A)+(DPTR)) o功能:以DPTR为基址寄存器,A中内容作为无符号数和DPTR的 内容相加得到一个16位的地址,把该地址所指出的ROM单元的内 容送A o[例3-15]已知(DPTR)=8100H,(A)=40H,执行指令 MOVC A, @A+DPTR o结果:将ROM中8140H单元中的内容(片外)送A中

三、程序存储器取数指令  完成从ROM中读取数据并送往累加器A中。  MOVC A, @A+PC;A←((A)+(PC)+1)  功能:以PC作为基址寄存器,A的内容作为无符号数和PC当前值 (下一条指令的第一字节地址)相加后得到一个16位的地址,把 该地址所指的ROM单元内容送到A中。  [例3-14] 已知(A)=30H,执行下列指令后  2000H:MOVC A,@A+PC  2001H:MOV 78H,A 结果:将ROM中共中央031H单元中的内容送A,然后又送给内部 RAM78H单元。  MOVC A, @A+DPTR;A ←((A)+(DPTR))  功能:以DPTR为基址寄存器,A中内容作为无符号数和DPTR的 内容相加得到一个16位的地址,把该地址所指出的ROM单元的内 容送A。  [例3-15] 已知(DPTR)=8100H,(A)=40H,执行指令  MOVC A, @A+DPTR  结果:将ROM中8140H单元中的内容(片外)送A中

四、数据交换指令 o1、全字节交换:A与片内RAM单元内容的全字节交换。 o XCH A, Rn: A+ Rn XCHA,@Ri;A←((Ri)) A肉部 o XCH A, direct:A+( direct 2、半字节交换 A与片内RAM单元中内容的低4位进行交换,高4位不变。 o XCHD A, @Ri; A3-0+((Ri))3-0 3、A自身半字节交换:A中内容的高4位与低4位互换。AL O SWAP A; A7-4 A30 o例:已知片外RAM的20H单元中有一个数X和内部RAM20H单元中有 个数Y,请编写它们互换的程序。 解:MOVR1,#20H MOVX A,@R1;A←x XCHA,@R1;A←Y,片内20H←X MOVX OR1,A;片外20H←Y

四、数据交换指令  1、全字节交换:A与片内RAM单元内容的全字节交换。  XCH A, Rn;A Rn  XCH A, @Ri;A (( Ri))  XCH A, direct;A ( direct)  2、半字节交换  A与片内RAM单元中内容的低4位进行交换,高4位不变。  XCHD A, @Ri;A 3~0 (( Ri))3~0  3、A自身半字节交换:A中内容的高4位与低4位互换。A  SWAP A;A 7~4 A 3~0  例:已知片外RAM的20H单元中有一个数X和内部RAM20H单元中有一 个数Y,请编写它们互换的程序。  解: MOV R1,#20H  MOVX A, @R1;A←X  XCH A, @R1;A←Y,片内20H←X  MOVX @R1,A;片外20H←Y A 内部 RAM

五、堆栈操作指令 PuSH direct;SP←(SP)+1,(SP)←( direct),压栈指令 o POP direct; direct←((SP)),SP←(SP)-1,弹栈指令 O PUSH:先将SP的内容加1,再将直接地址单元中的数据存入到了 SP所批示的单元中 oPOP:先将堆栈指针SP所指单元的内容弹出,并送到直接寻址单 元中,再将SP的内容减1,仍指向栈顶。 o例:将片外8500H单元中内容压入堆栈,然后弹出到40H单元中 o MOV DPTR,#800H O MOVX A,@DPTR:将片外8500H单元中的内容送到A中 O MOV SP,#30H;设置堆栈 O PUSH A;将A的内容压入堆栈 O POP A;将堆栈的内容弹到片内RAM40H单元中 o例:下面程序段执行后,A和B的值为多少? MOVA,#20H PUSH B MoV B, #30H POP A o PUSH A POP B

五、堆栈操作指令  PUSH direct;SP←(SP)+1,(SP)←(direct),压栈指令  POP direct; direct←((SP)),SP←(SP)-1,弹栈指令  PUSH:先将SP的内容加1,再将直接地址单元中的数据存入到了 SP所批示的单元中。  POP:先将堆栈指针SP所指单元的内容弹出,并送到直接寻址单 元中,再将SP的内容减1,仍指向栈顶。  例:将片外8500H单元中内容压入堆栈,然后弹出到40H单元中。  MOV DPTR,#800H  MOVX A, @DPTR;将片外8500H单元中的内容送到A中  MOV SP,#30H;设置堆栈  PUSH A;将A的内容压入堆栈  POP A;将堆栈的内容弹到片内RAM40H单元中  例:下面程序段执行后,A和B的值为多少?  MOV A,#20H PUSH B  MOV B,#30H POP A  PUSH A POP B

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有