产品概述

sp单片机 跟电师傅学单片机(19):单片机控制转移指令图文讲解3

小编 2024-11-24 产品概述 23 0

跟电师傅学单片机(19):单片机控制转移指令图文讲解3

一:绝对调用指令

绝对调用指令表

在实际单片机程序编程中,有时需要在主程序里面引用另外一段程序,引用的程序一般称为子程序,子程序可以多次反复调用,用起来很方便,还减少了编程程序的长度。

比如,要用到一个延时程序。怎么用呢?就是要把延时程序存放到程序存储器ROM单元中,只要知道存放的地址,用这个指令ALL addr11就可转去运行这个延时程序,运行完后还能返回。

addr11:调用程序的范围:2的11次方=2K

ALL addr11绝对调用指令最大的特点:调用了还能回来。

前面讲的有条件和无条件指令是:转走了就不用回来了。

但是它们类似的地方: 都是转移指令。

ALL addr11指令功能:

子程序短调用指令。是主程序调用子程序,调用子程序的范围是2KB。

PC:是单片机程序计数器,程序从哪里执行,完全由PC里的内容决定,始终是指定下一条将要执行指令的地址(是16位地址),单片机系统上电或复位时,PC的初始值为0000H。

SP:是51单片机堆栈指针,是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始。堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值。

二:长调用指令

长调用指令表

addr16:调用程序的范围:2的16次方=64K

ALL addr16指令功能:

子程序长调用指令,也称为远程调用指令。是主程序调用子程序,调用子程序的范围是64KB。

三:返回指(2条)

返回指令表

RET指令功能:

是子程序返回指令。是使子程序返回主程序。RET返回指令要与调用指令成对出现,缺一不可,否则会出现错误。

RET返回指令使用时应放在子程序的末尾,该指令可从堆栈中取出断点地址,送回是单片机程序计数器PC,并从断点处开始继续执行程序,即是单片机程序计数器PC指向主程序调用该子程序指令的下一个地址。

RETI指令功能:

中断子程序返回指令,使中断子程序返回主程序。

RET指令和RETI指令共同点:

基本功能是相同的,都是使子程序返回主程序,使单片机程序计数器PC指向下一个地址的指令。

RET指令和RETI指令区别:

在执行RETI指令时,还将清除中断响应时所置位的优先级状态触发器,开放中断逻辑,使得已申请的较低级的中断源可以响应。

四:空操作指令

空操作指令表

NOP指令功能:

空操作指令,它不作任何操作,但要消耗一个机器周期的时间,一般用于单片机程序延时或等待。

到此为止,17条单片机控制转移类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!

小小单片机(二)

今天继续给大家介绍单片机的小知识,在(一)的介绍里小白给大家介绍了单片机类型,以及常用的一些命令符号,今天小白给大家介绍一些单片机的小程序以及具体讲解。

我们常用的单片机开始命令

ORG 0000H 表明的意思是程序在0000H的字节上开始

JMP 0030H 表明的意思是跳转到0030H字节

ORG 0030H 表明在0030H字节处开始程序

由上面的3个代码表明正式的程序从0030H

这是简单的开始指令以及跳转指令,下面给大家讲一下单片机的堆栈指令我们单片机里面的常见程序是PUSH,POP。它们的作用是:PUSH表明的是入栈指令这条命令是将堆栈针SP+1,然后将direct内容送到堆栈针SP中的RAM中。具体例子:当(SP)=60H,(A)=30H,(B)=70H。

执行命令:

PUSH A ;(SP)+1=61H→SP,(A)→61H

PUSh B ;(SP)+1=62H→SP,(B)→62H

这是堆栈命令的入住那,但是小白提醒大家一定记得要把A,B里的内容放在地址,不是A,B放进去!!!

出栈命令:POP表明将SP里的内容送到direct,堆栈指针—1

具体例子:当(SP)=62H,(62H)=70H,(61H)=30H

执行命令

POP DPH ;(SP)→DPH,(SP)-1→SP

POP DPL ;(SP)→DPL, (SP)-1→SP

结果为:(DPTR)=7030H,(SP)=60H

上面是单片机中比较基础的几个指令,希望自学的朋友可以收藏学习一下,这些只是小白和大家说的单片机知识中的一点点,希望大家可以慢慢学习,单片机是我们机械设计中的简单控制部分,但是也是学机械中不可缺少的一点点希望想自学机械朋友可以从基础一点点做起,把基本功做扎实!

小白是一个机械专业大二的学生,平时给大家分享一些关于机械方面的知识,有的方面介绍不周希望大家谅解。

文章仅作者所想,内容仅供参考

相关问答

单片机 sp 是什么意思啊-ZOL问答

SP指的是堆栈指针详细解释如下:堆栈是一种数据结构,和他相类似的有队列。如果...1,当单片机复位时PC=0000H,sp=07H,PO-P3口均为高电平2,当单片机复位时,psw=...

51 单片机 sp 是什么?

51单片机的sp是堆栈指针因为单片机里sp是堆栈指针。堆栈指针SP英文全称为stackpointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指令寄存器译码器...

单片机 RAM中, sp 的作用是什么?

SP指的是堆栈指针详细解释如下:堆栈是一种数据结构,和他相类似的有队列。如果对数据结构有这样的要求:先将数据放到该区内,先放的后出后放的先出。这...

【假设 单片机 sp 的值为43,执行一条lcall指令后, sp 等于,求过...

[最佳回答]SP先加1,后存数据到SP指向的地址.所以,执行LCALL指令后,SP先加1,再把LCALL指令后面的指令的地址保存到堆栈中...SP先加1,后存数据到SP指向的地址...

单片机 .如果{ SP }=40H.{DPTR}=1234H.执行下列操作?PUSHDPZPUS...

[最佳回答]如果(SP)=40H,(DPTR)=1234H.执行下列操作:PUSHDPLPUSHDPHPOPAPDPB结果:(A)=12H(B)=34H(SP)=40H

单片机 中( SP )=60H是什么意思?

单片机汇编中#都是表示立即数,这里MOV的对象不同,前者是A即ACC是普通的寄存器,存放的数据没有特殊含义;后者SP是堆栈指针,存放的数据会被看做是堆栈栈顶的偏...

51 单片机 sp 的范围?

在51单片机中,来SP栈指针是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始。在响应中断或子自程序调用时,发生入栈操作...

单片机 pop是什么指令?

POP指令的在单片机中执行是这样的,首先将SP中的值作为地址,并将此地址中的数送到POP指令后面的那个direct中,然后SP减1。单片机(Microcontrollers)是一种集...

sp 芯片中文名称?

名称是堆栈指针sp芯片的中文名称是堆栈指针单片机里sp是堆栈指针。堆栈指针SP英文全称为stackpointer,是单片机控制器的组成部件之一,与时控制逻辑电路、指...

单片机 是如何实现自动运行程序的?

将程序代码编写并存储在单片机的存储器中。然后,通过设置单片机的复位电路,使其在上电或复位时自动开始执行程序。...单片机实现自动运行程序的过程如下:首...

猜你喜欢