单片机数据传送类指令和控制转移指令讲解_第1页
单片机数据传送类指令和控制转移指令讲解_第2页
单片机数据传送类指令和控制转移指令讲解_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文格式为Word版,下载可任意编辑单片机数据传送类指令和控制转移指令讲解 一、传送类指令(1)片内数据传送指令 (16条) 此类指令参入的源操作数和目的操作数有 #data/A/Rn/Ri/direct 五个,其不同组合,共有 15 条指令(2)片外数据传送指令 (4条)当你想把一个数送到单片机外部扩展 RAM 的某个单元或外部扩展 I/O 口某个端口,或者你想从该 单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。MO A , Ri ; A (Ri) 片外MO Ri , A ; (Ri) 片外 AMO A , DPTR ; A (DPTR) 片外MO DPTR , A ;

2、(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

3、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 AA 的高四位和其

4、低四位交换,如 : 当 A 内容为 36H 时执行 SWAP A 后 A 为 63H (3)堆栈指令 指令 PUSH direct 功能:把程序的中间数据送入堆栈,称为进栈。 说明:首先栈指针自动加 1 ,执行( SP )( SP ) +1 将栈指针移向堆栈中的很多 据字节,然后将直接地址( direct )单元的内容送入 SP 所指向的栈单元中,执行( SP )( direct ),不影响标志位。 例 设堆栈指针为 09H ,数据指针内容为 0123H ,试分析下列指令的执行结果。PUSH DPLPUSH DPH执行结果为:( 0AH ) =23H ,( 0BH ) =01H ,( SP )

5、 =0BH 指令: POP direct 功能:把堆栈中的中间数据送入目的字节,称为出栈。 说明:读出由栈指针寻址的内部 RAM 单元内容。送到指定的直接寻址的字节单元,然后栈指针自动减 1 ,即执行操作: ( direct ) (SP),(SP) (SP)-1; 指令执行不影响标志位。 例 设( SP ) =32H ,内部 RAM 的 31H ,32H 单元中的内容分别为 23H , 01H ,试分析下列指令的执行结果。 POP DPH POP DPL 执行结果为( DPTR ) =0123H, (SP) =30H 。 二、掌握转移指令 (1)长转移指令 LJMP 目标语句 说明:目标语句可

6、以是程序存储器 64KB 空间的任何地方。 (2)肯定转移指令 AJMP 目标语句 例: 4002H LJMP MM 4600H MM : MOV A , #00H 留意:目标语句必需和当前语句同页。在 51 单片机中, 64KB 程序存储器分成 32 页,每页 2KB(7FFH) 。 (3)短跳转指令 SJMP 目标语句 (rel) 例: 4060H SJMP LOOP 4090H LOOP : MOV A , #0FFH 留意:短跳转的目标语句地址必需在当前语句向前 127 ( 7FH )字节,向后 128 ( 80H )字节,否则在进行程序编译时会出错。 (4)减 1 条件转移指令组 DJNZ Rn ,目标地址 (rel) ;假如 (Rn)-1 0 ,则程序跳转到目标语句,否则挨次执行下一条语句。 DJNZ direct, 目标地址 (rel) ;假如 (direct)-1 0 ,则程序跳转到目标语句,否则挨次执行下一条语句。 例 : 将 8031 内部 RAM 的 40H4FH 单元置初值 A0HAFH 。程序为:MOV RO , #40H ; RO 赋值,指向数据单元MOV R2 , #10H ; R2 赋值,为传送字节数MOV A , #0A0H ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论