微机原理寻址方式_第1页
微机原理寻址方式_第2页
微机原理寻址方式_第3页
微机原理寻址方式_第4页
微机原理寻址方式_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、? 1 、立即寻址(immediate addressing ) 双字节指令,第一个字节是操作码,第二个字节是操作数,操作数在指令中直接给 出,故称为立即数。在立即数前面必须加上前缀“ #”。如: MOV DPTR,#1234H1234H是立即数,指令功能是把16位立即数1234H送到数据指针 DPTR中,如图。立即寻址只能用于源操作数。MOVA, #12H(V)MOV DPTR #1200H(V)MOV #1200H, DPTR (X)? 2、直接寻址(direct addressing) 在指令中直接给出操作数单元的地址。如: MOV A, 3AH指令功能:把片内 RAM中3AH单元内的数

2、据传送给累加器A。如图所示:直接寻址方式只能给出 8 位地址,限于片内 RAM:(1) 低 128单元,在指令中直接以单元地址形式给出。(2) 特殊功能寄存器 ,在指令中直接以单元地址形式给出,还可以寄存器符号形式给出。如: PUSH DPH=PUSH 83H。直接寻址访问累加器 A时,用ACC表示累加器,以便与寄存器寻址方式区别。?3、寄存器寻址(register addressing)在指令中将 指定寄存器的内容 作为操作数。 寄存器寻址方式中, 用寄存器名表示寄存器 。 寻址范围:四组通用寄存器 Rn ( R0R7)、部分专用寄存器(A, B, DPTR)。如: INC R0指令功能:把

3、寄存器 R0的内容加1,再送回R0中。?4、寄存器间接寻址(register indirect addressing ) 在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才是操作数。 在该寻址中,寄存器的名称前需加前缀“”。例如,指令 MOV A, R0指令功能:若 R0寄存器的内容是 3AH,指令的功能是以 3AH为地址,将3AH地 址单元的内容送到累加器 A中。如下图:? 寄存器间接寻址的寻址范围:(1) 片内RAM的低128单元,只能采用 R0或R1为间接寻址寄存器。其形式为 Ri (i=0, 1),如 MOV A, R0。(2) 片外RAM的64KB单元,使用 DPTR作为间接

4、寻址寄存器。例如,MOVX A, DPTR(3) 片外RAM的低256单元,使用R0或R1作为间接寻址寄存器。(4) 堆栈区:堆栈操作指令PUSH和POP,以SP作间接寻址寄存器(隐含 SP)。?5、相对寻址(relative addressing ) 仅用于相对转移指令。以 PC 的当前值 (即相对转移指令执行后 PC 的内容),加上指令中给出的 偏移量 , 形成程序转移的 目的地址 ,即 目的地址 =PC 的当前值 +偏移量偏移量是一个 8 位二进制补码数,取值范围为 -128+127。? 例如,指令 JC 16H(二字节指令,当标志位 C=1时转移,C=0时不转移)若进位位C=0,则PC

5、=PC+2即顺序往下;若进位位C=1,则PC中的当前内容(PC+2,加上偏移量80H所得结果为该转移指 令的目的地址,见下图:? 6 、变址寻址(index addressing )以DPTR或PC为基址寄存器,累加器A为变址寄存器,以两者内容相加后形成的16位地址作为操作数地址,即:操作数的有效地址 =基址寄存器 +变址寄存器例如, MOVC A, A+DPTR功能:把DPTR和A的内容相加后得到的程序存储器地址单元的内容送A。变址方式常用于访问程序存储器的数据表,即查表指令。例3-2-3:已知片外ROM的0302H单元有一常数 X现欲把它取到累加器 A中,请编写相应的 程序 .解:根据变址

6、寻址的特点,基地址应取0300H,地址偏移量为02H.相应程序为:MOV DPTR, #0300HMOV A, #02HMOVC A, A+DPTR?7、位寻址(bit addressing ) 位寻址是指按位进行的寻址操作。8051 单片机中,操作数不仅可以按字节进行操作,也可以按位进行操作。把某一位 作为操作数时,这个操作数的地址称为位地址。位寻址区包括:(1)内部RAM的位寻址区,地址范围是 20H2FH,共16个RAM单元,位地址为00H7FH; (2 )特殊功能寄存器 SFR中有11个寄存器可以进行位寻址。寻址位在指令中有以下 4 种表示方法:( 1 )直接使用位地址表示。(2) 特

7、殊功能寄存器符号加位数。例如PSW寄存器的第7位,可表示为:PSW.7(3) 位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的,如PSW寄存器第7位 C标志位,则可使用 C表示该位。(4)用 bit 定义的有名字的位地址。如:L1 bit PSW.7,用 L1 代替 PSW.7? MCS-51 的寻址方式( P46)? 课堂练习?P73: 3.1 第 8 小题?3.3 指令系统MCS-51单片机指令系统包括 111条指令,按功能可以划分为以下 5类: ?1. 内部 8 位数据传送指令( 15 条)内部 8 位数据传送指令共 15 条,主要用于 MCS-51 单片机 内部 RAM 与寄存器

8、之间 的数据传送 。指令基本格式:MOV <目的操作数 >,<源操作数 > MOV 指令在片内 RAM 的允许操作图 课后习题 1 试编写把片内 RAM 30H 单元和 40H 单元中的内容进行交换的程序 .?2、16 位数据传送指令( 1 条)格式 : MOV DPTR, #data 16功能:把16位常数送入数据指针 DPTR。其中,高位字节立即数送入 DPH,低位字 节立即数送入DPL。唯一的16位立即数传送指令。例如 : MOV DPTR, #1234H执行运行后:DPTR=1234H, DPH=12H, DPL=34H。注意:? 外部数据存储器传送操作? 例题

9、 3-3-3:把外部数据存储器 2040H 单元中的数据传送到外部数据存储器 2560H 单元中去。? 例3-3-4:设R0=30H, 30H=4AH, A=28H,则执行下列指令后的结果为?执行 XCH A, R0 后, 执行 XCHD A, R0 后, 执行 SWAP A 后, 堆栈使用时一定先设堆栈指针,复位时 SP=07H 。 堆栈遵循后进先出的原则安排数据。 堆栈操作必须是字节操作,且只能直接寻址。(话 PUSH/POP ACC 或 PUSH/POP 0E0H(X) PUSH/POP A(V) PUSH 00H(X) PUSH R0?3.3.2 算术运算类指令?1)加法指令( 4 条

10、)指令格式: ADD A ,<src>其中:vsrc>包括 Rn、Ri、direct、#data。功能:A J A+ <src>对标志位的影响: ADD对PSW中的所有标志位均产生影响。?2)带进位的加法指令( 4条)指令格式: ADDC A ,vsrc>其中:<src>包括 Rn、Ri、direct、#data。功能:AJ A+ vsrc> + Cy对标志位的影响:ADDC对PSW中的所有标志位均产生影响。?3)带借位的减法指令( 4条)指令格式: SUBB A ,vsrc>其中:vsrc>包括 Rn、Ri、direct、#d

11、ata。功能:AA <src> Cy对标志位的影响:SUBB对PSW中的所有标志位均产生影响。? 加减法指令关系图? 4)BCD码调整指令(1条)?5)加 1 指令( 5 条)?6)减 1 指令( 4 条)?1、无条件转移指令( 4条)LJMP addr16; addr16 宀 PC转移范围: 64KB 程序存储器的任何单元。见下图:AJMP addr11;先 PC+2 t P, addrll 宀 PC0 , PG5ii 不变转移范围:含有下一条指令首地址的同一个2KB范围,即高5位地址相同;SJMP rel;先 PC+2 t PC, PC+ rel t PC;转移范围: -128

12、+127对应 rel 值: 00H7FH (0+127)80HFFH( -128-1 )JMP A+DPTR; A+DPTRt PC转移范围:是以 DPTR为首地址的256B。LCALL addr16; PC+3tPC; SP+1tS,PPC07 t(SP); SP+1tS,PPC815t(SP) ; addr015t PC说明:(1)该指令执行前PC值为下一条指令的首地址;(2)转移范围:整个程序存储空间,64KB范围。例3-3-13 :设SP=5FH符号地址 SUBRTN指向5678H,分析下列指令的执行情况:地址程序0123HLCALLSUBRTN0126H解:调用指令执行后, PC=0

13、126H,SP+1tSP=60H, PC07t(SP ,) 即 (60H) =26H,SP+1tSP=61H, PC815t(SP) ,即 (61H) =01HPC压栈保护后,5678H t PC即新的PC值为5678H转去执行“ SUBRTN子程序。 子程序返回指令RET; (SP) t P8C15 , SP -1 t SP; (SP) t P0C7 , SP -1 t SP 中断服务程序返回指令RETI; (SP) t P8C15 , SP -1 t SP; (SP) t P0C7 , SP -1 t SP;开放中断逻辑解: 相应的程序为 :ORG 1000HMOV SP, #70HMOV

14、R0,#20HMOVR2,#0BHACALLZEROMOVR0,#30HMOVR2,#0FHACALLZEROMOVR0,#40HMOVR2,#10HACALLZEROSJMP$17 条。(1)直接用位地址如:D4H(2)用特殊功能寄存器名加位数女口: PSW.4(3)用位名称女口: RS1、 RS0(4)用 bit 定义的有名字的位地址女口: N1 bit PSW.4MOVC, bit;(bit)TCMOVbit, C;C T (bit)注意:包括位数据传送、位状态修改、逻辑运算、条件转移等指令,共 位地址的表示方法:其中一个操作数必须是位累加器 C。 例如:MOVC,TR0,MOV08H,C1)位清 0 指令 CLR C CLR bit2)位置 1指令 SETB CSETB bit3)位取反指令CPLCPLC bit1)位逻辑“与”指令ANLC,bitANLC,/bit2)位逻辑“或”指令ORLC,bitORLC,/bitJBbit,rel ; PC+3T PC;0 T C;0 ->(bit); 1 T C; 1 T(bit)(/C)T C(/bit)T bitC)A(bit)TCC)A(/bit )TCC)V(bit)TCC)V(/bit )TC;若(bit)= =1,贝U PC+rel t pc;若(b

温馨提示

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

评论

0/150

提交评论