- 8
- 0
- 约1.73万字
- 约 87页
- 2018-06-21 发布于上海
- 举报
章学时少于40
第二章 指令系统内容提要寻址方式传送与交换指令算术运算、逻辑运算指令控制转移指令位操作指令 计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为CPU识别并执行的指令的集合就是该CPU的指令系统。MCS-51单片机汇编语言指令格式: 操作符 目的操作数,源操作数 操作符指明该指令完成什么操作; 操作数是指明该指令的操作对象。 目的操作数是存放结果的。 指令中操作数提供的方式称为寻址方式。 指令中的常用符号Rn: n=(0~7),表示当前工作寄存器R0~R7中的一个。Ri: i=(0、1),代表R0和R1寄存器中的一个,用作间接寻址寄存器。dir : 8 位直接字节地址(片内 RAM 和 SFR ) #data: 8位立即数,即8位常数。可以为2进制(B)、 10进制、 16进制(H)、 字符(‘ ’)、data16: 表示16位立即数,即16位常数,取值范围为#0000H~#0FFFFHaddr16 : 表示16位地址 addr11 : 表示11位地址rel : 相对偏移量(为一字节补码)用于相对转移指令中bit :位地址,在位地址空间中。 $: 表示当前指令的地址。 2.1 寻址方式1、立即寻址 指令中直接给出操作数的寻址方式。在51系列单片机的指令系统中,立即数用一个前面加 “#“号的8位数(#data,如#30H)或16位数(#data16,如#2052H)表示。立即寻址中的数,称为立即数。例如指令:MOV A,#30H41H 78H41H 78H40H 56H40H 78H例:MOV A,40H ; A=56H 机器码 E540 MOV 40H,41H ; 机器码为854140内部RAM (41H)→(40H)(40H)=(41H)=78H MOV P0,#45H;45H→P0, P0为直接寻址的 SFR,其地址为 80H, 机器码为7580452、直接寻址 操作数的地址直接出现在指令中。 寻址对象: ①内部数据存贮器:使用它的地址。 ②特殊功能寄存器:既可使用它的地址,也可以 直接使用寄存器名。 3、寄存器寻址 操作数存放在寄存器中。寻址对象:A,B,DPTR,R0~R7 。 B 仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。 A 可以寄存器寻址又可以直接寻址,直接寻址时写作ACC 例如:MOV A,R0 ;R0→A,A、R0均为寄 存器寻址,机器码E8 MUL AB;A*B→BA,A、B为寄 存器寻址,机器码A4 MOV B,R0;R0→B,R0为寄存器寻 址,B为直接寻址 机器码88F0,其中 F0为B的 字节地址(见表1-2) PUSH ACC;A的内容压入堆栈 机器码C0E0 4、寄存器间址(寄存器间接寻址) 操作数存放在以寄存器内容为地址的单元中。例如 MOV R0,#20H MOV @R0,A;A→(20H) 地址的内部RAM MOVX A,@R1;外部RAM(地址为P2 R1 ) 的 内容→A MOVX @DPTR,A;A→以DPTR内容为地址的 外部RAM 注意:使用寄存器间址方式的间址寄存器必须予以赋值。7、变址寻址 以DPTR或PC寄存器内容为基地址,和A的内容为相加形成操作数的地址。其中累加器A内容是可变的。 例如: MOVC A, @A+DPTR6、相对寻址 相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。 例如:JZ 61H5、位寻址 对片内RAM中20H~2FH中的128个位地址及SFR中的可位寻址的位地址寻址。 例如: MOV C,20H;20H位的内容送CY标志 位,C称为位累加器。 MOV A,20H ;字节寻址,将内部 RAM中20H单元中的 内容送给累加器A。 以上两条指令均为寻址,究竟是位寻址还是字节寻址,根据两操作数类型一致的原则,由另一个操作数决定。 一、内部RAM、SFR之间的传送MOV指令 Rn #data dir @Ri dir@RiMOV A ,A A Rn, @Ri #data dir MOV dir ,#data Rn A dir #data A dir #dataMOV @Ri,MOV Rn , 两端有箭头的可以互相传送双向例 R1=20H,(20H)=55H, 指令MOV A,@R1执行后,A=55H。例 (40H)=30H,执行指令 MOV R7,40H 后,R7=30H。例 MOV R7,#40H 执行后, R7=40H。 编程将R3的内容送R1。 MOV A,R3 MOV R1,A 编程将内部RAM
原创力文档

文档评论(0)