实验五文档格式.docx
《实验五文档格式.docx》由会员分享,可在线阅读,更多相关《实验五文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
ADD+
ADDC带C+
SUBB带C-
(2)操作数:
如右图,以A为目的操作数
(3)指令描述举例:
不带进位加法ADD4条
ADDA,Rn;
(A)&
#8592;
(A)+(Rn)
带进位加法指令ADDC4条
ADDCA,direct;
(A)+(direct)+(CY)
带进位减法指令SUBB4条
SUBBA,@Ri;
(A)&
(A)-((Ri))-(CY)
SUBBA,#data;
(A)-#data-(CY)
实验内容3-11:
设(A)=D3H,(30H)=E8H
执行:
ADDA,30H
写出结果:
CY=?
,AC=?
,P=?
,OV=?
,(A)=?
实验内容3-12:
设(A)=88H,(30H)=99H,CY=1
ADDCA,30H
结果:
,(A)=
实验内容3-13:
设(A)=49H,CY=1,
,P=0,OV=?
,(A)=?
实验内容3-14:
试编制4位十六进制数加法程序,假定和数超过双字节
(21H20H)+(31H30H)&
#8594;
42H41H40H
分析:
先低字节作不带进位求和,再作带进位高字节求和。
写出程序
2、加1减1指令
助记符:
INC,DEC
操作数:
A,direct,@Ri,Rn,DPTR
指令描述:
(不影响PSW,即使有进位或借位,CY也不变,除A影响P标志)
(1)INC:
加15条
INCA;
(A)+1
INCRn;
(Rn)&
(Rn)+1
INC@Ri;
((Ri))&
((Ri))+1
INCdirect;
(direct)&
(direct)+1
INCDPTR;
(DPTR)&
(DPTR)+1
(2)DEC:
减14条
DECA;
(A)—1
DECRn;
(Rn)—1
DEC@Ri;
((Ri))—1
DECdirect;
(direct)
实验内容3-15:
编制下列减法程序,要求:
(31H30H)—(41H40H)&
31H30H
3、十进制调整指令
格式:
DAA
指令用于两个BCD码加法运算的加6修正,只影响CY位。
指令的使用条件:
(1)只能紧跟在加法指令(ADD/ADDC)后进行
(2)两个加数必须已经是BCD码
(3)只能对累加器A中结果进行调整加6修正的依据:
由CPU判CY、AC是否=1?
A的高、低4位是否大于9?
例如:
(A)=56H,(R5)=67H,(BCD码)执行:
ADDA,R5
DAA
(A)=23H,(CY)=1
实验3-16:
试编制十进制数加法程序(单字节BCD加法),假定和数为单字节,要求:
(20H)+(21H)&
22H
分析:
流程如右图
4、乘除法指令
唯一两条单字节4机器周期的指令。
(1)8位无符号数乘法指令
MULAB;
(B15~8)(A7~0)&
(B)
PSW:
1)若乘积大于256,OV=1;
否则OV=0;
2)CY总是清&
0&
。
例如:
(A)=50H,(B)=A0H,执行MULAB后
(B)=32H,(A)=00H,(OV)=1
(2)8位无符号除法指令
DIVAB;
(A)&
(A/B)的(商);
(B)&
(A/B)的(余数)
PSW:
1)CY、OV,清&
2)若(B)=0,OV=1。
(A)=2AH,(B)=05H,执行DIVAB后
(A)=08H,(B)=02H,(OV)=0
实验内容3-17:
编制将A中的数转换成三位BCD码程序,百位放在20H,十位、个位放在21H中。
(A)/100&
商(百位)&
(20H);
余数/10&
商(十位)&
(21H);
余数(个位)&
流程如右图
请写出程序
三、逻辑运算指令
1、基本与、或、异或运算指令
(1)指令助记符:
ANL、ORL、XRL
(2)指令描述举例:
逻辑&
与&
指令6条
ANLA,Rn;
(A)∧(Rn)
ANLA,direct;
(A)∧(direct)
或&
ORLA,@Ri;
(A)∨((Ri))
ORLA,#data;
(A)∨data
异或&
XRLdirect,A;
(direct)&
#8853;
(A)
XRLdirect,#data;
data
当用于修改输出口(P0~P3)时,direct指口锁存器的内容而不是端口引脚电平。
2、对A简单逻辑指令
1)清零与取反
CLRA;
清0
CPLA;
求反
2)循环移位指令
RLA;
RLCA;
RRA;
RRCA;
实验内容3-18:
按要求编程,完成下列各题:
1)选通工作寄存器组中0区为工作区。
2)利用移位指令实现累加器A的内容乘6。
3)将ACC的低4位送P1口的低4位,P1口的高4位不变。
实验内容3-19:
设在外RAM2000H中放有两个BCD数,编程,使这两个BCD码分别存到2000H和2001H的低4位中。
四、控制转移指令(22条)
无条件转移应用
2、条件转移指令
根据某种条件判断转移的指令,执行时:
条件满足时,转移执行;
条件不满足时,顺序执行;
1)判A转移,2字节
JZrel;
条件:
(A)=0
JNZrel;
#8800;
2)判Bit转移,3字节
JBbit,rel;
(bit)=1
JNBbit,rel;
(bit)=0
JBCbit,rel;
(bit)=1转移,并清bit位
3、比较不相等转移指令
CJNEA,direct,rel;
CJNEA,#data,rel;
CJNERn,#data,rel;
CJNE@Ri,#data,rel;
执行时:
1)两操作数相等,顺序执行,且CY=0。
2)两操作数不相等,转移执行,且对于无符号数若:
第一操作数<第二操作数,CY=1,否则CY清&
目的地址:
(PC)=rel
4、减&
1&
不为0转移指令
又称循环转移指令,主要用来构成循环结构,有2条:
DJNZRn,rel;
2字节指令,2周期指令
DJNZdirect,rel;
3字节指令,2周期指令
五、实验步骤
1、分别编写调用程序,然后在开发环境中编译运行,写出实验内容的结果
六、实验报告
2、给出各个程序的清单,要求有注释。
3、MCS-51系列单片机控制转移指令有哪些?
列出这些指令,并说明其功能。