工控网首页
>

应用设计

>

单片机数据传送类指令讲解

单片机数据传送类指令讲解

2016/12/5 15:17:15

传送类指令

(1)片内数据传送指令 (16)

此类指令参入的源操作数和目的操作数有 #data/A/Rn/@Ri/direct 五个,其不同组合,共有 15 条指令

(2)片外数据传送指令 (4)

当你想把一个数送到单片机外部扩展 RAM 的某个单元或外部扩展 I/O 口某个端口,或者你想从该 单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。

MOVX A @Ri ; A ((Ri)) 片外

MOVX @Ri A ; (Ri) 片外← A

MOVX A @DPTR ; A ((DPTR)) 片外

MOVX @DPTR A ; (DPTR) 片外← A

单片机与外部数据存储器数据传送采用两种寻址方式,这两种寻址形式都是间接寻址。一种是单字节寻址 @Ri ,一种是双字节寻址 @DPTR ,另一个操作数是 A . 共有 4 条指令。

(3)数据交换指令(5)

① 指令: XCH A ,〈 byte

功能:交换累加器与字节变量中的数据。

XCH 指令把指定字节的内容装入累加器 A 中,同时把累加器中原来的内容写入指定的字节中。源操作数有 Rn/direct/@Ri, 目的操作数是 A, 共三条指令。

2.5 RO 寄存器内容为 20H ,累加器 A 内容为 3FH ,内部 RAM 20H 单元内容为

75H ,若执行指令: XCH A @RO 则结果为:( 20 ) =3FH ( A ) =75H

② 指令: XCHD A, @Ri

功能:低半字节数据交换,执行操作( A3-0 )←→(( Ri ) 3-0 )

说明:累加器 A 中的低 4 位与由指定的寄存器间接寻址的内部 RAM 单元的低 4 位数据进行交换。该指令不影响各寄存器的高 4 位,也不影响标志位。

RO 内容为 20H ,累加器内容为 36H ,内部 RAM 20H 单元内容为 75H ,若执行指令 XCHD A @RO

其结果为 ( 20H ) =0111011=76H

( A ) =00110101B=35H

③ 指令: SWAP A

A 的高四位和其低四位交换,

: A 内容为 36H 时执行 SWAP A A 63H

(4)堆栈指令

① 指令 PUSH direct 功能:把程序的中间数据送入堆栈,称为进栈。

说明:首先栈指针自动加 1 ,执行( SP )( SP ) +1 将栈指针移向堆栈中的无数 据字节,然后将直接地址( direct )单元的内容送入 SP 所指向的栈单元中,执行( SP )( direct ),不影响标志位。

设堆栈指针为 09H ,数据指针内容为 0123H ,试分析下列指令的执行结果。

PUSH DPL

PUSH DPH

执行结果为:( 0AH ) =23H

( 0BH ) =01H ( SP ) =0BH

② 指令: POP direct 功能:把堆栈中的中间数据送入目的字节,称为出栈。

说明:读出由栈指针寻址的内部 RAM 单元内容。送到指定的直接寻址的字节单元,然后栈指针自动减 1 ,即执行操作:

( direct )((SP)),(SP) (SP)-1; 指令执行不影响标志位。

( SP ) =32H ,内部 RAM 31H 32H 单元中的内容分别为 23H 01H ,试分析下列指令的执行结果。

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机