单片机汇编语言问题
答案:4 悬赏:0
解决时间 2021-03-26 00:31
- 提问者网友:夢醒日落
- 2021-03-25 12:26
请大虾帮帮呗,请问 SJMP $ 这条语句应该怎样理解呢?谢谢!
最佳答案
- 二级知识专家网友:一场云烟
- 2020-07-06 08:28
看这个简单的程序:ORG 0000H
LJMP ST
ORG 0100H
ST:MOV P2,#00H /P2口控制数码管,让所有的数码管都有效。/
MOV P0,#0A4H /P0口控制输出字/
SJMP $ /原地踏步/
END在这里,SJMP是死循环,但是我们发现如果没有SJMP,无论我们设计的控制字是多少,数码管显示的数字都是8.而且有闪动,我们并没有给它延时,而且根据理论,此处没有延迟,数码管应瞬时进入结束,人根本看不出数码管的显示,就是无显示.。我们说,这个程序既然敞订搬寡植干邦吮鲍经SJMP是死循环,那么END就是无效的,程序中的END根本不执行,它只在程序进行汇编时有效。当你的电脑编完汇编程序时,电脑要编译一下,把你的汇编代码转换成16进制机器码,然后把这个机器码文件通过烧写器烧进CPU中。当进行代码转换时,电脑只要一看到END,就停止转换,无论它后面还有没有汇编代码。望采纳
LJMP ST
ORG 0100H
ST:MOV P2,#00H /P2口控制数码管,让所有的数码管都有效。/
MOV P0,#0A4H /P0口控制输出字/
SJMP $ /原地踏步/
END在这里,SJMP是死循环,但是我们发现如果没有SJMP,无论我们设计的控制字是多少,数码管显示的数字都是8.而且有闪动,我们并没有给它延时,而且根据理论,此处没有延迟,数码管应瞬时进入结束,人根本看不出数码管的显示,就是无显示.。我们说,这个程序既然敞订搬寡植干邦吮鲍经SJMP是死循环,那么END就是无效的,程序中的END根本不执行,它只在程序进行汇编时有效。当你的电脑编完汇编程序时,电脑要编译一下,把你的汇编代码转换成16进制机器码,然后把这个机器码文件通过烧写器烧进CPU中。当进行代码转换时,电脑只要一看到END,就停止转换,无论它后面还有没有汇编代码。望采纳
全部回答
- 1楼网友:陪我到地狱流浪
- 2020-10-22 03:52
很多种的...指令集不一样汇编语言就不大一样...51跟8086差不多...但dsp跟51和8086就差好多 汇编语言(assembly language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。
- 2楼网友:星星坠落
- 2020-06-25 20:28
sjmp $ 的指令是干什么的?如果是 $ 是当前的地址.那么这个代码不就是会程序永远的原地踏步.除非有中断.但是在没有中断的程序中.为什么会有sjmp $!感觉ajmp $ ,sjmp $ 都会使程序死循环的.
- 3楼网友:最后战士
- 2020-08-05 08:05
单单是这个的话,那就是死循环。但是如果有条件的话那就不一样了!例如: 0000H
MOV TMOD,#10H ;设定时器1为方式1
MOV TH1,#3CH ;赋初值
MOV TL1,#0B0H ;赋初值
SETB TR1 ;启动T1
L3: MOV 50H,#20 ;把20次赋给50H,定时1s循环次数
L2: JBC TF1,L1 ;查询计数溢出,当TF1为1,转移到L1,同时将该位清0
SJMP L2 ;无条件跳转到L2L1: MOV TH1,#3CH ;重赋初值
MOV TL1,#0B0H ;重赋
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯