MCS-51单片机汇编语言的SP指令有什么作用?

作者&投稿:实言 (若有异议请与网页底部的电邮联系)
MCS-51单片机汇编语言的SP指令有什么作用?~

MCS-51单片机汇编语言中,没有SP这条指令,只有针对SP操作的指令。51单片机中SP是堆栈指针寄存器,存放着当前堆栈地址。堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值。
除了初始化堆栈时直接给SP赋值,SP显式存在,其它的对SP有影响的指令,对SP的操作都是隐式的,就是说SP并不出现在指令操作数当中。
例如:
MOV SP,#80H ;初始堆栈指针,(SP)=80H
LCALL XXXX;调用XXXX处的子程序,下一条指令PC值压栈,(SP)=(SP)+2
NOP;子程序返回时,RET指令从堆栈中弹出PC值,所以会返回到这里,(SP)=(SP)-2
PUSH ACC;累加器A的内容压栈保存,(SP)=(SP)+1
POP B;堆栈内保存的累加器A的内容弹出到B寄存器中,(SP)=(SP)-1

使用PUSH、POP指令使用堆栈,要注意进出栈的匹配,否则将引起不可预期的后果。

nop 空指令,只占用系统扫描时间
end程序结束语句
org 程序开头,定义起始位置或程序入口
equ表达式,“当作”的意思 比如big equ 14H 把big当作14h,写程序要存入14h时就直接写big就可以了,便于程序可读
[标号]:DB 单字节数据项表
[标号]:DW 双字节数据项表

设置了堆栈的栈底,以后就在此地址的上面,作为堆栈空间;
其它指令,一般来说是 不应该 再使用这片地址。
----
把30H赋给了SP,称为设置栈底。以后:
PUSH ACC ,就把ACC的内容存放到31H单元;
PUSH PSW ,就把PSW的内容存放到32H单元;
PUSH B ,就把B的内容存放到33H单元。
……
弹出时,要用POP指令。
利用堆栈,就不用管具体的内容存放在什么单元了,SP会自动管理。


麻烦高手帮我解释一下这个汇编程序
你列出的那个代码是51单片机的代码,使用的是51的编译器。单片机的构架和计算机CPU构架差别特别大,在编写汇编语言的语法、结构也不相同,所以你不要用x86汇编的内容来看待51单片机的汇编,51的汇编比x86简单多了。因此其中的 CS_T和CS_T1只是程序中使用的标号,表示一段程序的开始,没有其他意思。相对...

单片机汇编程序实现DA转换,用DAC0832芯片实现
\/\/0832各种波型输出演示 \/\/P1.1P1.0 = 00时 正弦波 \/\/P1.1P1.0 = 01时 锯齿波 \/\/P1.1P1.0 = 10时 方波 \/\/P1.1P1.0 = 11时 三角波 \/\/需要连接的导线:\/\/(1)译码器Y0接DAC0832的CS \/\/(2)P3.6即XWR插孔接DAC0832的WR \/\/(3)8芯的排线连接8排针的P0口...

MSC51和89C51有什么区别
MCS51系列单片机是美国Intel公司于1980年推出的一种8位单片机系列。该系列的基本型产品是8051、8031和8751。这3种产品之间的区别只是在片内程序存储器方面。8051的片内程序存储器(ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;8031片内没有程序存储器;8751内部包含有用作程序存储器的4KB的EP...

51单片机汇编程序如下 为什么一直都是p1.0为低电平啊 我设置的是循环啊...
延时程序出错了DELAY:MOV R2,#20 D1:MOV R3,#20 MOV R4,#248 DJNZ R4,DJNZ R3,D1 DJNZ R2,DELAY RET 应改为 DELAY:MOV R2,#20 D1:MOV R3,#20 D2: MOV R4,#248 DJNZ R4,DJNZ R3,D2 DJNZ R2,D1 RET 不改的话你的程序永远跳不出循环,你的P2.0口,永远是低电平,而且不会...

何为端口?何为接口?在MCS51单片机中端口是如何扩展的?
接口,通信的两个机器的相同层次的实体叫做同层进程,它们之间的通信使用的各种约定统称协议,相邻层之间的约定称为接口。扩展方法:CS-51单片机的I\/O端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行联系。在51单片机中扩展的I\/O口采用与片外数据存储器相同的寻址方法,所有扩展的I\/O口,以及...

80C51单片机原理、开发与应用实例的目录_80c51单片机内部结构的组成_百 ...
第2章80C51单片机硬件结构和原理 2.180C51的基本结构 2.1.180C51的基本结构框图 2.1.2芯片的内部结构特点 2.280C51的引脚及其功能 2.2.1电源引脚V和Vss 2.2.2时钟电路引脚XTALl和XTAL2 2.2.3控制信号引脚ALE、PSEN、EA和RST 2.2.4输入\/输出引脚 2.380C51CPU结构和时序 2.3.1运算器 2...

那位大侠给一个51单片机汇编语言的看门狗程序,详细一点啊
看门狗在51单片机电路里的作用是防止程序 “跑飞”、“死机”后,系统不动作,而采取复位的办法“唤醒”系统。89S51、89S52系列单片机自带有看门狗功能,片内数据区A6H寄存器具有看门狗功能,使用很简单:include<reg51.h> ...sfr WDTRST = 0xA6;...void main(){ WDTRST=0x1E;;\/\/初始化看门狗 WDT...

请问89cs51单片机的控制总线有几根?每一根控制线的作用是什么?_百度...
51单片机有 ALE、 \/PSEN、 \/WR、 \/RD四根控制总线。16根地址总线,8根并行数据总线。 ALE是地址锁存使能,\/PSEN外部程序存储器(ROM)访问使能,\/WR外部数据存储器(RAM)“写”使能,\/RD外部数据存储器(RAM)“读”使能。 也有把EA也列入控制总线的,但由于EA是硬件接线所决定的,不是程序运行中...

M-CS51系列单片机中,访问外部程序存储器时,PC的低8位地址由p0口输出,PC...
再说原因:这个答案只对MCS-51单片机是对的,再准确一点说是对8031单片机是对的。好了,说正题,8031单片机需要外配程序存储器,当访问外部程序存储器时,存储器的地址是由PC给出的,而需要从P0口输出低8位,从P2口输出高8位,确实一点没有错。原因是你的理解不全面,只考虑了在访问外部数据存储器...

AT89S51单片机八路抢答器工作原理
CS-51单片机特点如下: 1> 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU ,程序指令和数据都可以烧写在ROM许多信号通道都在同一芯片,因此可靠性高。 2> 易扩充:单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统 3> 控制功能强:单片机指令...

偃师市15230241466: 51单片机的堆栈指针sp始终是指向 -
佛天久强: mcs-51单片机汇编语言中,没有sp这条指令,只有针对sp操作的指令.51单片机中sp是堆栈指针寄存器,存放着当前堆栈地址.堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值. 除了初始化堆栈...

偃师市15230241466: MCS - 51单片机汇编语言的SP指令有什么作用? -
佛天久强: 设置了堆栈的栈底,以后就在此地址的上面,作为堆栈空间; 其它指令,一般来说是 不应该 再使用这片地址. ---- 把30H赋给了SP,称为设置栈底.以后: PUSH ACC ,就把ACC的内容存放到31H单元; PUSH PSW ,就把PSW的内容存放到32H单元; PUSH B ,就把B的内容存放到33H单元. …… 弹出时,要用POP指令. 利用堆栈,就不用管具体的内容存放在什么单元了,SP会自动管理.

偃师市15230241466: 什么是堆栈,51单片机堆栈指针SP的使用 -
佛天久强: 在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除.在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场.要点:堆,队列优先,先进先出(FIFO—first in first out)[1] .栈,先进后出(FILO—First-In/Last-Out).

偃师市15230241466: 关于51汇编,子程序返回指令 -
佛天久强: MCS-51单片机汇编语言中,没有SP这条指令,只有针对SP操作的指令.51单片机中SP是堆栈指针寄存器,存放着当前堆栈地址.堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值.除了初始化堆...

偃师市15230241466: SP在单片机中是什么寄存器有什么作用 -
佛天久强: 你没有说是什么单片机产品,各单片机定义不同. 如果是MCS-51单片机,SP指的是堆栈指针寄存器Stack Pointer,指示堆栈的栈顶地址,定位要入栈或出栈的数据的存放位置.

偃师市15230241466: 简述MCS—51汇编语言指令格式? -
佛天久强: 采用助记符表示的汇编语言指令格式如下:标号是程序员根据编程需要给指令设定的符号地址,可有可无;标号由1~8个字符组成,第一个字符必须是英文字,不能是数字或其它符号;标号后必须用冒号. 操作码表示指令的操作种类,如...

偃师市15230241466: MCS - 51单片机的PC称作?SP称作? -
佛天久强: PC 程序计数器 SP 堆栈指针

偃师市15230241466: MCS - 51单片机中的PUSH POP指令. -
佛天久强: 经过压栈PUSH的操作: MCS-51单片机中堆栈的地址是越来越大; 80x86的堆栈的地址是越来越小.指向栈底,还是栈底地址减一? --按照51、或者86的不同规律,推算即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网