第七节 数据传送类指令
日期:2023-12-07 16:44:12   来源:数据传输类

  依据图所示MOVX指令操作数的组合联系,MOVX指令有如下 指令操作数的组合联系, 指令有如下4 依据图所示 指令操作数的组合联系 指令有如下 种办法: 种办法: MOVX @Ri,A MOVX @DPTR,A , , MOVX A,@Ri MOVX A,@DPTR , ,

  PC是一个 位的计数 是一个16位的计数 是一个 是程序存储器 器,PC是程序存储器 ROM中指令机器码的 中指令机器码的 地址指针, 中的内 地址指针,PC中的内 容是即将履行的下一条 指令机器码的地址。 指令机器码的地址。它 指示的地址规模是 64KB,即一个 ,即一个MCS-51 片机的ROM的最大 单片机的 的最大 容量是64KB,左图是 容量是 , 程序运转次序与PC变 程序运转次序与 变 化联系的示意图。 化联系的示意图。体系 上电复位后, 上电复位后,PC = 0000H,跟着程序的执 , 的值是主动加1 行,PC的值是主动加 的值是主动加 的,即一个八位二进制 机器码取出履行后, 机器码取出履行后, PC的值主动加 。用户 的值主动加1。 能够终究靠搬运、 能够终究靠搬运、调用和 回来等指令改动PC内 回来等指令改动 内 容,然后改动程序履行 的次序。 的次序。

  • 不管是单片机,仍是通用核算机,也不管是数 不管是单片机,仍是通用核算机, 值核算或信息处理,仍是实时操控, 值核算或信息处理,仍是实时操控,都需求传 送数据。因而数据传送是一种最大量、最基本、 送数据。因而数据传送是一种最大量、最基本、 最主要的操作。 最主要的操作。数据传送类指令的特点是把数 据从核算机的一个部位传送到另一个部位。 据从核算机的一个部位传送到另一个部位。发 送的部位称之为源, 意图地。 送的部位称之为源,接纳的部位称之为意图地。 MCS-51单片机设置了数据传送指令和数据交 单片机设置了数据传送指令和数据交 换指令两种数据传送类指令。 换指令两种数据传送类指令。

  • 指令① MOV @R1,R5是无效指令,那么怎么样才能够把寄存器 指令① 是无效指令, , 是无效指令 那么怎么样才能够把寄存器R5 中数据传送给由R1中内容为地址所指示的内部 中内容为地址所指示的内部RAM存储单元中 中数据传送给由 中内容为地址所指示的内部 存储单元中 可履行以下两条指令: 去。可履行以下两条指令: • MOV A,R5 MOV @R1,A(这两条指令契合图 MOV指令 , , ( 指令 操作数的组合联系) 操作数的组合联系) • 从图中可知,MOV指令中源操作数与意图操作数的组合联系有 从图中可知, 指令中源操作数与意图操作数的组合联系有 16种,这说明内部 数据传送指令MOV有16种办法。 种办法。 种 这说明内部RAM数据传送指令 数据传送指令 有 种办法

  • ⑴ 试编一段程序,使30H单元与 试编一段程序, 单元与60H单元的内容相交 单元与 单元的内容相交 换。 • 解:因为 因为30H和60H单元都有数据,要想将它们的内 单元都有数据, 和 单元都有数据 容相交流, 容相交流,一定要运用第三个存储单元或某个寄存器作 为缓冲。可选用A。 为缓冲。可选用 。 • MOV A,30H ;先将 先将(30H)的内容放在 中 的内容放在A中 , 的内容放在 • MOV 30H,60H ;将(60H)的内容放入 的内容放入30H单元 , 的内容放入 单元 • MOV 60H,A ;将原 将原(30H)的内容放入 的内容放入60H单元 , 的内容放入 单元

  • 这儿所说的程序存储器,既包含内部ROM,也包含外部 这儿所说的程序存储器,既包含内部 ,也包含外部ROM。 。 因为不管单片机内部仍是外部,一切的ROM地址都是一致编列 因为不管单片机内部仍是外部,一切的 地址都是一致编列 所以指令不用加以差异。 的,所以指令不用加以差异。 • 依据图 依据图MOVC指令操作数的组合联系,判别下列两条指令是否有 指令操作数的组合联系, 指令操作数的组合联系 效: • ① MOVC @ADPTR,A , ② MOVC R1,@ADPTR ,

  设内部RAM 30H单元的内容为 单元的内容为40H,40H单元的内容 ⑵ 设内部 单元的内容为 , 单元的内容 口作输进口, 为10H。P1口作输进口,其输入的数据为 。 口作输进口 0CAH(11001010B),程序及履行后的成果如下: ,程序及履行后的成果如下: MOV R0,#30H ;单元地址 单元地址30H送R0中; , 送 中 MOV A,@R0 ;直接寻址,将30H单元内容送 中 直接寻址, 单元内容送A中 , 单元内容送 MOV R1,A R1, 再将30H单元内容 40H) R1中 单元内容( ;再将30H单元内容(40H)送R1中 MOV B,@R1 ;直接寻址,将40H单元的内容送 中 直接寻址, 单元的内容送B中 , 单元的内容送 MOV @R1,P1 ;将P1口上的内容 口上的内容0CAH送40H单元中 , 口上的内容 送 单元中 MOV P2,P1 口上的内容送P2口 , ;将P1口上的内容送 口 口上的内容送 履行成果为:( :(R0) ,(A) ( ) ,(B) 履行成果为:( )=30H,( )=(R1)=40H,( ) ,( ,( =10H,而40H单元中的内容为 单元中的内容为0CAH,P2口的内容为 , 单元中的内容为 , 口的内容为 0CAH。 。

  • Rn:n=0~7,指当时寄存器组中 个通用寄存器 : ,指当时寄存器组中8个通用寄存器 R0~R7。 。 • @Ri:i=0,1,表明寄存器直接寻址。用作直接寻址 : , ,表明寄存器直接寻址。 的寄存器只能是R0和 ,所以这儿i仅代表 仅代表0或 。 的寄存器只能是 和R1,所以这儿 仅代表 或1。 • direct:代表直接寻址的地址。能够是内部 :代表直接寻址的地址。能够是内部RAM中低 中低 128字节或 字节或SFR中专用寄存器称号或地址。 中专用寄存器称号或地址。 字节或 中专用寄存器称号或地址 • #data:表明 位当即数。 位当即数。 :表明8位当即数 • #data16:表明 位当即数。 位当即数。 :表明16位当即数 • bit: 表明内部 表明内部RAM和SFR中具有位寻址功用的位地址 中具有位寻址功用的位地址. 和 中具有位寻址功用的位地址 • rel:相对搬运的偏移量。 :相对搬运的偏移量。 • $:表明当时指令的首地址。 :表明当时指令的首地址。 • (x):表明 的内容。 的内容。 :表明x的内容 • ((x)):表明 所指地址单元的内容。 所指地址单元的内容。 :表明x所指地址单元的内容 • ←:表明数据传递的方向。 :表明数据传递的方向。

  • 运用 运用MOVC指令的意图,是为了读程序存储器中数据 指令的意图, 指令的意图 表中的数据,所以也称为查表指令。 表中的数据,所以也称为查表指令。MOVC指令共有 指令共有 两条: 两条: • MOVC A,@ADPTR , • MOVC A,@APC , • 这两条指令都采用了变址直接寻址办法,运用 这两条指令都采用了变址直接寻址办法,运用DPTR 作为基址寄存器。 都是16位 或PC作为基址寄存器。因为 作为基址寄存器 因为DPTR和PC都是 位, 和 都是 所以可寻址的规模都是64KB。这两条指令在运用上 所以可寻址的规模都是 。 有些差异。 有些差异。 • 当运用 当运用DPTR作基址寄存器时,因为事前能够给 作基址寄存器时, 作基址寄存器时 DPTR赋64KB内的恣意值,与A相加后的寻址规模可 内的恣意值, 内的恣意值 相加后的寻址规模可 所以整个ROM的64KB空间,所以运用很便利。而当 空间, 所以整个 的 空间 运用PC作基址寄存器时 因为PC有严厉的当时值 作基址寄存器时, 有严厉的当时值, 运用 作基址寄存器时,因为 有严厉的当时值, A是8位无符号数,所以只能在以 当时值为开始地 位无符号数, 在以PC当时值为开始地 是 位无符号数 址的256个单元规模内进行查表。 个单元规模内进行查表。 址的 个单元规模内进行查表

  • 要把外部RAM存储器芯片地址为2015H的存储单元中 要把外部RAM存储器芯片地址为 存储器芯片地址为2015H的存储单元中 的数据传送给单片机的累加器A 可采纳以下两种办法。 的数据传送给单片机的累加器A,可采纳以下两种办法。 • ⑴ MOV DPTR,#2015H;把欲传送的外部RAM存储 DPTR,#2015H;把欲传送的外部RAM存储 单元的地址送数据指针DPTR 单元的地址送数据指针DPTR • MOVX A,@DPTR ;把DPTR所指示的存储单元中 A, DPTR所指示的存储单元中 的数据送给累加器A 的数据送给累加器A • ⑵ MOV P2,#20H ;把欲传送的外部RAM存储单 P2, 把欲传送的外部RAM存储单 元的高8位地址送至供给高8位地址线H ;把欲传送的外部RAM存储单 R1, 把欲传送的外部RAM存储单 元的低8位地址送至直接寻址寄存器R1 元的低8位地址送至直接寻址寄存器R1 • MOVX A,@R1 A, P2口锁存着高八位地址 口锁存着高八位地址, ;P2口锁存着高八位地址,而 R1的内容为低八位地址,经过履行该传送指令,低八 R1的内容为低八位地址 经过履行该传送指令, 的内容为低八位地址, 位地址从P0口送出 被地址锁存器锁存,把由P2口和 口送出, 位地址从P0口送出,被地址锁存器锁存,把由P2口和 P0口供给的十六位地址所指示的单元中的数据送给累 P0口供给的十六位地址所指示的单元中的数据送给累 加器A 加器A

  指令①是无效的,程序存储器数据传送是单向的,对程序 指令①是无效的,程序存储器数据传送是单向的, 存储器只能读而不能从单片机向程序存储器写数据。 存储器只能读而不能从单片机向程序存储器写数据。指令 也是无效的,从程序存储器中读出数据, ②也是无效的,从程序存储器中读出数据,只能读入累加 器A。

  • 内部 内部RAM数据传送,是指在单片机内部的各寄存器和 数据传送, 数据传送 存储器之间的数据传送。 是内部RAM数据传送指 存储器之间的数据传送。MOV是内部 是内部 数据传送指 令的操作助记符。 令的操作助记符。 • MOV指令中操作数的或许组合联系图。其间箭头表明 指令中操作数的或许组合联系图。 指令中操作数的或许组合联系图 传送方向,从源操作数传送到意图操作数。 传送方向,从源操作数传送到意图操作数。

  程序存储器,既包含内部 程序存储器,既包含内部ROM,也包含外部 ,也包含外部ROM。由 。 于不管单片机内部仍是外部,一切的ROM地址都是一致 于不管单片机内部仍是外部,一切的 地址都是一致 编列的,所以指令不用加以差异。 编列的,所以指令不用加以差异。

  • 依据组合联系图图能判别下列 依据组合联系图图能判别下列MOV指令中源操作数与意图操 指令中源操作数与意图操 作数的组合联系的正误: 作数的组合联系的正误: • ① MOV @R1,R5 ② MOV #25H,A ③ MOV DPTR, , , , #12EAH ④ MOV 47H,#47H ⑤ MOV SP,P1 , , • ⑥ MOV 30H,@R1 ⑦ MOV PSW,R1 ⑧ MOV A,30H , , , • 以上指令中不存在于 以上指令中不存在于MCS-51系列单片机 系列单片机111条指令中的过错指 系列单片机 条指令中的过错指 令有: 其他指令皆为有用指令。 令有:①和②。其他指令皆为有用指令。

  • 咱们咱们都知道单片机内部 咱们知道单片机内部RAM中的数据传送指令的操作助记符为 中的数据传送指令的操作助记符为 MOV,而单片机与外部 ,而单片机与外部RAM的数据传送指令的操作助记符为 的数据传送指令的操作助记符为 MOVX,单片机与程序存储器 ,单片机与程序存储器ROM的数据传送指令的操作助记 的数据传送指令的操作助记 符为MOVC。 符为 。 • MOVX指令和 指令和MOVC指令的源操作数与意图操作数的组合联系图 指令和 指令的源操作数与意图操作数的组合联系图 如下: 如下: