汇编指令汇总(51单片机烧录串口打开时瞬间跳转)

2025-06-12 17:00:01 :2

汇编指令汇总(51单片机烧录串口打开时瞬间跳转)

今天给各位分享51单片机烧录串口打开时瞬间跳转的知识,其中也会对51单片机烧录串口打开时瞬间跳转进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

51单片机烧录串口打开时瞬间跳转

@ 无条件转移bai指令(共4条)
LJMP addr16 ; PC〈—du— addr16
AJMP addr11 ; PC〈—— PC+2 , PC10-0〈—— addr11
SJMP rel ; PC〈—— PC+2 , PC 〈—— PC+rel
JMP @A+DPTR ; PC〈—— A+DPTR
第一条指zhi令称为长转移指令(Long Jump);
第二条指令叫作绝对转移指令(Absolute Jump);
第三条指令称作短转移指令(Short Jump);
第四条指令是变址寻址转移指令(散转指令)。
显然,每条指令均以改变程序计数器PC(Program Counter)中的内容为宗旨。
#(1)长转移指令(64KB范围内转移指令)
长转移指令的功能是:把指令码中的目标地址addr16装入程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序,不影响任何标志。由于addr16是一个16位二进制地址(地址范围为0000H—FFFFH),因此长转移指令一条可以在64KB范围内转移的指令。为了使程序设计方便易编,addr16常采用标号地址(如:LOOP、LOOP1、MAIN、START、DONE、NEXT1……)表示,只有在上机执行前才被汇编(或代真)为16位二进制地址。
长转移指令为三字节,双周期指令。
#(2)绝对转移指令(2KB范围内的转移指令)
绝对转移指令是一条双字节双周期指令,11位地址addr11(a10—a0)在指令中的分布是:
a10 a9 a8 0 0 0 1|a7 a6 a5 a4 a3 a2 a1 a0,其中,00001B是操作码。在程序设计中,11位地址也可以用符号表示,但在上机执行前必须按照上述指令格式加以代真。
绝对转移指令执行时分为两步:
第一步是取指令操作,程序计数器PC中内容被加1两次;
第二步是把PC加2后的高5为地址PC15—PC11和指令代码中低11位构成目标转移地址:PC15—PC11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
其中,a10—a0的地址范围是全“0”——全“1”。因此,绝对转移指令可以在2KB范围内向前或向后跳转。
如果把单片机64KB寻址区分成32页(每页2KB),则PC15—PC11(00000B—11111B)称为页面地址(即:0页—31页),a10—a0称为页内地址,但应注意:AJMP指令的目标转移地址不是和AJMP指令地址在同一个2KB区域,而是应和AJMP指令取出后的PC地址(即:PC+2)在同一个2KB区域。例如:若AJMP指令地址为2FFEH,则PC+2=3000H,故目标转移地址必在3000H—37FFH这2KB区域中。
#(3)短转移指令(-126—+129范围内的转移指令)
短转移指令的功能是先使程序计数器PC加1两次(即:取出指令码),然后把加2后的地址和rel相加作为目标转移地址。因此,短转移指令是一条相对转移指令,是一条双字节双周期指令,指令码格式为:80H rel(操作码 地址偏移量),这里,80H是SJMP指令的操作码;rel是地址偏移量,在程序中也常采用符号地址,上机运行前才被代真成二进制形式。
遇到具体问题时,头脑中一定要清楚一个关系式:目标转移地址=源地址+2+rel
#(4)变址寻址转移指令(只能在256个存储器单元内转移)
这是一条单字节双周期无条件转移指令。
在指令执行之前,用户应预先把目标转移地址的基地址送入DPTR,目标转移地址对基地址的偏移量放在累加器A中。在指令执行时,MCS-51单片机把DPTR中基地址和累加器A中地址偏移量相加,以形成目标转移地址送入程序计数器PC中。
通常,DPTR中基地址是一个确定的值,常常是一张转移指令表的起始地址,累加器A中之值为表的偏移量地址,机器通过变址寻址转移指令便可实现程序的分支转移
***隐藏网址***
打开CSDN,阅读体验更佳
51单片机汇编语言指令汇总_C.L.R的博客_51汇编
一、数据传送类指令 1.以累加器为目的操作数指令 MOV A,Rn MOV A,@Ri MOV A,direct MOV A,#data 2.以Rn为目的操作数的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 3.以直接地址为目的操作数指令 MOV direct,A MOV direc...
51单片机汇编入门基础代码-流水灯_TC肖的博客
2、跳转指令 1.短转移类指令AJMP addr11 2.长转移类指令LJMP addr16 3.相对转移指令SJMP rel 它们都用于指令跳转,从当前位置跳转到后面的地址位(一般为自己拟了名字的地址如DELAY:)。(它们的差别在于跳转的范围:LJMP一下能跳64Kb。...
单片机跳转指令学习
基于pic16f87x单片机的跳转指令学习
51单片机的汇编语言
51单片机的汇编语言操作指令总结 1.指令格式 【标号:】操作码 目的操作数 ,源操作数;注释 如:LOOP:MOV A, 33H;将33H输入到累加器A中 2.ORG xxxxH命令 是指向程序不同功能固定入口,如: 0000H----系统复位入口 0013H—外中断1入口 0003H—外部中断0入口 001BH—T1溢出中断入口 000BH—T0溢出中断入口 0023H串口中断入口 3.控制转移类指令 (1)无条件转移指令—执行到该指令时无条件跳转 LJMP长转移指令:三字节指令提供16位目
继续访问
51单片机指令详解_凌烟慕鱼的博客
51单片机指令详解 数据传递类指令 1 以累加器为目的操作数的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的...
第3 章 MCS-51 单片机指令系统_杨丙寅的博客
寻址方式——计算机指令中说明操作数所在地址的方法。MCS-51 单片机的指令系统有 7 种寻址方式,分别为立即寻址、直接寻址、寄存器寻址、 寄存器间接寻址、基址加变址寻址、相对寻址和位寻址。
编程 ul 不能一行显示 跳到下行_数控编程代码及其使用方法—「UG编程」
G代码代码名称-功能简述G00------快速定位G01------直线插补G02------顺时针方向圆弧插补G03------逆时针方向圆弧插补G04------定时暂停G05------通过中间点圆弧插补G07------Z 样条曲线插补G08------进给加速G09------进给减速G20------子程序调用G22------半径尺寸编程方式G220-----系统操作界面上使用G2...
继续访问
最新发布 51的指令系统
51单片机共有111条指令。可以大致分为以下五类: (1)数据传送类(29条) (2)算术操作类(24条) (3)逻辑运算类(25条) (4)控制转移类(17条) (5)位操作类(17条) 可用的指令是固定的、每种指令对应一个物理电路的实际运行过程,如果指令是指令集中不存在的,电路内部无法实现,指令就会出错。 数据传送类指令 一般形式为 MOV 《目的操作数》 , 《源操作数》 操作码包括MOV、MOVC、MOVX、PUSH、POP、XCH、XCHD、SWAP。 (1)首先是MOV
继续访问
51单片机原理及汇编教程(二)之汇编常用指令数,数据传输指令及寻址方式...
1、MOV指令 ① MOV R0 , #20H   #后面是立即数,要和地址区分开,20H是一个16进制的数。这句话的意思是将20H这个数送入寄存器R0中。直接寻址 ② MOV 30H , @R0   R0里面放的数,以这个数位地址,将这个地址里面的数...
51单片机学习__X2的博客
51单片机指令集 *51指令不区分大小写 1个机器周期=12个时钟振荡周期 只有乘除两条指令的执行时间为4个机器周期 指令由两部分组成:操作码+操作数 指令系统的寻址方式 共7种寻址方式 寄存器寻址方式 ...
条件跳转指令总结
指令 全称 cmp a,b flag条件 jz/je jump if zero/equal a=b ZF=1 jnz/jne jump if not zero/equal a!=b ZF=0 jb/jnae/jc jump if below/not above or equal/carry a《b,无符号数 CF=1 ja/jnbe jump if above/not below or equal a》b,无符号数 jna/jbe jump if not ab...
继续访问
条件跳转指令
条件跳转指令 指令 条件 指令 条件 ja CF=0 AND ZF=0 jnc CF=0 jab CF=0 jne ZF=0 jb CF=1 jng ZF=1 OR SF!=OF jbe CF=1 OR ZF=1 jnge SF=OS jc CF=1 jnl SF=OF jcxz CX=0 jn
继续访问
单片机c语言有没有跳转指令,51单片机跳转指令
@ 无条件转移bai指令(共4条)LJMP addr16 ; PC〈—du— addr16AJMP addr11 ; PC〈—— PC+2 , PC10-0〈—— addr11SJMP rel ; PC〈—— PC+2 , PC 〈—— PC+relJMP @A+DPTR ; PC〈—— A+DPTR第一条指zhi令称为长转移指令(Long Jump);第二条指令叫作绝对转移指令(Absolute...
继续访问
51单片机汇编指令
注: Rn与Ri中n=0 ~ 7,i=0 ~ 1 内部数据传送指令 助记符 作用 寻址方式 机器周期 字节数 MOV A,Rn 将Rn的内容传送给A 寄存器 1 1 MOV A,direct direct是一个地址单元,将该地址的内容传送给A 直接 1 2 MOV A @Ri Ri中存储了一个地址,将该地址的内容传送给A 寄存器间接 1 1 MOV A #data 将data传送到A 立即数 1 2 ...
继续访问
汇编指令长度计算
指令长度与寻址方式有关系,规律或原则如下: 一、没有操作数的指令,指令长度为1字节。如 es: ds: cbw xlat 等。 二、操作数只涉及寄存器的指令,指令长度为2字节。如 mov al,,ax 等。 四、操作数涉及立即数的指令,指令长度为:寄存器类型+2。 8位寄存器,寄存器
继续访问
C51单片机汇编程序问题解决:
C51汇编程序出错解决最近开始学习了一点汇编语言,刚好应课程要求,就来编一些简单的C51程序,结果在定时器中断跳转的时候出错了,错误截图如下:demo.asm(8): error A51: TARGET OUT OF RANGE源程序代码块是报错在CJNE指令这里ORG 000BH INC R1 CJNE R1,#4000,MAINLOOP
继续访问
单片机iap跳转(超详细教程,简单好学,看了秒懂)
***隐藏网址***
继续访问
51单片机c语言访问外部rom,51单片机资源扩展:从片内ROM跳转到片外ROM
源于一年前想自己动手给51写个OS,编译选Large模式,调试时整个流程都跑的好好的,可是烧写到片上后得不到预期的效果,后来查书才知道51单片机片上只有4KRom,如果没有扩展片外Rom,当访问4K以外的程序空间,程序指针又会回到最开始执行。参考手册扩展片外Rom后,能访问达64K的程序空间。网上能搜索到的扩展方式都是将EA引脚接地,让MCU上电后从外部ROM开始执行。但查看芯片手册,明明说EA为...
继续访问
c语言的程序跳转,单片机中用c语言如何编写跳转程序
这个要用到软件的pwm,因为51的没有硬件的pwm所以只好自己写软件的了。首先,要做一个软件三角波发生器子程序,频率自己定,就是变亮变暗的周期。此函数的返回值作为pwm的输入值。再做一个pwm的模拟程序,占空比(0-100)是三角波发生器的输出,pwm模拟程序控制某个端口输出1和0的占空比来控制灯 的明暗。pwm的思路是:检查设置值是否不等于0,是则端口置1,程序开始加1计数,计数后检查计数值是否...
继续访问
C51 main 函数学习以及函数跳转
1.C51main函数深入学习,有如下代码: #include "reg52.h" /************* 本地变量声明 **************/ typedef void (*pFunction)(void); pFunction Jump_To_Application; unsigned int JumpAddress; unsigned int a=0; char i; v
继续访问
热门推荐 51单片机之控制转移指令SJMP、LJMP等
文章目录前言一、无条件转移指令LJMP addr16AJMP addr11SJMP relJMP @A + DPTR关于SJMP、AJMP、LJMP的选择二、条件转移指令JZ rel 前言 控制指令是将程序跳转到某个指定的地址,在顺序执行 控制指令是通过修改PC的内容来实现跳转的功能 PC的内容是将要执行的下一跳指令的地址 一、无条件转移指令 LJMP英文全称:Absolute Jump AJ...
继续访问
8051单片机原理学习
8051单片机原理学习单片机结构框图参考 单片机结构框图 51单片机的结构框图如下所示 51单片机主要组成部件有: 8bit微处理器(CPU): 主要进行算术运行和逻辑控制 片内4KB程序存储器(4KB ROM): 用以可执行程序,只读数据和表格 片内256B数据存储器(256B RAM): 用于存放可读写数据,如算术运行的中间值和最终值等 4个8位并行I/O口(输入/输出口) P0 ~ P3: 每个并口可以用作输入,也可以用作输出 2个定时/计数器:每个定时/计数器可以设置为计数方式,也可以设置为定时
继续访问
c51语言主函数,C51 main 函数学习以及函数跳转
C51main函数深入学习,有如下代码:#include "reg52.h"/*************本地变量声明**************/typedefvoid (*pFunction)(void);pFunctionJump_To_Application;unsigned int JumpAddress;unsigned int a=0;char i;void test(){while(...
继续访问
学 Win32 汇编 - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等...
跳转指令分三类: 一、无条件跳转: JMP; 二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转); 三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了. 根据标志位跳转的指令: JE ;等于则跳转 JNE ;不等于则跳转 JZ ;为 0 则跳转 JNZ ;不为 0 则跳转 JS...
继续访问
汇编语言转换c51语言,51单片机汇编语言:控制转移指令有哪些?
跳转指令短跳指令 AJMP addr11PC←addr11,跳转范围2k长跳指令 LJMP addr16PC←addr16,跳转范围64k间接跳转指令 JMP @A+DPTRPC←(A)+(DPTR)相对转移指令 SJMP rel条件转移指令JZ rel ;(A)=0,转移JNZ rel ;(A)≠0,转移JC rel ;

bat文件命令大全

.bat是dos下的批处理文件
.cmd是nt内核命令行环境的另一种批处理文件
批处理命令
批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称
时,MS-DOS成组执行此批处理程序中的命令。
任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。
==========
常用命令
echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。
==== willsort 编注 ===========
首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到
的一些特殊标记符:
CR(0D) 命令行结束符
Escape(1B) ANSI转义字符引导符
Space(20) 常用的参数界定符
Tab(09) ; = 不常用的参数界定符
+ COPY命令文件连接符
* ? 文件通配符
"" 字符串界定符
| 命令管道符
《 》 》》 文件重定向符
@ 命令行回显屏蔽符
/ 参数开关引导符
: 批处理标签引导符
% 批处理变量引导符
其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:
第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区
别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一
个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.
=====================
echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执
行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
==== willsort 编注 =====
此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理
-------------------------
ECHO
当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。
在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。
使用ECHO命令可关闭此功能。
语法
ECHO
若要用echo命令显示一条命令,可用下述语法:
echo
参数
ON|OFF
指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO
命令。
message
指定让MS-DOS在屏幕上显示的正文。
-------------------
CALL
从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。
语法
CALL
参数
filename
指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。
batch-parameters
指定批处理程序所需的命令行信息。
-------------------------------
PAUSE
暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处
理程序中使用该命令。
语法
PAUSE
REM
在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS
中也可以用分号(;)代替REM命令,但在批处理文件中则不能替代)。
语法
REM
参数
string
指定要屏蔽的命令或要包含的注解。
=======================
例1:用edita.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,
启动UCDOS,进入WPS等功能。
批处理文件的内容为: 命令注释:
@echo off 不显示后续命令行及当前命令行
dir c:\*.* 》a.txt 将c盘文件列表写入a.txt
call c:\ucdos\ucdos.bat 调用ucdos
echo 你好 显示"你好"
pause 暂停,等待按键继续
rem 准备运行wps 注释:准备运行wps
cd ucdos 进入ucdos目录
wps 运行wps
批处理文件的参数
批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。
%表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表
示批处理命令本身,其它参数字符串用%1到%9顺序表示。
例2:C:根目录下有一批处理文件名为f.bat,内容为:
@echo off
format %1
如果执行C:\》f a:
那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:
例3:C:根目录下一批处理文件名为t.bat,内容为:
@echo off
type %1
type %2
那么运行C:\》t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上面的命令将顺序地显示a.txt和b.txt文件的内容。
==== willsort 编注 ===============
参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间
(例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参
数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如
下:
初始状态, cmd 为命令名, 可以用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
经过1次shift后, cmd 将无法被引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8
遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返
复移动起始指针.
====================
特殊命令
if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。
一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串" 待执行的命令
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。
例:if "%1"=="a" format a:
==== willsort 编注
if 的命令行帮助中关于此点的描述为:
IF string1==string2 command
在此有以下几点需要注意:
1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符
2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量
3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行
=============================
2、if 文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,则显示它的内容。
****** willsort 编注 ********
也可以使用以下的用法:
if exist command
device 是指DOS系统中已加载的设备, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点:
1. 该设备确实存在(由软件虚拟的设备除外)
2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义)
3. 该设备已准备好(主要是指a: b: ..., com1..., lpt1...等)
可通过命令 mem/d | find "device" /i 来检阅你的系统中所加载的设备
另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄
(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即
指在内存中为其分配可引用的句柄.
==================================
3、if errorlevel 《数字》 待执行的命令
很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值
,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立
,运行命令,否则运行下一句。
如if errorlevel 2 goto x2
==== willsort 编注 ===========
返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺
序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:
if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
if errorlevel 4 set el=4
if errorlevel 5 set el=5
...
当然, 也可以使用以下循环来替代, 原理是一致的:
for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e
更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章
出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致
在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.
另外, 虽然 if errorlevel=《数字》 command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略
掉罢了
===========================
二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配
合使用,根据不同的条件来执行不同的命令组。
如:
goto end
:end
echo this is the end
标号用":字符串"来定义,标号所在行不被执行。
==== willsort 编注
label 常被译为 "标签" , 但是这并不具有广泛的约定性.
goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case
结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语
法结构上的对照:
Batch C / Basic
goto&: goto&:
goto&:&if if{}&else{} / if&elseif&endif
goto&:&if... switch&case / select case
goto&:&if&set&envar... function() / function(),sub()
==================================
三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配
合,根据用户的选择运行不同的命令。
注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。
choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):
CHOICE
描述:
该工具允许用户从选择列表选择一个项目并返回所选项目的索引。
参数列表:
/C choices 指定要创建的选项列表。默认列表是 "YN"。
/N 在提示符中隐藏选项列表。提示前面的消息得到显示,
选项依旧处于启用状态。
/CS 允许选择分大小写的选项。在默认情况下,这个工具
是不分大小写的。
/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0
到 9999。如果指定了 0,就不会有暂停,默认选项
会得到选择。
/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
/M text 指定提示之前要显示的消息。如果没有指定,工具只
显示提示。
/? 显示帮助消息。
注意:
ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
序排列。
示例:
CHOICE /?
CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"
==== willsort 编注 ===============================
我列出win98下choice的用法帮助, 已资区分
Waits for the user to choose one of a set of choices.
等待用户选择一组待选字符中的一个
CHOICE
/Cchoices Specifies allowable keys. Default is YN
指定允许的按键(待选字符), 默认为YN
/N Do not display choices and ? at end of prompt string.
不显示提示字符串中的问号和待选字符
/S Treat choice keys as case sensitive.
处理待选字符时大小写敏感
/Tc,nn Default choice to c after nn seconds
在 nn 秒后默认选择 c
text Prompt string to display
要显示的提示字符串
ERRORLEVEL is set to offset of key user presses in choices.
ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值
====================================
如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
屏幕上会显示:
确认请按 Y,否请按 N,或者取消请按 C。 ?
例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此批处理运行后,将显示"defrag,mem,end?" ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号
为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到
end标号处,然后程序将显示good bye,批处理运行结束。
四、for 循环命令,只要条件符合,它将多次执行同一命令。
语法:
对一组文件中的每一个文件执行某个特定命令。
FOR %%variable IN (set) DO command
%%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
例如一个批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。

汇编指令LSL

R0的值是:0x39

这语句功能是,R1+8*R2.结果送到R0
8*R2=0x10

R2, LSL #3就是R2左移3位,相当于乘以8

所以结果是0x39

拓展资料

汇编指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。

常用汇编指令汇总:

1.通用数据传送指令

MOV 传送字或字节.

MOVSX 先符号扩展,再传送.

MOVZX 先零扩展,再传送.

PUSH 把字压入堆栈.

POP 把字弹出堆栈.

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.

POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.

BSWAP 交换32位寄存器里字节的顺序

XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)

CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )

XADD 先交换再累加.( 结果在第一个操作数里 )

XLAT 字节查表转换.

── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即

0-FFH); 返回 AL 为查表结果. ( -》AL )

2. 输入输出端口传送指令.

IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )

OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )

输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,

其范围是 0-65535.

3. 目的地址传送指令.

LEA 装入有效地址.

例: LEA DX,string ;把偏移地址存到DX.

LDS 传送目标指针,把指针内容装入DS.

例: LDS SI,string ;把段地址:偏移地址存到DS:SI.

LES 传送目标指针,把指针内容装入ES.

例: LES DI,string ;把段地址:偏移地址存到ES:DI.

LFS 传送目标指针,把指针内容装入FS.

例: LFS DI,string ;把段地址:偏移地址存到FS:DI.

LGS 传送目标指针,把指针内容装入GS.

例: LGS DI,string ;把段地址:偏移地址存到GS:DI.

LSS 传送目标指针,把指针内容装入SS.

例: LSS DI,string ;把段地址:偏移地址存到SS:DI.

4. 标志传送指令.

LAHF标志寄存器传送,把标志装入AH.

SAHF 标志寄存器传送,把AH内容装入标志寄存器.

PUSHF 标志入栈.

POPF 标志出栈.

PUSHD 32位标志入栈.

POPD 32位标志出栈.

以上就是我们为大家找到的有关“汇编指令汇总(51单片机烧录串口打开时瞬间跳转)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

汇编指令汇总(51单片机烧录串口打开时瞬间跳转)

本文编辑:admin

更多文章:


现代吉州窑玳瑁釉杯子贵吗?钧瓷梅瓶的特点与来历

现代吉州窑玳瑁釉杯子贵吗?钧瓷梅瓶的特点与来历

各位老铁们好,相信很多人对玳瑁釉梅瓶都不是特别的了解,因此呢,今天就来为大家分享下关于玳瑁釉梅瓶以及现代吉州窑玳瑁釉杯子贵吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录现代吉州窑玳瑁釉杯子贵吗钧瓷梅瓶的特点与

2026年9月15日 16:30

邮箱远程主机强迫关闭了一个现有的连接(foxmail为什么显示远程主机强迫关闭现有连接,能收邮件,可以发邮件,是怎么回事呢请各位帮忙解决下!)

邮箱远程主机强迫关闭了一个现有的连接(foxmail为什么显示远程主机强迫关闭现有连接,能收邮件,可以发邮件,是怎么回事呢请各位帮忙解决下!)

大家好,关于邮箱远程主机强迫关闭了一个现有的连接很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于foxmail为什么显示远程主机强迫关闭现有连接,能收邮件,可以发邮件,是怎么回事呢请各位帮忙解决下!的知识点,相信应该可以解决

2026年9月15日 17:30

启动界面图片(如何更改车载导航开机画面)

启动界面图片(如何更改车载导航开机画面)

本篇文章给大家谈谈启动界面图片,以及如何更改车载导航开机画面对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何更改车载导航开机画面微信启动

2026年7月26日 13:30

线程池内中断某个线程(如何终止 android线程池中的任务)

线程池内中断某个线程(如何终止 android线程池中的任务)

大家好,今天小编来为大家解答以下的问题,关于线程池内中断某个线程,如何终止 android线程池中的任务这个很多人还不知道,现在让我们一起来看看吧!本文目录如何终止 android线程池中的任务Java线程池停止空闲线程是否有规则Execu

2026年1月7日 07:15

为什么mysql没有bin目录(我在windows7下面安装mysql怎么会没有bin目录呢)

为什么mysql没有bin目录(我在windows7下面安装mysql怎么会没有bin目录呢)

本篇文章给大家谈谈为什么mysql没有bin目录,以及我在windows7下面安装mysql怎么会没有bin目录呢对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录我在windows7下面安装mysql怎么会没有bin目录呢我的

2026年2月7日 02:30

attuned什么意思(life rarely encountered so attuned to the met you,don’t miss.什么意思)

attuned什么意思(life rarely encountered so attuned to the met you,don’t miss.什么意思)

各位老铁们,大家好,今天由我来为大家分享attuned什么意思,以及life rarely encountered so attuned to the met you,don’t miss.什么意思的相关问题知识,希望对大家有所帮助。如果可

2025年11月5日 16:30

进程管理器端口(win7系统怎么查看端口被哪个进程占用情况呢)

进程管理器端口(win7系统怎么查看端口被哪个进程占用情况呢)

本篇文章给大家谈谈进程管理器端口,以及win7系统怎么查看端口被哪个进程占用情况呢对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录win7系统怎么查看端口被哪个进程占用情况呢查看进程端口怎么查看进程端口windows怎么查看进

2026年4月9日 11:45

统计学样本量计算公式(样本量计算公式是什么)

统计学样本量计算公式(样本量计算公式是什么)

大家好,关于统计学样本量计算公式很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于样本量计算公式是什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录样本

2025年7月17日 01:30

translate的用法及其词组(英语Arrival Site怎么翻译)

translate的用法及其词组(英语Arrival Site怎么翻译)

“translate的用法及其词组”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看translate的用法及其词组(英语Arrival Site怎么翻译)!本文目录英语Arrival Site怎么翻译高中英语常用固定短语请翻

2026年7月16日 00:00

girl怎么读音发音(girl的发音)

girl怎么读音发音(girl的发音)

本篇文章给大家谈谈girl怎么读音发音,以及girl的发音对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录girl的发音girl怎么读英语单

2026年4月12日 17:15

grassland(grassland怎么读 英语grassland怎么读)

grassland(grassland怎么读 英语grassland怎么读)

大家好,如果您还对grassland不太了解,没有关系,今天就由本站为大家分享grassland的知识,包括grassland怎么读 英语grassland怎么读的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录gr

2025年12月10日 09:45

elementui和bootstrap 哪个好(学习bootstrap还是vue好)

elementui和bootstrap 哪个好(学习bootstrap还是vue好)

大家好,关于elementui和bootstrap 哪个好很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于学习bootstrap还是vue好的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下

2026年4月1日 10:45

下载jquery最新版本教程(怎么引用bootstrap轮播图)

下载jquery最新版本教程(怎么引用bootstrap轮播图)

“下载jquery最新版本教程”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看下载jquery最新版本教程(怎么引用bootstrap轮播图)!本文目录怎么引用bootstrap轮播图dw日期选择框怎么设置精通javascr

2026年8月26日 01:45

revoke语句(sql语言中提供了哪些数据控制的语句)

revoke语句(sql语言中提供了哪些数据控制的语句)

今天给各位分享sql语言中提供了哪些数据控制的语句的知识,其中也会对sql语言中提供了哪些数据控制的语句进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录sql语言中提供了哪些数据控制的语句求:《数据库》1、什么

2026年4月27日 00:45

二次分式怎么求值域(如果是二次分式函数,那么应该怎么求值域)

二次分式怎么求值域(如果是二次分式函数,那么应该怎么求值域)

大家好,二次分式怎么求值域相信很多的网友都不是很明白,包括如果是二次分式函数,那么应该怎么求值域也是一样,不过没有关系,接下来就来为大家分享关于二次分式怎么求值域和如果是二次分式函数,那么应该怎么求值域的一些知识点,大家可以关注收藏,免得下

2026年9月18日 04:30

predominate是什么意思(这句话怎么翻译 In his eyes she eclipses and predominates the whole of her sex)

predominate是什么意思(这句话怎么翻译 In his eyes she eclipses and predominates the whole of her sex)

本篇文章给大家谈谈predominate是什么意思,以及这句话怎么翻译 In his eyes she eclipses and predominates the whole of her sex对应的知识点,文章可能有点长,但是希望大家可

2026年4月29日 13:30

手机上怎么显示html图片(html格式的图片在手机上怎么能打开)

手机上怎么显示html图片(html格式的图片在手机上怎么能打开)

各位老铁们好,相信很多人对手机上怎么显示html图片都不是特别的了解,因此呢,今天就来为大家分享下关于手机上怎么显示html图片以及html格式的图片在手机上怎么能打开的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文

2026年8月9日 01:30

js的replaceall(js 怎么替换不了 | 这个符号)

js的replaceall(js 怎么替换不了 | 这个符号)

大家好,如果您还对js的replaceall不太了解,没有关系,今天就由本站为大家分享js的replaceall的知识,包括js 怎么替换不了 | 这个符号的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录js 怎么

2026年9月16日 13:00

在线转换器jpg转pdf(jpg格式图片转换成pdf格式)

在线转换器jpg转pdf(jpg格式图片转换成pdf格式)

这篇文章给大家聊聊关于在线转换器jpg转pdf,以及jpg格式图片转换成pdf格式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录jpg格式图片转换成pdf格式图片转PDF这几种方法你听说过吗把JPG转换成PDF格式文档的方法

2026年8月4日 08:15

安卓activity软件(activity(Android组件中最重要的四大组件之一)详细资料大全)

安卓activity软件(activity(Android组件中最重要的四大组件之一)详细资料大全)

这篇文章给大家聊聊关于安卓activity软件,以及activity(Android组件中最重要的四大组件之一)详细资料大全对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录activity(Android组件中最重要的四大组件

2026年7月30日 07:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索