章专 单片机导论(4)

上传人:豆浆 文档编号:47564685 上传时间:2018-07-02 格式:PPT 页数:73 大小:418.50KB
返回 下载 相关 举报
章专 单片机导论(4)_第1页
第1页 / 共73页
章专 单片机导论(4)_第2页
第2页 / 共73页
章专 单片机导论(4)_第3页
第3页 / 共73页
章专 单片机导论(4)_第4页
第4页 / 共73页
章专 单片机导论(4)_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《章专 单片机导论(4)》由会员分享,可在线阅读,更多相关《章专 单片机导论(4)(73页珍藏版)》请在金锄头文库上搜索。

1、第四章 80C51的指令系统 4.1 指令系统简介 4.2 寻址方式 4.3 数据传送类指令 4.4 算术运算类指令 4.5 逻辑操作类指令 4.6 控制转移类指令 4.7 位操作类指令 4.1 指令系统简介 指令是规定计算机进行某种操作的命令。计算 机能够执行的各种指令的集合称为指令系统。 一般来说,一台计算机的指令越丰富,寻址方 式越多,且每条指令的执行速度越快,则它的 总体功能越强。 80C51的指令系统使用了7种寻址方式,共有 111条指令: 指令按字节数分: 可分为单字节指令(49条),双 字节指令(45条),三字节指令(17条); 按运算速度分类,可分为单周期指令(64条), 双周

2、期指令(45条),四周期指令(2条)。指令的组成 指令一般由操作码和操作数组成。 单字节指令有两种情况: 1) 操作码、操作数均包含在这一个字节之内 ; 2) 只有操作码而无操作数。 双字节指令: 前一个字节是操作码,后一 个字节是操作数; 三字节指令: 第一个字节为操作码,后二 个字节为操作数。 计算机真正指令的指令均由二进制代码 组成。为阅读和书写方便,常把它写成 十六进制形式,通常称这样的指令为机 器指令。 为了便于记忆和使用,常制造厂家对指 令系统的每一条指令都给出了助记符。 助记符是根据机器指令不同的功能和操 作对象来描述指令的符号。这种用助记 符形式来表示的机器指令称为汇编语言 指

3、令。指令格式与符号约定 汇编指令格式助记符 目的操作数,源操作数助记符用来表达指令操作功能,如 MOV ANL INC,操作数则是指令操 作的参数指令系统支持的数据形 式MCS-51指令系统支持的二进制数据格式有四种。1、位(bit):指的是1位二进制数,MCS-51的布 尔处理器通过指令系统的17条位操作指令支持位数据 的操作;2、8位无符号二进制数,取值范围为0255。 MCS-51指令系统中除位操作指令之外的绝大多数指 令都支持字节数据的操作;3、8位有符号二进制数,取值范围为-128+127 。MCS-51指令系统中加、减法算术运算指令支持补 码形式的8位有符号数操作;4、16位无符号

4、二进制数,取值范围为065535。指令中所用符号注释 1Rn 当前选中的工作寄存器组R0R7(n=07)。 2Ri 当前选中的工作寄存器组中可作为地址指针的两 个工作寄存器R0和R1(i=0或i=1). 3#data 8位立即数,即包含在指令中的8位常数。 4#data16 16位立即数,即包含在指令中的16位常数。 5direct 8位片内RAM单元(包括SFR)的直接地址。 6Addr11 11位目的地址,用于ACALL和AJMP指令中。 目的地址必须放在与一条指令第一个字节同一 个2KB程序存储器地址空间之内。 7Addr16 16位目的地址,用于LCALL和LJMP指令中。 目的地址范

5、围在64KB程序存储器地址空间。 8rel 补码形式的8位地址偏移量,用于相对转移指 令中。偏移量以下一条指令第一字节地址为基 值,偏移范围为-128+127。 9bit 片内RAM或特殊功能寄存器的直接位寻址地址 。 10 间接寻址方式中,表示间接寻址寄存器的符号 。 11/ 位操作指令中,表示对该位先取反再参与操作 ,但不影响该位原值。 12X 片内RAM的直接地址或寄存器。 13(X) 在直接寻址方式中,表示直接地址X中的内容 ;在间接寻址方式中,表示由间址寄存器X指 出的地址单元中的内容。 4.2 寻址方式 MCS-51有七种寻址方式: 1立即寻址 2直接寻址 3寄存器寻址 4、寄存器

6、间接寻址 5变址寻址 6相对寻址 7位寻址1立即寻址 立即寻址就是操作数在指令操作码后直接给出 。该操作数直接参与操作,所以又称立即数, 用#data(8位立即数)或#data16(16位立 即数)表示。MOV DPTR,#1828H 例1 指令助记符:MOV A,#3AH 指令代码为74H、3AH。这条指令的功能是把 立即数3AH送入累加器A中,该指令执行过程 如图4-1所示。程序存储区01110100001110102000H2001H2002H操作吗立即数ACC00111010图4-1 “MOV A,#3AH”执行示意图2直接寻址 操作数项给出是参加运算操作数的地址 。例3 指令助记符:

7、MOV A,3AH 指令代码为E3H、3AH,是双字节指令 。该指令是把3AH单元的内容10H送给 累加器A中。图4-3 “MOV A,3AH”执行示意图程序存储区E53A10001001片内RAM区103AACC103寄存器寻址 寄存器寻址是对选定的工作寄存器 R0R7、累加器A、通用寄存器B、地 址寄存器DPTR和进位CY中的数进行操 作。其中ACC、B、DPTR及CY则隐含在 操作码中。 例4 指令助记符:MOV A,R2 图4-4程序存储区EA2020片内RAM区4A4A02ACC图4-4 “MOV A,R2”执行示意图4、寄存器间接寻址寄存器间接寻址是以指定寄存器中内容为 地址,由该

8、地址所指定的单元内容作为 操作数的寻址方式。MCS-51规定R0或 R1为间接寻址寄存器,可寻址内部RAM 单元内容。还可以采用数据指针DPTR作 为间接寻址寄存器,寻址外部数据存储 器的64K字节空间。MOV A,R0 ;A(R0)图4-5 “MOV A,R0”执行示意图程序存储区片内RAM区片内RAM区E650ACACACC50(R0) 0020305变址寻址(基址寄存器 +变址寄存器间接寻址)变址寻址是以DPTR或PC作为基址寄存器 ,以累加器A作变址寄存器,并以两者内 容相加形成的16位地址作为操作数的地 址,故亦称之为基址寄存器加变址寄存 器间接寻址。 MOVC A,A+DPTR M

9、OVC A, A+PCJMP A+DPTR 图程序存储区A93(47)E020 00DPH DPL204020E047ALU图4-7 “MOV C A,A+DPTR”执行示意图6相对寻址 相对寻址是将程序计数器PC中的当前内 容与指令最后一个字节所给出的数相加 ,其结果作为跳转指令的转移目的地址 。指令最后一个字节给出的数据称为偏 移量(rel)。偏移量为带符号的数,其表 示的范围为 -128 +127。 目的地址=转移指令地址+该指令字节数 +relALU程序存储区 4003 30 A0 BD 741000 1001 1002 1003 1004 10051002PC图4-8 “JC 03H

10、”执行示意图7位寻址位寻址指令的机器码中含有位地址,计 算机根据机器码中的位地址就可以找到 位操作数,完成相应位操作。位地址用 bit表示。位寻址的寻址范围包括:片内 RAM的位寻址区,单元地址为20H 2FH,共16个字节,128位,位地址的 范围为00H7FH MOV C, 7FH ;Cy(7FH )0000000000100000图4-9 “SETB 3DH”指令执行示意图寻址方式寻 址 空 间立即寻址程序存储器ROM直接寻址片内RAM低128B和特殊功能寄存器SFR寄存器寻址工作寄存器R0R7,A,B,CY,DPTR寄存器间接寻址片内RAM低128BR0,R1,SP(仅PUSH ,PO

11、P),片外 RAM(R0,R1,DPTR) 变址寻址程序存储器(A+PC,A+DPTR)相对寻址程序存储器256B范围(PC+偏移量)位寻址片内RAM的20H2FH字节地址和部分特殊功能寄存器SFR表4-1 操作数寻址方式和有关空间4.3 数据传送类指令 这类指令操作一般是把源操作数传送到目的操 作数,指令执行后,源操作数不变,目的操作 数修改为源操作数,但交换型传送指令只是将 源操作数和目的操作数交换了存放单元。传送 类指令一般不影响标志位。另外,对于传送目 的操作数为ACC的指令将影响奇偶标志P。 4.3.1 内部RAM数据传送指令 4.3.2 外部数据传送指令 4.3.3 查表指令 4.

12、3.4 堆栈操作指令 4.3.5 交换指令4.3.1 内部RAM数据传送 指令1)八位数传送指令:MOV d, s ;d:A, Rn, direct,Ri; ;s: A,Rn, direct, Ri, #data Rn(n=0-7) Ri(I=0,1) Ri Rn #data direct AR05060604050图4-10 “MOV 40H,R0”执行示意图2) 十六位传送指令: MOV DPTR,#data16 ;dataHDPH,dataLDPL 其功能是把16位常数送入DPTR。 注意,该指令在译成机器码时,是高字 节在前,低字节在后。如“MOV DPTR ,#1234H”,其机器码

13、是90、12、34 。指令举例: MOV A, #3MOV R0, 3 MOV R7, AMOV 45H, 67H MOV DPTR, #3000H 注意以下指令: MOV R0, R1 MOV A, A MOV #20, A MOV R0, R2 MOV R3, R1MOV R7, A MOV DPTR, A MOV DPTR,3MOV DPTR, ACC MOV R0, #3MOV DPTR, #34.3.2 外部数据传送指令 在80C51指令系统中,CPU对片外RAM的访 问只能用寄存器间接寻址方式,且仅有4条指 令:MOVX DPTR,A;将(A)送DPTR指出的片外 RAM地址单元,

14、即写片外存储器。MOVX A,DPTR;将DPTR指出的片外 存储单元内容读入A中。MOVX A,Ri;(Ri)AMOVX Ri,A;A(Ri) 用P2作高位地址,与Ri中的低8位地址组成 16位地址,对片外RAM进行读写操作。4.3.3 查表指令MOVC A,A+DPTR;用DPTR基址寄存 器,与变址寄存器A中的内容相加作寻址 地址,将该地址单元的内容取出,放入A 内。MOVC A,A+PC;将PC指针作基址 寄存器,与变址寄存器A中的内容相加作 为地址,查出该地址的内容送A。4.3.4 堆栈操作指令 PUSH direct ;SP+1SP,(direct )(SP) POP direct

15、 ;(SP)(direct) ,SP-1SP 前一条指令是入栈(或称压栈或进栈)指令, 先将栈指针SP的内容加1,然后将直接寻址单 元中的数传送(或称压入)到SP所指示的单元 中。 后一条指令是出栈(也称弹出)指令,其功能 是先将栈指针SP所指出单元的内容送入直接寻 址单元中,然后将SP的内容减1,此时SP指向 新的栈顶。例子MOV B,#14H MOVSP,#57H MOVA,#32H PUSHACC PUSHB;(57H),(58H), (59H)? SP ? POPACC POPB; (57H),(58H), (59H)? SP,ACC, B?(57H)=原来的数, (58H)=32H , (59H)=14H, SP=59H(57H)=原来的数, (58H)=32H , (59H)=14H, SP=57H , ACC=14H, B=32H4.3.5 交换指令 XCH A,Rn

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号