资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
3.3 MCS-513.3 MCS-51的指令集的指令集3.3.2 3.3.2 算术运算类指令算术运算类指令ADD ADD / / ADDC ADDC / / INC INC / / DA A DA A / / SUBB SUBB / / DEC DEC / / MUL MUL / / DIVDIV3.3.3 3.3.3 逻辑运算类指令逻辑运算类指令CLR CLR / / CPL CPL / / ANL ANL / / ORL ORL / / XRL XRL / / RL RL / / RLC RLC / / RR RR / / RRCRRC3.3.4 3.3.4 控制转移指令控制转移指令AJMP AJMP / / LJMP LJMP / / SJMP SJMP / / JMP JMP / / JZ JZ / / JNZ JNZ / / CJNE CJNE / / DJNZ DJNZ ACALL ACALL / / LCALL LCALL / / RET RET / / RETI RETI / / NOPNOP3.3.5 3.3.5 位操作类指令位操作类指令MOV MOV / / CLR CLR / / SETB SETB / / ANL ANL / / ORL ORL / / CPL CPL JC JC / / JNC JNC / / JB JB / / JNB JNB / / JBCJBC3.3.2 3.3.2 算术运算类指令算术运算类指令n1. 1. 加法指令加法指令 ADD ADD / / ADDC ADDC / / INC INC / / DA ADA An2. 2. 减法指令减法指令 SUBB SUBB / / DECDECn3. 3. 乘法指令乘法指令 MULMULn4. 4. 除法指令除法指令 DIVDIV1. 1. 加法指令加法指令p(1) (1) 不带进位的加法指令不带进位的加法指令 ADDADDp(2) (2) 带进位加法指令带进位加法指令 ADDCADDCp(3) (3) 增量指令增量指令 INCINCp(4) (4) 十进制调整指令十进制调整指令 DA ADA A(1) (1) 不带进位的加法指令不带进位的加法指令 ADDADDp格式格式nADD A, ADD A, datadata;(;(A)(A)+#dataA)(A)+#datanADD A, direct ADD A, direct ;(;(A)(A)+(directA)(A)+(direct) ) nADD A, ADD A, RiRi;(;(A)(A)+(RiA)(A)+(Ri)nADD A, ADD A, RnRn;(;(A)(A)+(RnA)(A)+(Rn) )p对标志位的影响对标志位的影响nCyCy:最高位:最高位D7D7有进位,有进位,Cy=1Cy=1,否则,否则Cy=0Cy=0nACAC:D3D3有进位,有进位,AC=1AC=1,否则,否则AC=0AC=0nOVOV:D6D6和和D7D7位只有一个有进位,则位只有一个有进位,则OV=1OV=1,否则,否则OV=0OV=0nP P:A A中有奇数个中有奇数个“1”1”,P=1P=1,否则,否则P=0P=0无符号数:无符号数:CYCY表示进位、表示进位、溢出溢出( (不考虑不考虑OV)OV) 有符号数:有符号数:OVOV表示溢出表示溢出( (不考虑不考虑CY)CY)p 例例110 1 1 1 1 0 0 0 1200 1 1 0 0 1 0 0 1001 1 0 1 1 1 0 0 220+无无符号数加法:结果?符号数加法:结果?有有符号数加法:结果?符号数加法:结果?结果结果溢出?溢出?正确正确溢出溢出p 例例22n若:若:(A)=3BH(A)=3BH,(PSW)=0(PSW)=0,执行指令,执行指令 ADD AADD A,#3BH#3BHn结果:结果:(A)=_(A)=_,(PSW)=_(PSW)=_CyCyACACF0F0RSRS1 1RSRS0 0OVOVP P 0 0 1 1 1 0 1 10 0 1 1 1 0 1 1 + + 0 0 1 1 1 0 1 10 0 1 1 1 0 1 1 0 1 1 1 0 1 1 00 1 1 1 0 1 1 00 01 10 00 00 00 00 01 176H76H41H41H无无符号数加法:结果?符号数加法:结果?有有符号数加法:结果?符号数加法:结果?正确正确无溢出无溢出p 例例33n若:若:(A)=09H(A)=09H,(R1)=7CH(R1)=7CH,(PSW)=0(PSW)=0n执行:执行:ADD AADD A, R1 R1 ;A(A)+(R1)A(A)+(R1)n结果:结果:(A)=_(A)=_,(PSW)=_(PSW)=_ 0 0 0 0 1 0 0 10 0 0 0 1 0 0 1 + + 0 1 1 1 1 1 0 00 1 1 1 1 1 0 0 1 0 0 0 0 1 0 11 0 0 0 0 1 0 1CyCyACACF0F0RSRS1 1RSRS0 0OVOVP P0 01 10 00 00 01 10 01 185H85H45H45H无无符号数加法:结果?符号数加法:结果?有有符号数加法:结果?符号数加法:结果?正确正确溢出溢出p 例例44n若:若:(A)=87H(A)=87H,(R1)=0F5H(R1)=0F5H,(PSW)=0(PSW)=0n执行:执行:ADD AADD A, R1 R1 ;A(A)+(R1)A(A)+(R1)n结果:结果:(A)=_(A)=_,(PSW)=_(PSW)=_ 1 0 0 0 0 1 1 11 0 0 0 0 1 1 1 + + 1 1 1 1 0 1 0 11 1 1 1 0 1 0 1 0 1 1 1 1 1 0 00 1 1 1 1 1 0 0CyCyACACF0F0RSRS1 1RSRS0 0OVOVP P1 10 00 00 00 01 10 01 17CH7CH85H85H无无符号数加法:结果?符号数加法:结果?有有符号数加法:结果?符号数加法:结果?溢出不正确溢出不正确溢出溢出(2) (2) 带进位加法指令带进位加法指令 ADDADDC Cp格式格式nADDC A, ADDC A, RnRn;(;(A)(A)+(Rn)A)(A)+(Rn)+(C+(C) )nADDC A, directADDC A, direct;(;(A)(A)+(direct)A)(A)+(direct)+(C+(C) )nADDC A, ADDC A, RiRi;(;(A)(A)+(Ri)A)(A)+(Ri)+(C+(C) )nADDC A, ADDC A, datadata;(A)(A)+ ;(A)(A)+ datadata+(C+(C) )p对标志位的影响对标志位的影响n与与ADDADD指令相同指令相同(3) (3) 增量指令增量指令 INCINCp格式格式nINC AINC A;(A)(A)+1;(A)(A)+1nINC INC RnRn;(Rn)(Rn)+1;(Rn)(Rn)+1nINC directINC direct;(direct)(direct)+1 ;(direct)(direct)+1 nINC INC RiRi;(Ri)(Ri)+1 ;(Ri)(Ri)+1 nINC DPTRINC DPTR;(DPTR)(DPTR)+1;(DPTR)(DPTR)+1p先进行先进行 DPL + 1DPL + 1;产生;产生溢出溢出时,就对时,就对 DPH + 1DPH + 1p不影响任何标志不影响任何标志 p对标志位的影响对标志位的影响n除除 “INC A”INC A” 指令指令影响影响 P P 标志标志外,外,其余指其余指令均不影响令均不影响 PSW PSW 标志标志(4) (4) 十进制调整指令十进制调整指令 DA ADA Ap格式:格式:DA ADA Ap功能功能n对对A A参与参与的的BCDBCD码码加法运算加法运算结果进行结果进行十进制十进制调整调整p调整后,调整后,A A中的内容为中的内容为2 2位位压缩型压缩型BCDBCD码码p特点特点n只能只能跟在跟在加法指令加法指令(ADD(ADD或或ADDC)ADDC)之后之后n不能不能对减法指令的结果进行调整对减法指令的结果进行调整n不影响不影响溢出标志位溢出标志位 OVOVp 例例11MOV A, 36HADD A, 45HDA A 0 0 1 1 0 1 1 0 360 1 0 0 0 1 0 1 450 1 1 1 1 0 1 1 7B0 0 0 0 0 1 1 0 06+1 0 0 0 0 0 0 1 81BCD码码参与运算参与运算进行进行加加法法调整得到两位调整得到两位压缩压缩BCD码码p 例例2 2 n执行执行 MOV A,#3FHMOV A,#3FHDA ADA An结果结果(A)=_(A)=_p 例例3 3 n执行执行 MOV A,#3FHMOV A,#3FHADD A,#12HADD A,#12HDA ADA An结果结果(A)=_(A)=_45H45H 63H63H BCD码码参与运算参与运算进行进行加加法法调整得到两位调整得到两位压缩压缩BCD码码57H57H 81H81H; ;调整前,调整前,没没进行进行加法加法运算运算; ;有有非压缩非压缩BCDBCD数数参与加法参与加法运算运算2. 2. 减法指令减法指令p(1) (1) 带进位的减法指令带进位的减法指令 SUBBSUBBp(2) (2) 减减1 1指令指令 DECDEC(1) (1) 带进位的减法指令带进位的减法指令 SUBBSUBBp格式格式nSUBB A, SUBB A, RnRn ;(A)(A)-(;(A)(A)-(RnRn) )-(C)-(C)nSUBB A, directSUBB A, direct ;(A)(A)-(direct);(A)(A)-(direct)-(C)-(C)nSUBB A, SUBB A, RiRi;(A)(A)-(;(A)(A)-(RiRi)-(C)-(C)nSUBB A, SUBB A, datadata;(A)(A)-;(A)(A)-datadata-(C)-(C)p对标志位的影响对标志位的影响n与与ADDADD指令相同,只是进位在减法指令中为借位指令相同,只是进位在减法指令中为借位进行进行不带不带借位借位的减法操作的减法操作, , 必须必须先将先将CyCy清清“0 0” (2) (2) 减减1 1指令指令 DECDECp格式格式nDEC ADEC A;(A)(A)-1;(A)(A)-1nDEC DEC RnRn;(Rn)(Rn)-1;(Rn)(Rn)-1nDEC directDEC direct;(direct)(direct)-1 ;(direct)(direct)-1 nDEC DEC RiRi;(Ri)(Ri)-1;(Ri)(Ri)-1p对标志位的影响对标志位的影响n除除 “DEC A”DEC A” 指令指令影响影响 P P 标志标志外,外,其余指其余指令均不影响令均不影响 PSW PSW 标志标志3. 3. 乘法指令乘法指令 MUL MUL p格式格式nMUL ABMUL AB;BABA;BABAp无符号无符号数相乘数相乘p结果结果乘积乘积 0FFH 0FFH,则,则OV=1OV=1,否则,否则OV=0OV=0CY=0CY=0A(8(8位位) )B(8(8位位) ) BA(16(16位位) )4. 4. 除法指令除法指令 DIVDIVp格式格式nDIV ABDIV ABp无符号无符号数相除数相除p结果结果OV=0OV=0;CY=0CY=0若原来若原来 B = 0B = 0,执行后,执行后A A 与与 B B 的内容的内容不定不定,OV=1OV=1AA.B商商余数余数B3.3.3 3.3.3 逻辑运算类指令逻辑运算类指令n1. 1. 简单逻辑操作指令简单逻辑操作指令 CLR A CLR A / / CPL A CPL An2. 2. 逻辑与指令逻辑与指令 ANLANLn3. 3. 逻辑或指令逻辑或指令 ORLORLn4. 4. 逻辑异或指令逻辑异或指令 XRL XRL n5. 5. 循环移位指令循环移位指令 RL A RL A / / RLC A RLC A RR A RR A / / RRC A RRC A1. 1. 简单逻辑操作指令简单逻辑操作指令 CLR A CLR A / / CPL A CPL Ap格式格式nCLR ACLR A; ;对累加器对累加器A A清清“0”0”nCPL ACPL A; ;对累加器对累加器A A按按位位取反取反p不影响不影响CY, AC, OVCY, AC, OV等标志等标志p 例例 若(若(A A)=10101010B=10101010B执行:执行:CPL ACPL A结果:(结果:(A A)=01010101B=01010101B2. 2. 逻辑逻辑与与指令指令 ANLANLp格式格式nANL A, ANL A, datadata;(;(A)(A)#dataA)(A)#data nANL A, ANL A, RnRn ;(;(A)(A)(RnA)(A)(Rn) )nANL A, direct ANL A, direct ;(;(A)(A)(directA)(A)(direct) ) nANL A, ANL A, RiRi ;(;(A)(A)(RiA)(A)(Ri)nANL direct, ANL direct, data;(direct)(direct)#datadata;(direct)(direct)#data nANL direct, A ANL direct, A ;(;(direct)(direct)Adirect)(direct)Ap功能功能n两个操作数两个操作数按位按位逻辑逻辑与与,结果,结果送回送回目的目的操作数操作数p寄存器不是寄存器不是A A或或PSWPSW时,不影响标志,否则影响标志位时,不影响标志,否则影响标志位3. 3. 逻辑逻辑或或指令指令 ORLORLp格式格式nORL A, ORL A, datadata;(;(A)(A)#dataA)(A)#data nORL A, ORL A, RnRn;(;(A)(A)(RnA)(A)(Rn) ) nORL A, directORL A, direct;(;(A)(A)(directA)(A)(direct) ) nORL A, ORL A, RiRi;(;(A)(A)(RiA)(A)(Ri)nORL direct, ORL direct, data;(direct)(direct)#datadata;(direct)(direct)#datanORL direct, AORL direct, A;(;(direct)(direct)Adirect)(direct)A p功能功能n两个操作数两个操作数按位按位逻辑逻辑或或,结果,结果送回送回目的目的操作数操作数p寄存器不是寄存器不是A A或或PSWPSW时,不影响标志,否则影响标志位时,不影响标志,否则影响标志位4. 4. 逻辑逻辑异或异或指令指令 XRL XRL p格式格式nXRL A, XRL A, data data nXRL A, XRL A, RnRnnXRL A, direct XRL A, direct nXRL A, XRL A, RiRi nXRL direct, XRL direct, data data nXRL direct, A XRL direct, A p功能功能n两个操作数的内容两个操作数的内容按位按位逻辑逻辑异或异或操作,结果操作,结果送回送回目的目的操作数操作数p寄存器不是寄存器不是A A或或PSWPSW时,不影响标志,否则影响标志位时,不影响标志,否则影响标志位逻辑运算指令的常见用法逻辑运算指令的常见用法p逻辑逻辑 与与 ANLANLn清清0 0 或者或者 保留保留 某些位某些位p逻辑逻辑 或或 ORLORLn置置1 1 或者或者 保留保留 某些位某些位p逻辑逻辑 异或异或 XRLXRLn取反取反 或者或者 保留保留 某些位某些位将将A A的的D4D4、D3D3清清0 0ANL AANL A,#0E7H#0E7H将将A A的的D1D1、D0D0置置1 1 ORL AORL A,#03H#03H将将A A的的D7D7、D6D6取反取反XRL AXRL A,#0C0H#0C0H将将A A的的D4D4、D3D3清清0 0ANL AANL A,#0E7H#0E7H将将A A的的D1D1、D0D0置置1 1 ORL AORL A,#03H#03H将将A A的的D7D7、D6D6取反取反XRL AXRL A,#0C0H#0C0H5. 5. 循环移位指令循环移位指令 RL A RL A / / RLC A RLC A / / RR A RR A / / RRC ARRC Ap仅仅带带进位标志位进位标志位的移位指令的移位指令影响影响CYCY和和P P标志标志p仅移仅移 1 1 位位A AC CC C. .7 7A AC CC C. .0 0RL RL A ; ;循环左移循环左移A AC CC C. .7 7A AC CC C. .0 0RR RR A ; ;循环右移循环右移A AC CC C. .7 7A AC CC C. .0 0RLC RLC A ; ;带进位循环左移带进位循环左移CYCYA AC CC C. .7 7A AC CC C. .0 0RRC RRC A ; ;带进位循环右移带进位循环右移CYCYp 例例 用用9 9位循环指令实现多字节移位位循环指令实现多字节移位编程将寄存器编程将寄存器 R6, R5 R6, R5 中的双字节数中的双字节数X X左移一位。左移一位。CLRCLRC CMOVMOVA,R5A,R5RLCRLCA AMOVMOVR5,AR5,AMOVMOVA,R6A,R6RLCRLCA AMOVMOVR6,AR6,AR5.7 R5.6 R5.5 R5.4 R5.3 R5.2 R5.1 R5.0AACR5.6 R5.5 R5.4 R5.3 R5.2 R5.1 R5.00R5.7R5R6.7 R6.6 R6.5 R6.4 R6.3 R6.2 R6.1 R6.0R6.7R6.6 R6.5 R6.4 R6.3 R6.2 R6.1 R6.0 R5.7R6一般不影响标志位一般不影响标志位“二般呢?二般呢?”3.3.4 3.3.4 控制转移指令控制转移指令p1.1. 无条件转移指令无条件转移指令AJMP AJMP / / LJMP LJMP / / SJMP SJMP / / JMPJMPp2.2. 条件转移指令条件转移指令 JZ JZ / / JNZJNZp3. 3. 比较比较转移指令转移指令 CJNECJNEp4. 4. 减减 1 1 不为不为 0 0 转移指令转移指令 DJNZDJNZp5. 5. 调用和返回指令调用和返回指令 ACALL ACALL / / LCALL LCALL / / RET RET / / RETIRETIp6. 6. 空操作指令空操作指令 NOPNOP1.1. 无条件转移指令无条件转移指令 AJMPAJMP/ /LJMPLJMP/ /SJMPSJMP/ /JMPJMPp(1) (1) 绝对转移指令绝对转移指令nAJMP addr11AJMP addr11; ;(PCPC)(PCPC)+ 2+ 2; ;(PCPC10100 0) addraddr1111 p(2) (2) 长转移指令长转移指令nLJMP addr16LJMP addr16;(PC) addr;(PC) addr1616p(3) (3) 短转移指令短转移指令nSJMP SJMP relrel;(PC) (PC) + 2;(PC) (PC) + 2;(PC) (PC) + ;(PC) (PC) + relrelp(4) (4) 间接转移指令间接转移指令nJMP A+DPTRJMP A+DPTR;(PC) ;(PC) (A A)+ +(DPTRDPTR)范围范围:2kB:2kB范围范围:64kB:64kB范围范围:-128:-128+127+127可以是直接地址或符号地址利用转移指令表,实现程序利用转移指令表,实现程序分支转移分支转移无符号数无符号数p 例例1 1 地址地址 源代码源代码 注释注释-|-|- -| |-1.1.0100H | 0100H | SJMP NEWADD SJMP NEWADD | |;(PC);(PC)(PC)+2;(PC)(PC)+rel(PC)+2;(PC)(PC)+rel2.2.0102H | 0102H | | |3.3. | | | |4.4.0123H 0123H | |NEWADDNEWADD: : |;|;标号标号NEWADDNEWADD所指位置所指位置p 例例2 2 若(若(A A)=10H=10H,(,(DPTRDPTR)=2000H=2000H执行:执行: JMP A+DPTR JMP A+DPTR 结果:结果: (PCPC)= 2010H= 2010H2.2. 条件转移指令条件转移指令JZ JZ / / JNZJNZp(1)(1)nJZ JZ relrel ; ; 若若(A)(A)= =0,0,则则 (PC) (PC) (PC) (PC) + 2+ 2 + + relrel ; , ; ,否则否则 (PC) (PC) (PC) (PC) + 2+ 2p(2)(2)nJNZ JNZ relrel; ; 若若(A)(A)0,0,则则 (PC) (PC) (PC) (PC) + 2+ 2 + + relrel ; , ; ,否则否则 (PC) (PC) (PC) (PC) + 2+ 2p目标地址目标地址n以以下一条指令下一条指令起始地址起始地址为中心为中心的的 256 256 个字节范个字节范围之内(围之内(-128 -128 +127+127)无符号整数无符号整数3. 3. 比较比较转移指令转移指令 CJNECJNEp格式格式nCJNE CJNE A A , direct, , direct, relrelnCJNE CJNE A A , , data, data, relrelnCJNE CJNE RnRn , , data, data, relrelnCJNE CJNE RiRi , , data, data, relrelp功能功能n比较比较前两个操作数的前两个操作数的大小大小p不相等,不相等,程序转移:程序转移: (PC) (PC)+3+relp相等,相等,程序继续执行:程序继续执行: (PC) (PC)+3 n若:第一个操作数若:第一个操作数 小于第二个操作数小于第二个操作数p则,则,Cy=1Cy=1;否则,;否则,Cy=0Cy=0n指令指令不影响不影响操作数内容操作数内容 范围范围:-128:-128+127+1274. 4. 减减 1 1 不为不为 0 0 转移指令转移指令 DJNZDJNZp格式格式nDJNZ DJNZ Rn,relRn,rel ;(PC)(PC)+2;(PC)(PC)+2,(Rn)(Rn)(Rn)-1(Rn)-1 ; ;若若(Rn)(Rn)0 0,( (PC)(PC)PC)(PC)+rel+rel ; ;若若( (RnRn) )= =0 0,(PC)(PC)(PC)(PC) nDJNZ DJNZ direct,reldirect,rel;(PC)(PC)+3;(PC)(PC)+3,(direct)(direct)(direct)-1(direct)-1 ; ;若若(direct)(direct)0 0,( (PC)(PC)PC)(PC)+rel+rel ; ;若若(direct)(direct)= =0 0,(PC)(PC)(PC)(PC)p功能功能n循环程序中,控制循环程序中,控制循环次数循环次数p 例例11MOVMOVA,#0HA,#0HDELAY:DELAY:MOV R6,#4HMOV R6,#4HD1:D1:INC AINC ADJNZ R6,D1DJNZ R6,D1此段程序执行后,此段程序执行后,(A)=_H(A)=_H0404p 例例22MOVMOVA,#0HA,#0HDELAY:DELAY:MOV R6,#4HMOV R6,#4HD1:D1:INC AINC AMOVMOVR6,#1HR6,#1HDJNZ R6,D1DJNZ R6,D1此段程序执行后,此段程序执行后,(A)=_H(A)=_H0404“死死”循循环环5. 5. 调用和返回指令调用和返回指令 ACALL ACALL / / LCALL LCALL / / RET RET / / RETIRETIp子程序子程序n具有具有 一定功能一定功能 的的 程序程序 编写成编写成 子程序子程序p减少工作量、缩短程序长度减少工作量、缩短程序长度n通过通过主程序主程序调用调用来使用来使用p(1) (1) 调用指令调用指令 ACALL ACALL / / LCALLLCALL p(2) (2) 返回指令返回指令 RET RET / / RETIRETI堆栈操作堆栈操作保存保存程序程序断点断点(1) (1) 调用指令调用指令 ACALL ACALL / / LCALLLCALL p(1)(1)短调用(短调用(范围:范围:_ )ACALL addrACALL addr1111;(PC) (PC) + ;(PC) (PC) + 2 2;SP SP + 1;SP SP + 1,(SP)(PC(SP)(PC7 70 0) );SP SP + 1;SP SP + 1,(SP)(PC(SP)(PC15158 8) );(PC;(PC10100 0) addr11) addr11p(2)(2)长调用(长调用(范围:范围:_ )LCALL addrLCALL addr1616 ;(PC)(PC) + ;(PC)(PC) + 3 3;SP SP + 1;SP SP + 1,(SP)(PC(SP)(PC7 70 0) );SP SP + 1;SP SP + 1,(SP)(PC(SP)(PC15158 8) );(PC) addr16;(PC) addr162kB2kB64kB64kB(2) (2) 返回指令返回指令 RET RET / / RETIRETIp子程序返回指令子程序返回指令 RETRETn恢复断点恢复断点p将将调用调用子程序时子程序时压入堆栈压入堆栈的的下一条指令的首地下一条指令的首地址(即:程序的址(即:程序的断点断点)取出取出送入送入PCPC,使,使返回返回主程序继续执行主程序继续执行p中断返回指令中断返回指令 RETIRETIn功能与功能与 RETRET 指令指令相似相似p不同:还要不同:还要清除清除中断状态标志中断状态标志6. 6. 空操作指令空操作指令 NOPNOPp格式格式nNOP ;(PC) (PC) + 1NOP ;(PC) (PC) + 1p功能功能nCPUCPU不不产生产生任何任何控制控制操作操作n将将PCPC的内容的内容加加1 1,执行,执行下一条指令下一条指令n耗费耗费1 1个机器周期个机器周期p常用于常用于较短时间的较短时间的延时延时3.3.5 3.3.5 位操作类指令位操作类指令p1. 1. 位传送位传送 MOVMOVp2. 2. 位状态置位位状态置位 CLR CLR / / SETB SETB p3. 3. 位逻辑运算位逻辑运算 ANL ANL / / ORL ORL / / CPLCPLp4. 4. 位变量条件转移指令位变量条件转移指令JC JC / / JNC JNC / / JB JB / / JNB JNB / / JBCJBC可位寻址区可位寻址区回顾:片内回顾:片内RAMRAMp工作寄存器区:工作寄存器区:n字节地址:字节地址:00H00H1FH1FHp数据缓冲区数据缓冲区/ /堆栈区:堆栈区:n字节地址:字节地址:00H00H7FH7FHn一般使用一般使用30H30H7FH7FHp位寻址区:位寻址区:n字节地址:字节地址:20H20H2FH2FHn位地址为:位地址为:00H00H7FH7FH可位寻址区可位寻址区回顾:特殊功能寄存器回顾:特殊功能寄存器SFRSFRp占用字节地址:占用字节地址:80H80HFFHFFHp专用寄存器:专用寄存器:nA A、B B、PSWPSW、DPTRDPTR、SPSPpI/OI/O接口寄存器:接口寄存器:nP0P0、P1P1、P2P2、P3P3、SBUFSBUF、TMODTMOD、TCONTCON、SCON SCON p位寻址寄存器:位寻址寄存器:n其字节地址其字节地址可被可被8 8整除整除可位寻址区可位寻址区回顾:位地址表达形式回顾:位地址表达形式p(1) (1) 直接地址方式直接地址方式如:如:0A8H0A8Hp(2) (2) 字节地址加位序号字节地址加位序号如:如:0D0H.50D0H.5p(3) (3) 点操作符方式点操作符方式如:如:PSW.1 PSW.1 p(4) (4) 位名称方式位名称方式如:如:TR0TR0、TR1 TR1 p(5) (5) 伪指令定义方式伪指令定义方式如:如:PO1 PO1 BITBIT P0.1 ; P0.1 ;允许允许PO1PO1代替代替P0.1P0.11. 1. 位传送位传送 MOVMOVp格式格式nMOV MOV C, bit, bit; (Cy) (bit); (Cy) (bit)nMOV bit, MOV bit, C; (bit) ; (bit) (CyCy)p 例例 若(若(CYCY)= 0= 0n执行指令执行指令MOV P0.0MOV P0.0,C CMOV 0D5HMOV 0D5H,C Cn执行后:执行后: P0.0 = 0P0.0 = 0,PSW.5 = 0PSW.5 = 02. 2. 位状态置位位状态置位 CLR CLR / / SETB SETB p(1)(1)位位清零清零nCLR C CLR C ;(Cy) 0 ;(Cy) 0 n CLR bit CLR bit ;(bit) 0 ;(bit) 0 p(2)(2)位位置位置位nSETB CSETB C;(Cy) 1 ;(Cy) 1 n SETB bit SETB bit ;(bit) 1;(bit) 1p不影响不影响其它标志其它标志3. 3. 位逻辑运算位逻辑运算 ANL ANL / / ORL ORL / / CPLCPLp(1)(1)位逻辑位逻辑 “ “与与与与”pANL ANL C, /bit , /bit ;(;(Cy)(CyCy)(Cy)(/bit)(/bit)pANL ANL C, bit , bit ;(;(Cy)(Cy)(bitCy)(Cy)(bit) )p(2)(2)位逻辑位逻辑 “ “或或或或”pORL ORL C, bit, bit;(;(Cy)(Cy)(bitCy)(Cy)(bit) )pORL ORL C, /bit , /bit ;(;(Cy)(CyCy)(Cy)(/bit)(/bit)p(3)(3)位取位取 反反反反pCPL CCPL C ;(Cy)(/Cy);(Cy)(/Cy)pCPL bitCPL bit ;(Cy)(/bit);(Cy)(/bit)4. 4. 位变量条件转移指令位变量条件转移指令 JC JC / / JNC JNC / / JB JB / / JNB JNB / / JBCJBCp(1)(1)判判 CyCy 转移转移nJC JC relrel; ;若若(Cy)=1(Cy)=1,则,则 PC(PC)+2+relPC(PC)+2+rel; ;否则,顺序执行否则,顺序执行nJNC JNC relrel; ;若若(Cy)=0(Cy)=0,则,则 PC(PC)+2+relPC(PC)+2+rel; ;否则,顺序执行否则,顺序执行p(2)(2)判判 bitbit 转移转移nJB bit, JB bit, relrel ; ;若若(bit)=1(bit)=1,则,则 PC(PC)+3+relPC(PC)+3+rel ; ;否则,顺序执行否则,顺序执行nJNB bit, JNB bit, relrel ; ;若若(bit)=0(bit)=0,则,则 PC(PC)+3+relPC(PC)+3+rel ; ;否则,顺序执行否则,顺序执行nJBC bit, JBC bit, relrel ; ;若若(bit)=1(bit)=1,则,则 PC(PC)+3+rel PC(PC)+3+rel ; ;并并并并 (bit) 0(bit) 0 ,否则,顺序执,否则,顺序执行行小结小结p掌握指令掌握指令n算术算术运算类指令运算类指令ADD / ADDC / INC / DA A / SUBB / DEC / MUL / DIVADD / ADDC / INC / DA A / SUBB / DEC / MUL / DIVn逻辑逻辑运算类指令运算类指令CLR / CPL / ANL / ORL / XRL / RL / RLC / RR / RRCCLR / CPL / ANL / ORL / XRL / RL / RLC / RR / RRCn控制转移控制转移指令指令AJMP / LJMP / SJMP / JMP / JZ / JNZ / CJNE / DJNZ AJMP / LJMP / SJMP / JMP / JZ / JNZ / CJNE / DJNZ ACALL / LCALL / RET / RETI / NOPACALL / LCALL / RET / RETI / NOPn位位操作类指令操作类指令MOV / CLR / SETB / ANL / ORL / CPLMOV / CLR / SETB / ANL / ORL / CPLJC / JNC / JB / JNB / JBCJC / JNC / JB / JNB / JBCp预习:汇编语言程序的基本形式和结构预习:汇编语言程序的基本形式和结构p作业:作业:P94P943.73.7
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号