第六讲 数据传送指令
日期:2024-03-27 19:15:38   来源:数据采集转换类

  第二条指令是以DPTR作为基址寄存器 累加器 的内容 作为基址寄存器, 累加器A的内容 第二条指令是以 作为基址寄存器 作为无符号数与DPTR内容相加 得到一个 16 位的地址 并 内容相加, 位的地址, 作为无符号数与 内容相加 把该地址指出的程序存储器单元的内容送到累加器A。 把该地址指出的程序存储器单元的内容送到累加器 。这条 指令的执行结果只与指针DPTR及累加器 的内容有关 与 及累加器A的内容有关 指令的执行结果只与指针 及累加器 的内容有关, 该指令存放的地址无关, 因此, 该指令存放的地址无关 因此 表格的大小和位置可以在 64 KB程序存储器中任意安排 并且一个表格能为各个程序 程序存储器中任意安排, 程序存储器中任意安排 块所共用。 块所共用。

  例如:已知累加器A中有一个0-9范围内的数,用查 例如:已知累加器A中有一个0 范围内的数, 表指令编出能查找出该数的平方值的程序

  例如:已知50H中有一个 --9的数, 例如:已知50H中有一个0--9的数,请编程把它变为相 中有一个0 应ASCII码的程序 ASCII码的程序

  MOV DPTR , #2000H MOVC A , @ADPTR 思考:用查表方法把累加器中的十六进制数转换为 思考:用查表方法把累加器中的十六进制数转换为ASCII码, 码 并送回累加器中。 并送回累加器中。

  堆栈操作有进栈和出栈,即压入和弹出数据, 堆栈操作有进栈和出栈,即压入和弹出数据,常用于保存 或恢复现场。进栈指令用于保存片内 单元(低 字节 字节)或特 或恢复现场。进栈指令用于保存片内RAM单元 低128字节 或特 单元 殊功能寄存器SFR的内容;出栈指令用于恢复片内RAM单元 低 的内容;出栈指令用于恢复片内 单元(低 殊功能寄存器 的内容 单元 128字节 或特殊功能寄存器 字节)或特殊功能寄存器 的内容。 字节 或特殊功能寄存器SFR的内容。 的内容 该类指令共有如下两条指令: 该类指令共有如下两条指令:

  例如:已知外部RAM的20H单元中有一个数x和内部 单元中有一个数x 例如:已知外部RAM的20H单元中有一个数 RAM的20H单元中有一个数 RAM的20H单元中有一个数y,试编出可以使它们相互 单元中有一个数y 交换的程序

  修改指针,使其指向栈顶上的一个存数单元 把直接地址单元的内容压入SP所指单元内

  (2)采用 )采用DPTR作为基址寄存器 作为基址寄存器 采用DPTR作为基址寄存器的查表程序最简单,也容易 采用 作为基址寄存器的查表程序最简单, 作为基址寄存器的查表程序最简单 理解,只要预先使用一条十六位数传送指令, 理解,只要预先使用一条十六位数传送指令,把表的是始址 2000H送入 送入DPTR,接着进行查表就行了。相应程序为: 送入 ,接着进行查表就行了。相应程序为:

  (1)一般传送指令 ) 该类指令的功能是实现数在片内RAM单元之间、寄存器 单元之间、 该类指令的功能是实现数在片内 单元之间 之间、寄存器与 单元之间的传送。 之间、寄存器与RAM单元之间的传送。所有指令具有统一的 单元之间的传送 格式,其格式如下: 格式,其格式如下: MOV 目的操作数 ,源操作数 ;目的操作数单元 源 目的操作数, 源操作数 源操作数;目的操作数单元←源 目的操作数 操作数(或单元 操作数 或单元) 或单元 操作码助记符都是MOV,目的操作数和源操作数不同 , 操作码助记符都是 寻址方式的组合就派生出该类的全部指令。因此, 寻址方式的组合就派生出该类的全部指令。因此,记忆这类指 令的重点是掌握两个操作数的各种寻址方式的组合关系。 令的重点是掌握两个操作数的各种寻址方式的组合关系。

  80C51单片机 单片机CPU对片外扩展的数据存储器 对片外扩展的数据存储器RAM或I/O口进 单片机 对片外扩展的数据存储器 或 口进 行数据传送,一定要采用寄存器间接寻址的方法,通过累加器 来 行数据传送,一定要采用寄存器间接寻址的方法,通过累加器A来 完成。这类指令共有以下4条单字节指令, 完成。这类指令共有以下4条单字节指令,指令操作码助记符都 为MOVX。 。 指令助记符 MOVX A,@DPTR , MOVX A,@Ri , MOVX @DPTR ,A MOVX @Ri,A , 操作功能注释 ; (A)←((DPTR)) ; (A)←((Ri)) ; ((DPTR))←(A) ; ((Ri))←(A)

  MOVC A, @APC  MOVC A, @ADPTR  这是两条很有用的查表指令, 这是两条很有用的查表指令 可用来查找存放在外部程序存 储器中的常数表格。第一条指令是以 作为基址寄存器 的内 作为基址寄存器, 储器中的常数表格。第一条指令是以PC作为基址寄存器 A的内 容作为无符号数和 PC的内容 ( 下一条指令的起始地址)相加后 的内容 下一条指令的起始地址) 得到一个 16 位的地址 并将该地址指出的程序存储器单元的内容 位的地址, 送到累加器A。 这条指令的优点是不改变特殊功能寄存器和PC 送到累加器 。 这条指令的优点是不改变特殊功能寄存器和 的状态, 只要根据A的内容就可以取出表格中的常数 的内容就可以取出表格中的常数。 的状态 只要根据 的内容就可以取出表格中的常数。缺点是表 个单元之中, 格只能放在该条查表指令后面的 256 个单元之中 表格的大小受 到限制, 而且表格只能被一段程序所利用. 到限制 而且表格只能被一段程序所利用

  2、已知: (40H)=11H、(41H)=22H、R0=40H和R1=41H,试问如下 、已知 、 、 和 试问如下 指令执行后累加器A、 指令执行后累加器 、40H、41H、42H单元中内容是什么 、 、 单元中内容是什么 MOV A, @R0 MOV @R1,A MOV 42H,@R1 3、试编出把30H单元和 、试编出把 单元和40H单元内容做交换的程序。 单元内容做交换的程序。 单元和 单元内容做交换的程序

  访问程序存储器的数据传送指令又称作查表指令, 访问程序存储器的数据传送指令又称作查表指令,采用基 址寄存器加变址寄存器间接寻址方式, 址寄存器加变址寄存器间接寻址方式,把程序存储器中存放的 表格数据读出,传送到累加器 。共有如下两条单字节指令, 表格数据读出,传送到累加器A。共有如下两条单字节指令,指 令操作码助记符为MOVC。 。 令操作码助记符为 指令助记符 MOVC A, @ADPTR , MOVC A, @APC , 操作功能注释 ;(A)←((A)(DPTR)) ;(PC)←(PC)1,(A)←((A)(PC)) ,

  注意:堆栈操作指令是直接寻址指令,在书写格式中必须要格外注意。 注意:堆栈操作指令是直接寻址指令,在书写格式中必须要格外注意。 例如下列指令中,左列的是正确的,右列是错误的。 例如下列指令中,左列的是正确的,右列是错误的。 正确指令 PUSH ACC PUSH 00H POP ACC POP 00H 错误指令 PUSH A PUSH R0 POP A POP R0

  例如:设(30H)=x和(40H)=y,利用堆栈作为媒 30H)= )=x 40H)= )=y 例如: 体编出30H和40H单元中内容相交换的程序 体编出30H和40H单元中内容相交换的程序。 单元中内容相交换的程序。

  数据传送指令一般都是将操作数自源地址单元传送到目的 地址单元,指令执行后,源地址单元的操作数不变, 地址单元,指令执行后,源地址单元的操作数不变,目的地址 单元的操作数则修改为源地址单元的操作数。交换指令数据作 单元的操作数则修改为源地址单元的操作数。 双向传送,涉及传送的双方互为源地址、目的地址, 双向传送,涉及传送的双方互为源地址、目的地址,指令执行 后每方的操作数都修改为另一方的操作数。因此, 后每方的操作数都修改为另一方的操作数。因此,两操作数均 未冲掉、丢失。数据交换指令共有如下 条指令 条指令: 未冲掉、丢失。数据交换指令共有如下4条指令:

  一、授课内容:第三章 80C51单片机的指 80C51单片机的指 授课内容: 令系统 二、授课目的:掌握数据传输指令基本语句 授课目的: 和应用。 和应用。 重点/难点: 三、重点/难点: 数据传输指令的基本应用

  数据传送类指令共29条 它是指令系统中最活跃、 数据传送类指令共 条, 它是指令系统中最活跃、 使用 最多的一类指令。 一般的操作是把源操作数传送到目的操作数, 最多的一类指令。 一般的操作是把源操作数传送到目的操作数 即指令执行后目的操作数改为源操作数, 而源操作数保持不变。 即指令执行后目的操作数改为源操作数 而源操作数保持不变。 若要求在进行数据传送时, 不丢失目的操作数, 若要求在进行数据传送时 不丢失目的操作数 则可以用交换型 传送指令。 传送指令。