第一篇:Linux学习中vi指令的总结
学习心得总结
这学期我接触了Linux这门课,通过将近一个学期的学习对Linux有了一个全新认识。也记录下对我有帮助的文档和相关命令,同时获得了不少实践的机会。这学期马上就要结束了,借着老师布置作业这样的一次机会重新整理一下学习过的关于Linux的相关知识。也给自己做一个小小的复习,同时对linux的安装和vi命令做详细的分析。
首先对Linux里边常用的部分命令做一下小结:
安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln、vi;
系统管理相关命令: df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
网络操作命令: ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
其它命令: tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode;
Red Hat linux的安装 1.插入光盘。在WINDOWS XP下将“红帽子LINUX”的系统盘插入光驱,然后重新启动机器。
2.重启后,机器自动进入LINUX 安装界面。在屏幕的下面有几个功能健的选择,可不用选择,等待屏幕发生变化。
3.等到看见“Welcome to Red hat Linux”,这里有选择“ok”或“skip”,这是提醒用户是否要检查光盘有问题。一般情况下是没有问题的,所以我们选择“skip”--->“next”
4.进入真正的安装界面。----〉“next”
5.language Selection:本人选择的是“简体中文”-----〉“next”
6.Select the appropiate keyboard for the system: 一般选择“U.S English”-->“next”
7.Select the appropiate mouse for the system:本人选择的是:“带滑轮的鼠标(USB)”,这要根据具体的机器进行选择,事先应该知道鼠标的类型,是“带滑轮的鼠标”还是“键鼠标”,接口是“USB”还是“PS/2”的。
8.“安装类型”:一般选择“个人桌面”----〉“NEXT”
9.磁盘分区:一般选择“用Disk Druid手工分区”----> 下一步
10.这一部分最重要:首先事先要有一个大于10G硬盘空间。本人事先把F盘中重要的文件移走,然后清空F盘。
选中“dev/hda7”点击“删除”后变成空闲空间,再选中此空闲空间,点击“新建”出现对话框,在“文件系统类型”选项中选择“swap”,“大小”是1000,“其他大小选项”选择“固定大小”----〉“确定”后:
这个空闲空间是f盘被设置1000G 的SWAP剩下的。选中此“空闲空间”--“新建”
出现对话框,在“挂载点”处选择“/”,“其他大小选项”选择“使用全部可用空间”---〉“确定”
看到如下:/dev/hda1(实际上指的是c盘)
/dev/hda
2/dev/hda5(实际上指的是d盘)
/dev/hda6(e盘)
/dev/hda8 ext3(对号)..../dev/hda7 swap(对号)....-------------------------->“下一步”
11.以下的基本上都是默认的选项,一直“下一步”即可。12.到达设置根口令:就像设置密码一样设置“根口令”和“确认”,一般安装新软件时需要用到根口令。
13.“个人桌面默认设置”:本人选择的是“定制要安装的软件包集合”--->“下一步”
14.选择软件包组:
选上“X窗口系统”“GNOME桌面环境”“KDE”
本人删除了“游戏和娱乐”(觉得用不上),浪费空间。
开发部分全选(开发工具,x软件开发,内核开发,GNOME软件开发,KDE软件开发)----〉“下一步”
15.到这里基本上没有什么需要设置的了。一直“下一步”就会开始安装软件包,根据提示换第二张盘和第三张盘。
16.“不想创建”....17.系统安装完后重启,第一次启动它会叫你设置“用户名”和“密码”。
关于vi命令的总结
vi 编辑器
一、Linux 系统中的编辑器知识
Linux 通过用vi对系统配置文件的修改对Linux 系统进行比较细致管理工作 文本编辑器的分类
根据编辑范围有:行编辑器、全屏幕编辑器
根据工作界面环境划分:字符界面编辑器、图形界面编辑器
1、vi最常用的字符界面文本编辑器
2、Emacs 专为编辑程序源代码文件而编写的文本编辑器程序。
3、nano可以字符界面提供底端
4、gedit 运行在Linux图形环境中
二、vi 的模式
命令模式:可在命令模式下面输入单字符或组合键可以实现相应的编辑命令操作。vi编辑器启动后默认进入命令模式。
输入模式:命令模式下按”i”进入输入模式进行编辑。
末行模式:在命令模式下按”:”进入末行模式,在输入模式按”Esc”+”:”进入
末行模式下的应用:
三、命令:
vi一:基本操作:
1:鼠标的移动:k(上);j(下);h(左);l(右)
2::q!(强行退出):wq(保存退出);“ZZ”等同于:wq
3:“x”删除光标所在的字符。
4:“i”,在当前光标处进行输入。
vi二:删除类命令
1:“dw”删除一个单词(包括空格);“de”删除一个单词(不包括空格)2:“d$”从当前光标删除到行末
3:“dd”删除一整行,“2dd”删除两行
4:“u”撤销最后执行的命令,“U”修正整行,“ctrl+R”连续撤销
5:“yy”复制当前行。
6:“yw”复制单词。
vi三:置入类命令
1:“p”将最后一次删除的命令置于光标后。(用dd删除后,p可以用来粘贴)2:“r”输入r和一个字符来替换光标所在位置的字符。
3:“cw”改变一个单词的部分或者全部,lubw,将光标放在u处,然后cw一个“ine”可以改成“line”。
4:“v”进入可视化视图,可以移动方向键来选中某一段内容。
vi四:定位及文件状态
1:“ctrl+g”将会在底栏显示文件名和总行数。显示光标所在行的行数。2:“shift+G”光标直接跳转到文件的首行(gg),“shift+g”光标直接跳转到文件的最后一行(G)。
3:输出停留的行数,按下shift+G直接跳转。
4:“/”搜索一个字符,输入/后,然后键入想要查找的字符串。
5:“%"可以查找匹配的({[和)}],用于定位反括号。
6:“:s/old/new/g”改变当前行的字符,替换old为new。
7:“:#,#s/old/new/g”改变两个行之间的(#,#)字符串,替换old为new。8:“:%s/old/new/g”替换整个文件中的每个匹配串。
9:“:%s/old/new/gc”加“c”参数可以在替换全文的时候添加对替换的询问用以让用户确认。
10: “:10”光标移动到地10行
vi五:内执行外部命令
1:“:!”,在!后面加入命令,如“:!ls”;“:!dir”
2:“:w test”将改动保存为test文件,“:!rm test”删除该文件
3:“:#,# w test”保存两行之间的内容到test 文件中。(行数可以使用ctrl+G来查看
4:“:r test”在当前文件中插入另外一个文件的内容 :r /etc/named.conf,将test中内容插入到该光标处。
vi六:打开类命令
1:“o”在光标所在行下方插入一新行,“O”在光标所在行上方插入一新行,并且都以输入模式进行插入。
2:“shift+O”直接在该行上方新开一行。
3:“$”直接将光标调到行末,“a”可以在光标处插入文本(避免了i),输入“A”直接在行末插入文本。
4:“R”在光标处输入R可以连续的替换多个字符。(免i),直至键入“ESC”。5:查找时“/abcde”,然后按“n”可以继续查找。
vi七:帮助l
1:“:help”打开帮助,“:q”退出。
2:F1
第二篇:常用指令总结
常用BSC命令小结:
ZEEI:BTS/BCF=BTS号/BCF号;查看BTS/BCF的详细信息(载频数、频点、所在BCSU)ZEEI::BCSU;查看当前BSC最大容纳载频数及各BCSU下所有载频数
ZERO:BTS= BTS号,TRX=TRX号;查看BTS/TRX的详细情况、干扰级别 ZEFO:BCF号:ALL;查看BCF的所有参数 ZEQO:BTS= BTS号:ALL;查看BTS的所有参数 ZEQO:SEG=**:ALL;查看EDGE站点的所有参数 ZEFS:BCF号:L/U;对BCF重新启动
ZEQS:BTS=BTS号:L/U;对BTS重新启动
ZERS:BTS=BTS号,TRX=TRX号:L/U;对一个载频重新启动 ZEAO:BTS= BTS号;查看BTS的所有相临小区
ZEAO:BTS= BTS号;ABTS= BTS号;查看同一BSC下的BTS的所有相临小区
ZEAO:BTS= BTS号;LAC=LAC号,CI=CI号;查看不同BSC下的BTS的所有相临小区 ZEHO:BTS= BTS号;查看BTS的切换参数 ZEUO:BTS= BTS号;查看BTS的功率控制参数 ZEFO:BCF号:ALL;查看BCF的所有参数
ZEOH::BCF=BCF号;查看当天BCF告警
ZEOH:YYYY-MM-DD:BCF= BCF号;查看从输入日期至今的告警 ZEOL:12;(12为BCF号)查询实时告警
ZEOL::NR=%;查询实时告警 ZAHO;查看BSC当前告警
ZAHP;查看BSC历史告警 ZUSC:单元名,单元号:目的状态; 修改指定单元的状态 ZUSI:单元名,单元号; 查看各单元状态和相关信息 ZUDU:单元名,单元号; 诊断指定单元 ZCEL:CGR=1;查看A接口电路状态
ZRCI:GSW:CGR=1;查看A接口电路的详细信息
ZCEC:CRCT=PCM号-时隙号:目的状态;修改A接口电路状态 ZNEL;查看CCS7信令的详细信息
ZDSB:NAME=T***%;(***是BTS号)查看信令时隙 ZDTI:::PCM=***;查询是否有空余时隙 ZEQE;BTS=***,hop=BB/RF;开跳频;ZEQE;BTS=***,hop=no;关跳频
删相邻小区是ZEAD;加相邻小区是ZEAC;
常用MSC命令小结: ZEPO::IDE;查看MSC下基站数据
ZMVO:MSISDN=86+手机号码;查询手机最后一次活动时间及所在小区号(关机时IMSI DETACH FLAG.........Y)
ZEPO:LAC=
,CI=
;通过ZMVO查询后再用此命令查询移动台的具体信息。常用HLR命令小结:
ZMIO:MSISDN=86+手机号码;查询MSC ID号
ZMSO:MSISDN=86+手机号码;辅助查询:来电隐藏,呼叫转移(Y为开通,N为未开通,D为开通但未激活)
ZMNO:IMSI= IMSI号码;是否开通GPRS业务(NETWORK ACCESS.........BOTH为开通)ZMAI:IMSI= IMSI号码;查询KI功能(FOUND为已开通此号码,否则未开通)返回上一层命令: crtl +X
ZEEI:BCF(SEG/NAME)=
查看基站状态
ZEEI::BCSU;
查看BCSU所控制的TRX数
ZEEL:BL;
查看BL的TRX与用户数
ZEQO:BTS(SEG)=
查看BTS参数
ZEQO:BTS=
查看BTS中GPRS参数
ZEQO:SEG=:MIS;
查看BTS参数FRL FRU
ZEQM:
修改
ZEFO:
查看BCF参数
ZERO:BTS=
查看TRX参数;干扰;信道类型
ZEUO:BTS=
查看BTS的功率参数
ZEHO:BTS=
查看BTS的切换参数
ZEOH:
查看基站的历史告警
ZEOH:
查看同BSC下的同一个告警历史告警小区
ZEOL:
查看基站的当前告警
ZEOL::NR=NO.;
查看相同告警的小区列表
ZEOL;
查看整个BSC的告警
ZEAO:BTS=
查看BTS的相邻小区数据 ZEAO:BTS=
查看指定邻区信息
ZEBO:
查看小区BA表
ZAHO;
关于BSC的告警
ZAHO::NR=;
关于这个号的告警
ZAHP:
看告警2993???
ZEWL;
查看基站软件包状态
ZWQO:CR;
查看BSC的系统软件包
ZISI;
查看I/O设备的状态
ZQRI;
看BSC的IP地址 ZEAC:SEG=11122::ASEG=13202:;
加邻区 ZEUG:SEG=226:PMAX1=2;
降功率,分次降
ZDTC:T+BCF+TRX
跳LAPD(信令链路)ZEQM:
修改LSEG ZEQV:SEG=
:GENA
修改CDED先关GENA ZEQV:BTS=
修改CDED。CDEF RDIV
主分集接收参数,大合路器设Y ZDSB:::PCM:传输号
查信令是16K还是32K ZYMO
传输误码率 ZUSI ZUSC:ET,XXX:WO/BL;
闭锁传输/解开
ZEPO::CI= LAC= :查交换机有没有定义小区 ZEQS:BTS=: 重启BTS FHO切换用户
ZERS:BTS=,TRX=: 重启TRX ZEFS 重启BCF,先闭BTS,闭BCF,再开BTS,BCF,闭BTS前先闭副BTS,再闭主BTS ZEAM:SEG=209::LAC=30034,CI=15511,::FREQ=86,;邻区定义核查,邻区BA表改BCCH,前面是目标小区,后面是源小区
ZEQE修改NCC BCC ZERM修改载波TSC 修改BCC 先闭锁小区,再 ZEQE 修改BCC,闭锁载波,用ZERM修改 TSC,再用SQL跑邻区定义核查
载波解锁。按顺序依次解 监控电话:
1、***
2、*** 大家以后有闭站要记得通知监控 新站核查: 基站工程参数存放目录:ftp://10.199.5.46/ 05、文件临时存放 /郑全侨
1.找新站-sql脚本 01其他/可以用的/trx_num-复制excel-两天比较-新站登记-中文名(3you workregister)2.查频率-bsc上看,对比Mapinfo;3.查参数-新站模板BTS参数.SQL(只改CI)-跟新站模板20090401对比--NCC,BCC,PLMN-45,PMAX1-33,MFR-5,AG-2,PER-2(Periodic LAC Updating),LAC;RDIV=Y;4.查邻区-sql取-02kpi-ADJ_DISCREPENCY_NEW_V3.sql(改CI,去掉注释符,出入切分取)-对比mapinfo,必要找规划单;注意:邻区未开-邻区先规划后开-最后才是漏加--单向邻区 ZEAO:BTS=100::MCC=460,MNC=0,LAC=29990,CI=20105;5.查告警;指标-dailyKPI主要指标-开站第二天 6.SQL上下行质量-02 KPI/OMC_RX_QUAL.sql 7.一周内监控新站KPI,优化。
15851
第三篇:跳转指令总结
JE;等于则跳转
JNE;不等于则跳转
JZ;为 0 则跳转
JNZ;不为 0 则跳转
JS;为负则跳转
JNS;不为负则跳转
JC;进位则跳转
JNC;不进位则跳转
JO;溢出则跳转
JNO;不溢出则跳转
JA;无符号大于则跳转 JNA;无符号不大于则跳转 JAE;无符号大于等于则跳转 JNAE;无符号不大于等于则跳转
JG;有符号大于则跳转 JNG;有符号不大于则跳转 JGE;有符号大于等于则跳转 JNGE;有符号不大于等于则跳转
JB;无符号小于则跳转 JNB;无符号不小于则跳转 JBE;无符号小于等于则跳转 JNBE;无符号不小于等于则跳转
JL;有符号小于则跳转 JNL;有符号不小于则跳转 JLE;有符号小于等于则跳转 JNLE;有符号不小于等于则跳转
JP;奇偶位置位则跳转 JNP;奇偶位清除则跳转 JPE;奇偶位相等则跳转 JPO;奇偶位不等则跳转
第四篇:Matlab常用指令总结
概论
format long显示更多位数 format short显示少位数
format hex将数字显示为十六进制浮点数,(3fb999999999999a,a-f代表十六进制数,前三字符为)
double()将数字转化为双精度浮点数 ezplot(f,0,4)绘制f函数[0,4]图像 plot(x,y)绘制点或者连线 zeros(n,1)产生n维0向量
fibonacci(n)产生N个斐波那契数
求解矩阵
sum(A)对每一列的矩阵元素求和 a’为将矩阵A转置
sum(diag(A))矩阵A主对角元素之和 flipud(A)将A翻过来(上下)det(A)求A行列式的解 inv(A)求A的逆矩阵
norm(A)矩阵范数eig(A)特征值svd(A)奇异值 a=A(:,[1 3 2 4])交换矩阵二、三列
AX=B可以为X=AB xA=B可以为X=B/A norm(x,1)计算x的一阶范数即所有数的和 norm(x,2)方均根 norm(x,inf)取最大值 插值
v=polyinterp(x,y,u)(基于拉格朗日)可以计算xy组成的点阵插值结果,u为输出v对应的取得x 的值u=[,]完整次数插值 symx=sym(‘x’)创建符号变量
symx=polyinterp(x,y,symx)利用符号变量求解 pretty(p)让p变得规整 simplify(p)化简p v=piecelin(x,y,u)线性分段插值 v=pchip(x,y,u)v=pchiptx(x,y,u)为分段三次埃米特插值及其简化版 v=spline(x,y,u)v=splinetx(x,y,u)为三次样条插值及其简化版 interpgui(x,y)可以绘制上述四种插值图像,直观 方程求根 【M=2 a=1 b=2 k=0;while b-a>eps x=(a+b)/2;if x^2 > M b=x else a=x end k=k+1;end】
牛顿法,求一次导法
k=0;x=10;/初值
xprev=12;/初值的初值
while abs(x-xprev)>eps*abs(x)xprev=x;
x=0.5*(x+2/x);/x-f(x)/ f(x)的导数。k=k+1;end
fzero(f(x),初值)/将二分法和割线法和IQI算法收敛速度结合 fzerotx(f(x),[,])简化版本(fzerogui(f(x),[,]))
fmintx(f(x),a,b)ab为区间,求区间最小值
最小二乘法
b1= polyval(a1,x)将x值带入方程a1 c=polyfit(x,y,n)将x,y带入并用N次多项式拟合,输出高次到第次。X = lsqcurvefit(FUN,X0,XDATA,YDATA)FUN:用于拟合的函数 X0:迭代初始值
XDATA:要拟合的所有点的X的坐标 YDATA:要拟合的所有点的Y的坐标 最小二乘法手算公式在doc 11/13 f=inline('a(1)*x.^2+a(2)*x+a(3)','a','x')建立多元方程的简便方法。ff=@(x,y)x^2+y^2;
积分:
y=quad(@aaa,0,1)辛普森法则应用于0-1区间函数要加.y=quadtx(f,0,1)
简化版 int(‘fun’,a,b)
>>int(sym('x^2'),0,1)直接出公式的,如果输入数则出结果,输入syms a b 则出公式 >diff('a*x^2',x)数值微分 diff(x^2,2)为二次导
ode23 显示的龙格-库塔公式 ode45 比较四阶和五阶的公式p9 欧拉法:
【其实就是循环语句构成 X=(3:0.01:3.2);k=1:1:20;Y(k)=0;Y(1)=-1;for j=1:20 Y(j+1)=Y(j)+0.01*(X(j)^2+Y(j)^2);end plot(X,Y);】
[x,y]=ode23(ff,[x1,x2],y0)可以直接显示出x和y的值 高阶常微分解见第七章p19顶部和函数my fun3 边界初值问题见p21底部
编程,绘图,设置坐标轴,做出自己的坐标轴
1.axis([xminxmaxyminymax])
设置当前图形的坐标范围,分别为x轴的最小、最大值,y轴的最小最大值
2.V=axis
返回包含当前坐标范围的一个行向量
3.axis auto
将坐标轴刻度恢复为自动的默认设置
4.axis manual
冻结坐标轴刻度,此时如果hold被设定为on,那么后边的图形将使用与前面相同的坐标轴刻度范围
5.axis tight
将坐标范围设定为被绘制的数据范围
6.axis fill
这是坐标范围和屏幕的高宽比,使得坐标轴可以包含整个绘制的区域。该选项只有在PlotBoxaApectRatio或DataAspectRatioMode被设置为‘manual’模式才有效
7.axisij
将坐标轴设置为矩阵模式。此时水平坐标轴从左到有取值,垂直坐标从上到下
8.axisxy
将坐标设置为笛卡尔模式。此时水平坐标从左到右取值,垂直坐标从下到上取值
9.axis equal 10.axis square
将坐标轴设置为正方形
11.axis normal
将当前的坐标轴框恢复为全尺寸,并将单位刻度的所有限制取消
12.axis vis3d
冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
13.axis off
关闭所有的坐标轴标签、刻度、背景
14.axis on
打开所有的坐标轴标签、刻度、背
第五篇:8051指令总结
指令总结
共性:
(1)立即数不能用作目的操作数。
(2)以累加器A为目的操作数的指令影响P标志位。
(3)Rn与Rn、Rn 与@Ri、@Ri与@Ri不能同时出现在指令的源、目的操作数中。
操作数的表现形式:
内部RAM:A、Rn、@Ri、direct、#data 外部RAM:@DPTR、@Ri 外部ROM:@A+DPTR、@A+PC
一、数据传送指令(5种/29条)
对标志位的影响:除以累加器A为目的操作数的数据传送指令对P标志位有影响外,其余数据传送指令均不影响标志位。
格式:
MOV
(一)内部RAM数据传送指令 1.指令操作码:MOV 2.源、目的操作数均在片内RAM、SFR中。
3.操作数A、Rn、@Ri、direct、#data之间,除Rn之间、Rn 与@Ri之间、@Ri之间不能直接传送外,其余均可直接传送。
4.源和目的操作数同为一种寻址方式只有直接地址direct。
(二)外部RAM数据传送指令 1.指令操作码:MOVX 2.源、目的操作数均在片外RAM中,其中有一个必须是A。
3.操作数为@DPTR、@Ri,只能通过累加器A,采用寄存器间接寻址方式。
@Ri:片外RAM的低256个单元,@ DPTR:片外RAM的全部64KB的空间。
(三)程序存储器(ROM)数据传送指令 1.指令操作码:MOVC,主要用于查表。
2.源操作数在片外ROM中,目的操作数在A中。
3.操作数为@A+DPTR、@A+PC,只能读入累加器A中。
@A+DPTR :远程查表表可以放在64KB ROM的任何地址。
@A+PC:近程查表,表只能在查表指令后的256B ROM的地址空间中。4.偏移量A的计算方法:
@A+DPTR:A=欲查数值距离表首地址的值
@A+PC: A=表首地址-当前指令的PC值-1
(四)数据交换指令 1.半字节交换
SWAP A
;(A)3~0←→(A)7~4
XCHD A , @Ri
;(A)3~0←→((Ri))3~0 2.字节交换
XCH A ,
(五)堆栈操作指令小结
1.指令操作码:PUSH,POP。
2.一个操作数在由SP设置的堆栈中,另一个在内部RAM中。3.PUSH入栈,先加SP,后入; POP出栈,先出,后减 SP。
4.堆栈操作指令是直接寻址指令,直接地址不能是寄存器名。堆栈操作以栈指针SP为间址寄存器的间址寻址方式。
5.用于执行中断、子程序调用、参数传递等程序的断点保护和现场保护。
(六)存储器中数据传送小结
1.CPU内部RAM用MOV指令,不能在两个Rn/@Ri之间直接传送。2.片外 RAM用MOVX指令:
低256B,可在A与@Ri之间传送;
64KB范围内,可在A与@DPTR之间传送。
3.ROM用MOVC指令,只能用MOVC A,@A+DPTR/MOVC A,@A+PC。
二、算术运算指令(6种/24条)
对标志位的影响:除加
1、减1指令外,均影响标志位。
(一)加法运算:(ADD ——4条)
(二)带进位加法运算:(ADDC——4条)
(三)带借位减法运算:(SUBB ——4条)
所有的加法、带进位加法、带借位减法运算的目的操作数均是A,即最终结果应存入 A,源操作数为Rn、@Ri、direct、#data。
加法运算(ADD);(A)(A)+(第二操作数)
带进位加法(ADDC);(A)(A)+(Cy)+(第二操作数)
带借位减法(SUBB);(A)(A)-(Cy)-(第二操作数)
(四)加1/减1操作:(INC,DEC——9条)
INC, DEC与用加/减法指令做加1/减1 操作不同之处在于INC、DEC不影响标志位,DPTR无减1。操作数为A、Rn、direct、@Ri、DPTR。
(五)单字节乘/除运算:(MUL,DIV——2条)
两个单字节数的乘/除法运算只在A与B之间进行。MUL AB:
(A)与(B)相乘, 积为16位数,(B)积的高8位;(A)积的低8位 DIV AB:
(A)除以(B),结果用2字节表示,(A)商的整数部分;(B)余数
(六)十进制调整:(DA
A——1条)
用于两个BCD码之间的相加,这条指令只能跟在 ADD 或 ADDC 之后。
三、逻辑运算和移位指令 对标志位的影响:目的操作数是A时影响P标志位。除了两条带进位的循环移位指令影响C标志外,其余均不影响PSW中的各标志位。
(一)逻辑与、或、异或:与(ANL—6条),或(ORL—6条),异或(XRL—6条)
操作码:ANL、ORL、XRL 格式:操作码
A,
操作码
direst ,
功能:与(清0或者保留某些位)、或(置1或者保留某些位)、异或(取反或者保留某些位)。模拟各种数字逻辑电路的功能,进行逻辑电路的设计。
(二)循环移位指令(4条)
不带进位的循环左、右移位(为RL, RR)
带进位的循环左、右移位(RLC, RRC)格式: 操作码
A 左移一位相当于乘2,右移一位相当于除以2。
(三)累加器清0与取反指令(2条)
格式:CLR/ CPL
A
标志位:CLR只影响P标志位,CPL 不影响标志位。
四、控制转移指令(4种/17条)
功能:改变程序的执行顺序——改变当前PC值。
对标志位的影响:除了CJNE影响PSW的进位标志位Cy外,其余均不影响PSW的各标志位。
地址偏移量rel的计算:
rel = 转移目标地址-转移指令地址(当前PC值)- 2
(一)无条件转移(4条)
长转移指令LJMP addr16 : 64KB
绝对转移指令AJMP addr11 :2KB
相对(短)转移指令SJMP rel : -128~+127(补码表示)
间接(散)转移指令JMP @A+DPTR : 64KB
在编程中经常使用短转移指令SJMP和相对转移指令AJMP,以便生成浮动代码。
(二)条件转移(判0跳转)(2条): JZ /JNZ rel;结果是否为0判断
(三)比较转移指令(4条):CJNE A, direct / #data, rel;比较,不相等则转
CJNE Rn /@Ri, #data, rel 标志位:影响Cy标志位,不影响其他标志位。
(四)循环(减1条件)转移指令(2条):DJNZ Rn /direct, rel;减1不等于0则转
(五)子程序调用与返回(4条)
绝对短调用指令
ACALL addr11
绝对长调用指令
LCALL addr16
子程序返回指令
RET
中断返回指令
RETI
注意子程序调用过程中的入出口参数。
(六)空操作:(NOP——1条)“耗时”一个机器周期。
五、位操作指令(4种17条)
对标志位的影响:对Cy的操作影响C标志位,其余均不影响PSW的各标志位。寻址范围:片内RAM位寻址区20H~2FH,SFR中的11个可位寻址特殊寄存器中的83个可寻址位。
注意:以Cy作为位累加器。正确表示位地址。
(一)位传送(2条): MOV C, bit /MOV bit, C
(二)位清零/置位(4条):CLR/
SETB
(三)位逻辑与/或/非运算(6条):ANL/ ORL C ,
CPL
;
(四)位条件转移(5条):JC/ JNC rel
;进位是否为1判断
JB/ JNB /JBC bit, rel ;位内容是否为1判断