第3章 指令系统(8学时)

时间:2026-01-20

C51单片机学习

FFFFH

FFFFH

FFH E0H

A SFR

80H 30H 20H 0000H ROM 00H 内RAM 数据缓冲 区 位寻址区 寄存器区 0000H 外RAM

C51单片机学习

第3章 MCS-51指令系统指令的格式: 指令的格式: LOOP: MOV [标号] 操作码 A, R0 ;将R0的内容送 的内容送A 将 的内容送 [注释] 第一操作数 第二操作数 目的操作数) 源操作数) (目的操作数) (源操作数)

注:白色的内容不是必须的

C51单片机学习

3.2 数据传输类指令以累加器A 1. 以累加器A为目的操作数的指令 MOV MOV MOV MOV A, A, A, A, #data Rn @Ri direct ; n=0~7 ; i=0,1 ;内部RAM或SFR地址

注意: 注意: MOV A, @Ri MOV MOV

以Ri的内容为地址 ,把该地址中 的内容送到A中去。A← ((Ri)) A, #20H ; (A) = 20H A, 20H ; (A) = (20H)

C51单片机学习

2. 以Rn为目的操作数的指令MOV MOV MOV R n, A Rn , direct Rn ,#data ; n=0~7

C51单片机学习

3.以直接地址为目的操作数的指令 3.以直接地址为目的操作数的指令MOV MOV MOV MOV MOV direct, direct, direct, direct, direct, A Rn ; n=0~7 @Ri ; i=0,1 direct #data

C51单片机学习

4. 以寄存器间接地址为目的操作数指令MOV @Ri, A MOV @Ri , direct MOV @Ri ,#data ; i=0,1

C51单片机学习

应用举例1MOV P1, #0FEH ; 11111110B 可以使P1.0上的发光二极管点亮 上的发光二极管点亮 可以使 MOV P1, #0F0H ; 11110000B 可以使P1口上的上面 个发光二 可以使 口上的上面4个发光二 口上的上面 极管点亮 5v P1.0 a P1.1 b P1.2 c P1.3 d P1.4 e P1.5 f P1.6 g P1.7 dp

C51单片机学习

8段数码管显示P1.0 a P1.1 b P1.2 c 5v P1.3 d P1.4 e P1.5 f MOV P1, #00H ; 显示 8. MOV P1, #0F8H ; 显示 7 MOV P1, #77H ; 显示 A P1.6 g P1.7 dp

C51单片机学习

应用举例2一个引脚的高低电平,可以通过“光电耦合器” 一个引脚的高低电平,可以通过“光电耦合器”控制 继电器,从而以“弱电”控制“强电” 继电器,从而以“弱电”控制“强电”。

C51单片机学习

3.1 寻址方式指令的格式: 指令的格式: LOOP: [标号] MOV 操作码 A, 第一操作数(目的操作数) 目的操作数)

R0 第二操作数(源操作数) 源操作数)

;将R0的内容送 将 的内容送 的内容送A [注释]

注:白色的内容不是必须的

寻址方式:寻找(或确定)操作数所在单元地址的方式。 寻址方式:寻找(或确定)操作数所在单元地址的方式。 寻址方式越多,计算机寻址能力越强,但指令系统也越复杂。 寻址方式越多,计算机寻址能力越强,但指令系统也越复杂。 说明:以下讨论的寻址方式都是针对源操作数的。 说明:以下讨论的寻址方式都是针对源操作数的。但实际上目 的操作数也有寻址问题。 的操作数也有寻址问题。

C51单片机学习

3.1.1 寄存器寻址

MOV A, Rn

操作数在寄存器中, 操作数在寄存器中,如R0~R7,A、B、Cy(位)、 , 、 、 ( )、DPTR 3.1.2 直接寻址 MOV A, 40H

操作数直接以单元地址形式给出(也可以寄存器名称形式给

出, 除外) 操作数直接以单元地址形式给出(也可以寄存器名称形式给出,但A B DPTR 除外) 如: MOV A, P0 ; MOV R0, TH0

3.1.3 寄存器间接寻址

MOV A, @R1

操作数是通过寄存器间接得到的。 操作数是通过寄存器间接得到的。 3.1.4 立即寻址 MOV A, #40H

操作数在指令中直接给出。 操作数在指令中直接给出。 3.1.5 基址寄存器加变址寄存器寻址 为基址寄存器, 为变址寄存器, 以DPTR或PC为基址寄存器,以A为变址寄存器, 或 为基址寄存器 为变址寄存器 以两者相加形成的16位地址为操作数的地址 位地址为操作数的地址。 以两者相加形成的 位地址为操作数的地址。 MOVC A, @A+DPTR MOVC A, @A+PC

C51单片机学习

5. 16位数据传输指令MOV DPTR, #data16

DPTR----数据指针,为SFR中(DPH)、(DPL)

C51单片机学习

6. 堆栈操作指令进栈指令 PUSH direct

如: (SP)=60H, (A)=30H ,(B)=70H 时,执行 PUSH Acc ;(SP)+1=61H→SP, (A) → 61H PUSH Acc ;(SP)+1=61H→SP, (A) → 61H 结果: 结果 (61H)=30H, (62H)=70H, (SP)=62H

退栈指令

POP

direct

如: (SP)=62H, (62H)=70H ,(61H)=30H 时,执行 POP DPH ;((SP)) →DPH, (SP)-1=61H→SP - POP DPHL ;((SP)) →DPL, (SP)-1=60H→SP - 结果: 结果 (DPTR)=7030H, (SP)=60H 堆栈的存储原则: 堆栈的存储原则:先进后出

C51单片机学习

7. 累加器A与外部数据传输指令MOVX MOVX MOVX MOVX A, @DPTR ;范围64K A, @Ri ;范围0~255 @DPTR, A @Ri , A

C51单片机学习

8. 查表指令(1)MOVC A, @A+DPTR 例: (DPTR)=0300H, (A)=02H ROM中 (0302H)=55H 执行: MOVC A, @A+DPTR 结果:(A)=55H

C51单片机学习

(2)MOVC A, @A+PCPC--程序指针,指向下一条指令的地址 例:根据A中的内容(0~9)查平方表

…… 此处隐藏:677字,全部文档内容请下载后查看。喜欢就下载吧 ……
第3章 指令系统(8学时).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219