收藏 分销(赏)

微机原理寻址方式.doc

上传人:s4****5z 文档编号:8689940 上传时间:2025-02-26 格式:DOC 页数:6 大小:77KB
下载 相关 举报
微机原理寻址方式.doc_第1页
第1页 / 共6页
微机原理寻址方式.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
• 1、立即寻址 (immediate addressing ) Ø 双字节指令,第一个字节是操作码,第二个字节是操作数,操作数在指令中直接给出,故称为立即数。 Ø 在立即数前面必须加上前缀“#”。 Ø 如:MOV DPTR,#1234H 1234H是立即数,指令功能是把16位立即数1234H送到数据指针DPTR中,如图。 • 注意: Ø 立即寻址只能用于源操作数。 MOV A,#12H (√) MOV DPTR,#1200H (√) MOV #1200H,DPTR (×) • 2、直接寻址 (direct addressing) Ø 在指令中直接给出操作数单元的地址。 Ø 如:MOV A,3AH 指令功能:把片内RAM中3AH单元内的数据传送给累加器A。如图所示: Ø 直接寻址方式只能给出8位地址,限于片内RAM: (1)低128单元,在指令中直接以单元地址形式给出。 (2)特殊功能寄存器,在指令中直接以单元地址形式给出,还可以寄存器符号形式给出。 如:PUSH DPH==PUSH 83H。 直接寻址访问累加器A时,用ACC表示累加器,以便与寄存器寻址方式区别。 • 3、寄存器寻址 (register addressing) Ø 在指令中将指定寄存器的内容作为操作数。 Ø 寄存器寻址方式中,用寄存器名表示寄存器。 Ø 寻址范围:四组通用寄存器Rn(R0~R7)、部分专用寄存器( A, B, DPTR,)。 Ø 如:INC R0 指令功能:把寄存器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作为间接寻址寄存器。例如,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=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中,请编写相应的程序. 解: 根据变址寻址的 特点,基地址应取0300H,地址偏移量为02H.相应程序为: MOV DPTR, #0300H MOV A, #02H MOVC A, @A+DPTR • 7、位寻址 (bit addressing ) Ø 位寻址是指按位进行的寻址操作。 Ø 8051单片机中,操作数不仅可以按字节进行操作,也可以按位进行操作。把某一位作为操作数时,这个操作数的地址称为位地址。 Ø 位寻址区包括: (1)内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,位地址为00H~7FH; (2)特殊功能寄存器SFR中有11个寄存器可以进行位寻址。 Ø 寻址位在指令中有以下4种表示方法: (1)直接使用位地址表示。 (2)特殊功能寄存器符号加位数。例如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与寄存器之间的数据传送。 Ø 指令基本格式: 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。 • 注意: • 外部数据存储器传送操作 • 例题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 (×)PUSH/POP A (√)PUSH 00H (×)PUSH R0 • 3.3.2 算术运算类指令 • 1)加法指令(4条) Ø 指令格式: ADD A ,<src> 其中: <src>包括Rn、@Ri、direct、#data。 Ø 功能: A←A+ <src> Ø 对标志位的影响:ADD对PSW中的所有标志位均产生影响。 • 2)带进位的加法指令(4条) Ø 指令格式: ADDC A ,<src> 其中: <src>包括Rn、@Ri、direct、#data。 Ø 功能: A←A+ <src> + Cy Ø 对标志位的影响:ADDC对PSW中的所有标志位均产生影响。 • 3)带借位的减法指令(4条) Ø 指令格式: SUBB A ,<src> 其中: <src>包括Rn、@Ri、direct、#data。 Ø 功能: A←A- <src> - Cy Ø 对标志位的影响:SUBB对PSW中的所有标志位均产生影响。 • 加减法指令关系图 • 4)BCD码调整指令(1条) • 5)加1指令(5条) • 6)减1指令(4条) • 1、无条件转移指令(4条) LJMP addr16 ;addr16 → PC 转移范围:64KB程序存储器的任何单元。见下图: AJMP addr11 ;先PC+2 → PC, addr11 → PC10~0 , PC15~11不变 转移范围:含有下一条指令首地址的同一个2KB范围,即高5位地址相同; SJMP rel ;先PC+2 → PC,后PC+ rel → PC; 转移范围:-128~+127 对应rel值:00H~7FH(0~+127) 80H~FFH(-128~-1) JMP @A+DPTR ;A+DPTR→ PC 转移范围:是以DPTR为首地址的256B。 LCALL addr16 ;PC+3→PC ;SP+1→SP, PC 0~7 →(SP) ;SP+1→SP, PC 8~15 →(SP) ;addr0~15→PC 说明:(1)该指令执行前PC值为下一条指令的首地址; (2)转移范围:整个程序存储空间,64KB范围。 例3-3-13:设SP=5FH,符号地址“SUBRTN”指向5678H,分析下列指令的执行情况: 地址 程序 0123H LCALL SUBRTN 0126H …….. 解:调用指令执行后,PC=0126H, SP+1→SP=60H, PC 0~7 →(SP ),即 (60H)=26H, SP+1→SP=61H, PC 8~15 →(SP) ,即 (61H)=01H PC压栈保护后,5678H →PC, 即新的PC值为5678H转去执行“SUBRTN”子程序。 ①子程序返回指令 RET ;(SP)→PC 8~15 , SP -1→SP ;(SP)→PC 0~7 , SP -1→SP ②中断服务程序返回指令 RETI ;(SP) →PC 8~15 , SP -1→SP ; (SP) →PC 0~7 , SP -1→SP ;开放中断逻辑 解: 相应的程序为: ORG 1000H MOV SP, #70H MOV R0, #20H MOV R2, #0BH ACALL ZERO MOV R0, #30H MOV R2, #0FH ACALL ZERO MOV R0, #40H MOV R2, #10H ACALL ZERO SJMP $ Ø 包括位数据传送、位状态修改、逻辑运算、条件转移等指令,共17条。 Ø 位地址的表示方法: (1)直接用位地址 如:D4H (2)用特殊功能寄存器名加位数 如:PSW.4 (3)用位名称 如:RS1、RS0 (4)用bit定义的有名字的位地址 如:N1 bit PSW.4 ①MOV C,bit ;(bit)→C ②MOV bit,C ; C → (bit) 注意: 其中一个操作数必须是位累加器C。 例如: MOV C,TR0,MOV 08H,C 1)位清0指令 CLR C ; 0→ C CLR bit ; 0→(bit) 2)位置1指令 SETB C ; 1→ C SETB bit ; 1→(bit) 3)位取反指令 CPL C ; (/C)→ C CPL bit ;(/bit)→ bit 1)位逻辑“与”指令 ANL C,bit ; (C)∧(bit)→ C ANL C,/bit ; (C)∧(/bit)→ C 2)位逻辑“或”指令 ORL C,bit ; (C)∨(bit)→ C ORL C,/bit ; (C)∨(/bit)→ C JB bit,rel ; PC+3→ PC ;若(bit)= =1,则PC+rel→ PC ;若(bit)= =0,则顺序向下执行 JNB bit,rel ; PC+3→ PC ;若(bit)=0,则PC+rel→ PC ;若(bit)=1,则顺序向下执行 JBC bit,rel ; PC+3→ PC ;若(bit)=1, 则PC+rel→ PC, 0→(bit) ;若(bit)=0,则顺序向下执行 • 总 结 Ø 理解指令相关概念,熟悉指令的表示方法; Ø 理解并掌握指令的寻址方式,掌握立即寻址、直接寻址、寄存器寻址、寄存器间接寻址等常见寻址方式; Ø 掌握 常见指令的功能及其用法。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服