1、主要内容主要内容寻址方式寻址方式指令系统指令系统传送与交换指令传送与交换指令算术运算、逻辑运算指令算术运算、逻辑运算指令控制转移指令控制转移指令位操作指令位操作指令伪指令伪指令程序设计举例程序设计举例第第3章章 MCS-51系列单片机的指令系统系列单片机的指令系统及汇编语言程序设计及汇编语言程序设计可整理ppt 计算机通过执行程序完成人们指定的任务,计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为程序由一条一条指令构成,能为CPUCPU识别并执行的识别并执行的指令的集合就是该指令的集合就是该CPUCPU的的指令系统指令系统。MCS-51 MCS-51单片机汇编语言单片机汇编语
2、言指令格式指令格式:操作符操作符 目的操作数,源操作数目的操作数,源操作数 操作符指明该指令完成什么操作;操作符指明该指令完成什么操作;操作数是指明该指令的操作对象。操作数是指明该指令的操作对象。目的操作数是存放结果的。目的操作数是存放结果的。目的操作数是存放结果的。目的操作数是存放结果的。指令中操作数提供的方式称为指令中操作数提供的方式称为寻址方式寻址方式。可整理ppt 指令中的常用符号指令中的常用符号Rn:Rn:表示当前工作寄存器表示当前工作寄存器R0R0R7R7中的一个。中的一个。Ri:Ri:代表代表R0R0和和R1R1寄存器中的一个,用作间接寻址寄存器。寄存器中的一个,用作间接寻址寄存
3、器。dir:dir:8 8 位直接字节地址(片内位直接字节地址(片内 RAM RAM 和和 SFR SFR)#data:#data:8 8位立即数,即位立即数,即8 8位常数。可以为位常数。可以为2 2进制(进制(B B)、)、10 10进进制、制、1616进制(进制(H H)、)、字符(字符()#data16:#data16:表示表示1616位立即数,即位立即数,即1616位常数,取值范围为位常数,取值范围为:#0000H#0000H#0FFFFH#0FFFFHaddr16:addr16:表示表示1616位地址位地址 addr11:addr11:表示表示1111位地址位地址rel:rel:相
4、对偏移量(为一字节补码)用于相对转移指令中相对偏移量(为一字节补码)用于相对转移指令中bit:bit:位地址,在位地址空间中。位地址,在位地址空间中。$:$:表示当前指令的地址。表示当前指令的地址。可整理ppt 指令中直接给出操作数的寻址方式。在指令中直接给出操作数的寻址方式。在5151系列单片机的指令系统中,立即数用一个系列单片机的指令系统中,立即数用一个前面加前面加“#”“#”号的号的8 8位数位数(#data(#data,如,如#30H)#30H)或或1616位数位数(#data16(#data16,如,如#2052H)#2052H)表示。立即寻表示。立即寻址中的数,称为立即数。址中的数
5、,称为立即数。例如指令:例如指令:MOV AMOV A,#58H#58H;58H58HAA3.1 寻址方式寻址方式3.1.1 立即寻址立即寻址可整理ppt 操作数的地址直接出现在指令中。操作数的地址直接出现在指令中。寻址对象:寻址对象:内部数据存贮器:使用它的地址。内部数据存贮器:使用它的地址。特殊功能寄存器:既可使用它的地址,也可以直接使用特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。寄存器名。位地址空间位地址空间 程序存储器空间程序存储器空间例:例:例:例:MOV AMOV AMOV AMOV A,40H ;40H ;40H ;40H ;(40H40H40H40H)AAAA M
6、OV 40H MOV 40H MOV 40H MOV 40H,41H ;41H ;41H ;41H ;(41H41H41H41H)(40H40H40H40H)MOV P0 MOV P0 MOV P0 MOV P0,#45H ;#45H ;#45H ;#45H ;45HP045HP045HP045HP0 MOV 80H MOV 80H MOV 80H MOV 80H,#45H;#45H;#45H;#45H;45HP045HP045HP045HP0 MOV C MOV C MOV C MOV C,18H ;18H ;18H ;18H ;位地址位地址1818HCHCHCHC3.1.2 3.1.2 直
7、接寻址直接寻址可整理ppt操作数存放在寄存器中。操作数存放在寄存器中。寻址对象:寻址对象:A A,B B,C,DPTRC,DPTR,R0R0R7 R7。B B仅在乘除法指令中为寄存器寻址,在其他指仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。令中为直接寻址。A A可以寄存器寻址又可以直接寻址,直接寻址可以寄存器寻址又可以直接寻址,直接寻址时写作时写作ACCACC 例如:例如:MOV AMOV A,R0 R0 ;R0AR0A MUL AB MUL AB ;A*BBAA*BBA ADD A ADD A,ACC ACC;A+AAA+AA3.1.3 3.1.3 寄存器寻址寄存器寻址可整理ppt
8、 操作数存放在以寄存器内容为地址的单元中,用做间址的操作数存放在以寄存器内容为地址的单元中,用做间址的寄存器为寄存器为RiRi(i=0i=0,1 1)、)、DPTRDPTR。对片内的间接寻址用对片内的间接寻址用RiRi(i=0i=0,1 1)如:如:MOV R0 MOV R0,#20H#20H MOV R0MOV R0,A A ;A(20H)A(20H)对片外的间接寻址可用对片外的间接寻址可用RiRi(i=0i=0,1 1)或)或DPTRDPTR 如:如:MOVX DPTR MOVX DPTR,A A;AA以以DPTRDPTR的内容为地址的外部的内容为地址的外部RAMRAM中中 MOVX R1
9、,A MOVX R1,A ;AA以以P2 R1P2 R1内容为地址的外部内容为地址的外部RAMRAM中中 PUSH PUSH和和POPPOP指令的源操作数是以指令的源操作数是以SPSP间接寻址间接寻址 注意:寄存器间接寻址不能访问注意:寄存器间接寻址不能访问SFRSFR MOV R1,#81H MOV R1,#81H MOV A,R1 MOV A,R1 ;不能访问;不能访问SPSP,只能用,只能用 MOV A,SP MOV A,SP3.1.4 3.1.4 寄存器间址寄存器间址可整理ppt 变址寻址只能访问程序存储器。操作数所在位置变址寻址只能访问程序存储器。操作数所在位置的地址由的地址由DPT
10、RDPTR或或PCPC寄存器与寄存器与A A的内容相加后形成。其中的内容相加后形成。其中累加器累加器A A内容是可变的。变址寻址只有三条指令。内容是可变的。变址寻址只有三条指令。MOVC A,A+DPTR MOVC A,A+DPTR ;(A+DPTR)A(A+DPTR)A MOVC A,A+PC MOVC A,A+PC ;(A+PC)A(A+PC)A JMP JMP A+DPTR A+DPTR ;A+DPTRPCA+DPTRPC注意:注意:AA的内容是无符号数。的内容是无符号数。PC PC值是指令的当前值是指令的当前PCPC值,即下条指令的值,即下条指令的PCPC值值3.1.5 3.1.5 变
11、址寻址变址寻址可整理ppt3.1.6 3.1.6 相对寻址相对寻址 变址寻址只能访问程序存储器。相对寻址是将程序计数器变址寻址只能访问程序存储器。相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。的目标地址。如:如:JZ 61H注意:注意:相对偏移量是一字节有符号数,用补码表示,偏移范相对偏移量是一字节有符号数,用补码表示,偏移范围是:围是:-128-128+127+127。PC PC值是指令的当前值是指令的当前PCPC值,即下条指令的值,即下条指令的PCPC值。值。源程序中偏移量常用符号地址表示。源程
12、序中偏移量常用符号地址表示。可整理ppt 对可位寻址的位地址寻址。包括片内对可位寻址的位地址寻址。包括片内RAMRAM的位地址空间和可位寻址的的位地址空间和可位寻址的SFRSFR(地址能被(地址能被8 8整整除)除)如:如:MOV CMOV C,20H20H ;位寻址;位寻址 MOV AMOV A,20H20H ;字节寻址;字节寻址 以上两条指令究竟是位寻址还是字节寻址,以上两条指令究竟是位寻址还是字节寻址,根据两操作数类型一致的原则,由另一个操作根据两操作数类型一致的原则,由另一个操作数决定。数决定。3.1.73.1.7 位寻址位寻址可整理ppt立即立即寻址寻址直接直接寻址寻址寄存器寄存器寻
13、址寻址寄存器寄存器间接寻址间接寻址变址变址寻址寻址相对相对寻址寻址位寻址位寻址片内片内RAMRAM低低128B128B单元单元工作寄存器工作寄存器组组R0R0R7R7特殊功特殊功能寄存能寄存器器SFRSFRA A、B B、DPTRDPTR、C C程序存储器程序存储器片外片外RAMRAM位地址空间位地址空间寻址方式与存储空间的对应关系寻址方式与存储空间的对应关系 可整理ppt dirRi Rn#dataAMOV A,Rn#data dir RiMOV dir,A Rn,Ri#data dir MOV Ri,A dir#data1.内部内部RAM、SFR之间的传送之间的传送MOV指令指令MOV R
14、n,A dir#data3.2 3.2 指令系统指令系统3.2.1 3.2.1 数据传送与交换指令数据传送与交换指令可整理ppt例例 R1=20HR1=20H,(,(20H20H)=55H=55H,MOV AMOV A,R1 R1 执行后,执行后,A=55HA=55H。例例 (40H40H)=30H=30H,MOV R7MOV R7,40H 40H 执行后,执行后,R7=30HR7=30H。例例 MOV R7MOV R7,40H 40H 执行后,执行后,R7=40HR7=40H。注意:注意:寄存器之间无传送;寄存器之间无传送;寄存器间址和寄存器之间无传送;寄存器间址和寄存器之间无传送;立即数不
15、能做目标地址;立即数不能做目标地址;可整理ppt Ri,A DPTR,A A,Ri A,DPTRMOVXMOVCA,A+PCA,A+DPTR2.外部存储器和外部存储器和A累加器之间的传送累加器之间的传送MOVXA 外部数据外部数据存储器存储器程序程序存储器存储器MOVC可整理ppt 利用利用 MOVX 实现片外数据存储器数据传送实现片外数据存储器数据传送 (2000H)(2100H)MOV DPTR,#2000HMOVX A,DPTRMOV DPTR,#2100HMOVX DPTR,A;DPTR=2000H;DPTR=2100H ;A X;(2100H)Xx片外数据存储器不能直接寻址。下列为非
16、法指令:片外数据存储器不能直接寻址。下列为非法指令:MOVX A,2000H MOVX 2100H,2000H 可整理ppt 利用利用Ri间址来实现将间址来实现将(2000H)(2100H)(2000H)(2100H)MOV P2,#20H;高位地址;高位地址 MOV R0,#00 ;低位地址;低位地址 MOVX A,R0;读片外;读片外RAM MOV P2,#21H;改变高位地址;改变高位地址 MOVX R0,A;写片外;写片外RAM可整理ppt 利用利用 MOVC 指令实现查表功能指令实现查表功能注:注:只能从程序存储器读取数据到只能从程序存储器读取数据到A累加器。累加器。只能使用变址间接
17、寻址方式只能使用变址间接寻址方式1)DPTR为基址寄存器为基址寄存器MOVC A,A+DPTR;A(A+DPTR)查表范围为查表范围为 64KB 程序存储器任意空间。程序存储器任意空间。2)PC为基址寄存器为基址寄存器MOVC A,A+PC;A(A+PC)常数表只能在查表指令后常数表只能在查表指令后 256B 范围内。范围内。可整理ppt例例 查表法求查表法求 Y=X2。设。设 X(0X15)在片内在片内 RAM 20H单单 元,要求将查表求元,要求将查表求 Y,存入片内,存入片内 RAM 21H单元单元1)用)用DPTR作基址寄存器作基址寄存器 ORG 0100HSQU:MOV DPTR,#
18、TAB;确定表首地址;确定表首地址 MOV A,20H ;取;取 X MOVC A,A+DPTR;查表求;查表求 Y=X2 MOV 21H,A ;保存;保存Y RET ;子程序结束;子程序结束 ;其它程序段;其它程序段 ORG 0200H ;常数表格首地址;常数表格首地址TAB:DB 00,01,04,09,225;平方表;平方表可整理ppt 指令地址指令地址 源程序源程序 ORG 0100H;程序起始地址;程序起始地址 0100HSQU:MOV A,20H;取;取X 0102H ADD A,#3;修正偏移量;修正偏移量 0104HMOVC A,A+PC;查表求;查表求Y=X2 0105H M
19、OV 21H,A;存结果;存结果 0107HRET ;子程序结束;子程序结束 0108HTAB:DB 00,01,04;平方表;平方表 010BHDB 09,225 思考题:思考题:当当0X255时,如何用查表法编程求时,如何用查表法编程求Y=X22)用)用PC作基址寄存器作基址寄存器可整理ppt 3.3.交换指令交换指令实现片内实现片内RAMRAM区的数据双向传送区的数据双向传送1 1)字节交换指令字节交换指令XCH AXCH A,Rn Rn ;ARnARn XCH A XCH A,Ri Ri;A(Ri)A(Ri)XCH A XCH A,dir dir;A(dir)A(dir)2 2)半字节
20、交换指令半字节交换指令XCHD AXCHD A,Ri Ri;A A0 03 3(Ri)(Ri)0 03 3 SWAP A SWAP A ;A A4 47 7A A0 03 3 dirRi RnA 4.堆栈操作指令堆栈操作指令 入栈指令:入栈指令:PUSH dir PUSH dir;SPSP+1SPSP+1,(SP)(dir)(SP)(dir)出栈指令:出栈指令:POP dir POP dir;(dir)(SP)(dir)(SP),SPSP-1SPSP-1 RiA74743030A74 30可整理ppt dirRi Rn#dataA dirRi Rn#dataAA,Rn,Ri#data dirA
21、DDADDCSUBBANLORLXRL加加进位加进位加借位减借位减与与或或异或异或1.以以A为目的操作数的算术、逻辑运算指令(为目的操作数的算术、逻辑运算指令(24条)条)3.2.2 3.2.2 算术运算和逻辑运算指令算术运算和逻辑运算指令可整理ppt2.以以dir为目的操作数逻辑运算指令(为目的操作数逻辑运算指令(6条)条)A#data dir与与 ANL或或 ORL异或异或 XRLdir,#dataA3.加加1、减、减1指令指令RiAdirRnDPTRINCRiAdirRnDEC可整理ppt 4.十进制调整指令十进制调整指令 DA A ;仅对存于;仅对存于A中的加法结果进行十进制调整中的加
22、法结果进行十进制调整 若需若需完成十进制减法运算,则应变减法运算为补完成十进制减法运算,则应变减法运算为补码的加法运算即可,其减数码的加法运算即可,其减数X的补码通过的补码通过(99-X)+1再再DA A后得到。后得到。原则:和低原则:和低4位大于位大于9或有半进位,则低或有半进位,则低4位加位加6 和高和高4位大于位大于9或有或有 进位,则高进位,则高4位加位加6例:例:(DATA)-(DATA+1)=(DATA+2)(DATA)-(DATA+1)=(DATA+2)Y-X=Y-X+100 -Y-X=Y-X+100 -有效位为有效位为2 2位十进制,模为位十进制,模为100100 =Y+(99
23、-X)+1 =Y+(99-X)+1可整理ppt5.乘、除法指令乘、除法指令MUL AB;ABBADIV AB;AB商在商在A中,余数在中,余数在B中中6.专对专对A的指令的指令CPL ACLR A;0 A;A AMOV A,#99H DA AMOV A,#99H DA ACLR C ADD A,DATACLR C ADD A,DATASUBB A,DATA+1 DA ASUBB A,DATA+1 DA AADD A,#1 MOV DATA+2,AADD A,#1 MOV DATA+2,A可整理pptCYRR ARL ARLC ARRC A移位指令(仅对移位指令(仅对 A)00101101A01
24、001011ACY11001011A000101101A1CY10010110A设设1CYCY可整理ppt 1.1.调用程序和返回类指令调用程序和返回类指令 1 1)长调用)长调用 LCALL addr16 LCALL addr16;addr16PCaddr16PC0 01515 指令功能同指令功能同80X8680X86中的中的CALLCALL,调用范围,调用范围64KB64KB全部空间,全部空间,指令的机器码为三字节。指令的机器码为三字节。2 2)短调用)短调用 ACALL addr11 ;addr11PC ACALL addr11 ;addr11PC0 01010 指令的功能同前,主要区别
25、为:指令的功能同前,主要区别为:addr11PCaddr11PC0 01010,而而PCPC11111515保保持持原原值值不不变变,故故其其调调用用范范围围为为2KB2KB,即即子子程程序序入入口口距距当当前前PCPC不不得得超超过过2KB2KB地地址址范范围围。本指令的机器码为二字节。本指令的机器码为二字节。3.2.3 3.2.3 控制转移类指令控制转移类指令可整理ppt3 3)子程序返回指令)子程序返回指令(从栈顶弹出断点到(从栈顶弹出断点到PCPC)RET RET ;从调用子程序返回。;从调用子程序返回。RETI RETI;从中断服务程序返回并恢复;从中断服务程序返回并恢复 中断优先级
26、状态触发器。中断优先级状态触发器。2.2.转移指令转移指令 1 1)无条件转移指令)无条件转移指令(1 1)短转移)短转移 AJMP addr11 AJMP addr11 ;addr11PC0addr11PC01010 转移范围:转移范围:2KB 2KB 机器码为机器码为2 2字节字节可整理ppt(2 2)长转移)长转移 LJMP addr16 LJMP addr16 ;addr16PC0addr16PC01515 转移范围:转移范围:64KB 64KB 机器码为机器码为3 3字节。字节。(3 3)间接转移)间接转移 JMP A+DPTR JMP A+DPTR ;A+DPTRPC A+DPTR
27、PC 分分析析下下列列程程序序段段,说说出出当当A A分分别别为为0 0和和2 2时时,程程序序转转置置何处?该程序段的功能是什么?何处?该程序段的功能是什么?MOV DPTR MOV DPTR,#TABLE#TABLE JMP A+DPTR JMP A+DPTR TABLE TABLE:AJMP PROC0 AJMP PROC0 AJMP PROC1 AJMP PROC1 AJMP PROC2 AJMP PROC2 AJMP PROC3 AJMP PROC3 可整理ppt (4 4)无条件相对转移)无条件相对转移 SJMP rel SJMP rel ;PC+relPCPC+relPC,即即A
28、sAs2 2relPCrelPC,机器码为,机器码为2 2字节字节 As As为源地址(本指令的首地址),执行本指令时当为源地址(本指令的首地址),执行本指令时当前前PCPCAs+2As+2,rel rel 为转移的偏移量,转移可以向前转为转移的偏移量,转移可以向前转(目的地址小于源地址),也可以向后转(目的地址大(目的地址小于源地址),也可以向后转(目的地址大于源地址),因此偏移量于源地址),因此偏移量rel rel 是是 1 1 字节有符号数,用字节有符号数,用补码表示(补码表示(128128127127),所以指令转移范围在离源),所以指令转移范围在离源地址地址AsAs的的1261261
29、29129字节之间。字节之间。可整理ppt 2 2)条件转移指令)条件转移指令(1 1)累加器为零(非零)转移)累加器为零(非零)转移 JZ/JNZ rel JZ/JNZ rel ;A=0/(A0)A=0/(A0)则转移,否则顺序则转移,否则顺序 执行程序执行程序(2 2)减)减 1 1 不等于零转移不等于零转移 DJNZ Rn/dir,rel DJNZ Rn/dir,rel 功能为:功能为:Rn(dir)-1Rn(dir)Rn(dir)-1Rn(dir)相减结果相减结果00转,转,否则顺序执行程序否则顺序执行程序可整理ppt (3 3)比较转移指令)比较转移指令 CJNE A,dir,rel
30、 CJNE A,dir,rel CJNE A,#data,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE Rn,#data,rel CJNE Ri,#data,rel CJNE Ri,#data,rel操作数操作数1 1不等于操作数不等于操作数2 2则转,否则顺序执行。则转,否则顺序执行。1例:例:Y=-1XZX Z Z X YDATA+2 DATA+1DATA MOV DATA+2 MOV DATA+2,#0FFH#0FFH MOV A MOV A,DATADATA CJNE A CJNE A,DATA+1DATA+1,NEXTNEXTNEXT:JC
31、NEXT1NEXT:JC NEXT1 MOV DATA+2 MOV DATA+2,#1#1NEXT1:RETNEXT1:RET dirRi Rn#dataA可整理ppt1.1.位传送指令位传送指令 MOV C MOV C,bit ;bit ;(bitbit)CYCY MOV bit MOV bit,C C ;CYbitCYbit2.2.位状态控制指令位状态控制指令 CLR C CLR C ;0CY0CY CLR bit CLR bit ;0bit0bit SETB C SETB C ;1CY1CY SETB bit SETB bit ;1bit1bit CPL C CPL C ;CYCYCYC
32、Y CPL bit CPL bit ;bitbitbitbit3.2.4 3.2.4 位操作指令位操作指令可整理ppt3.3.位逻辑运算指令位逻辑运算指令 ANL C ANL C,bit bit ;CYCY(bitbit)CYCY ANL C ANL C,/bit /bit ;CYCY(bitbit)CYCY ORL C ORL C,bit bit ;CYCY(bitbit)CYCY ORL C ORL C,/bit /bit ;CYCY(bitbit)CYCY可整理ppt 4.4.位转移位转移 位转移根据位的值决定转移,均为相对转移指令。位转移根据位的值决定转移,均为相对转移指令。JC re
33、l ;CY=1JC rel ;CY=1,则转移,否则顺序执行程序,则转移,否则顺序执行程序JNC rel ;CY=0,JNC rel ;CY=0,则转移,否则顺序执行程序则转移,否则顺序执行程序JB bitJB bit,rel ;(bit)=1,rel ;(bit)=1,则转移,否则顺序执行程序则转移,否则顺序执行程序JNB bitJNB bit,rel ;(bit)=0,rel ;(bit)=0,则转移,否则顺序执行程序则转移,否则顺序执行程序JBC bitJBC bit,rel;(bit)=1,rel;(bit)=1,则转移,且该位清零,否则则转移,且该位清零,否则 顺序执行程序顺序执行程
34、序可整理ppt1.1.定义:定义:汇编控制指令,没有指令代码,不能被汇编控制指令,没有指令代码,不能被CPUCPU执行,只用于执行,只用于汇编过程,为汇编程序提供汇编信息。汇编过程,为汇编程序提供汇编信息。2.2.常用伪指令常用伪指令(1 1)ORGORGORGORG是设置起始地址伪指令,其格式是:是设置起始地址伪指令,其格式是:ORGORG1616位地址或标号位地址或标号(2 2)ENDENDENDEND是结束汇编伪指令,其格式是:是结束汇编伪指令,其格式是:ENDEND(3 3)DBDBDBDB是定义字节伪指令,其格式是:是定义字节伪指令,其格式是:标号:标号:DB DB 字节型数表字节型
35、数表(4 4)DWDWDWDW是定义字伪指令,其格式是:是定义字伪指令,其格式是:标号:标号:DW DW 字型数表字型数表3.3 3.3 伪指令伪指令可整理ppt(5 5)DSDSDSDS是定义存储空间伪指令,其格式是:是定义存储空间伪指令,其格式是:标号:标号:DS DS 表达式表达式(6 6)EQUEQUEQUEQU是赋值伪指令,其格式是:是赋值伪指令,其格式是:字符名称字符名称EQUEQU数据或汇编符号数据或汇编符号(7 7)DATADATADATADATA是数据地址赋值伪指令,其格式是:是数据地址赋值伪指令,其格式是:字符名称字符名称DATADATA表达式表达式(8 8)BITBITB
36、ITBIT是位地址赋值伪指令,其格式是:是位地址赋值伪指令,其格式是:字符名称字符名称BITBIT位地址位地址 详见表详见表3.3 MCS-513.3 MCS-51中的伪指令中的伪指令可整理ppt进制间的转换进制间的转换1.1.十进制十进制二进制(整数)二进制(整数)任何十进制数有:任何十进制数有:dn-dn-1 11010n-n-1 1 dn-dn-2 21010n-n-2 2 d d1 110101 1 d d0 010100 0 (dn-(dn-1 110 10 dn-dn-2 2)1010 d1)10d1)10 d d0 0规律:规律:didi1010 di-di-1 (i=1,2,n
37、-1)1 (i=1,2,n-1)按二进制运算规则运算则得二进制数按二进制运算规则运算则得二进制数3.4 3.4 程序设计举例程序设计举例可整理ppt例:将位十进制数例:将位十进制数D D3 3D D2 2D D1 1D D0 0转换成二进制数,设位转换成二进制数,设位 十进制数十进制数D D3 3D D2 2D D1 1D D0 0按分离按分离BCDBCD码形式存放,要求结码形式存放,要求结 果的高位存放在果的高位存放在R3R3中,结果的低位存放在中,结果的低位存放在R2R2中。中。方法:方法:D3D2D1D0=D3D2D1D0=(0 010+10+D3D3)10+)10+D2D2)10)10
38、D1D1)10+D0)10+D0结果:结果:1616位二进制数位二进制数0D0D3 30D0D2 20D0D1 10D0D0 0DATADATA可整理ppt流程:流程:设置指针指向设置指针指向DATADATA计数器初始计数器初始(R7=3R7=3)DiDi初始初始结果单元结果单元结果单元内容结果单元内容10+D10+Di-1 i-1 结果单元结果单元修改指针修改指针计数器计数器-1-1计数器计数器计数器计数器=0=0?返返 回回Y YN N可整理pptR R3 3R R2 2R2R20AH0AHR3R30AH0AH0 0A A0 00 00 0R R3 3R R2 2MOV A,R2MOV B
39、,#0AHMUL ABMOV R2,AMOV A,BXCH A,R3MOV B,#0AHMUL ABADDA,R3MOV R3,ARETMUL10:结果单元乘结果单元乘1010子程序子程序由于由于4 4位位1010进制(进制(99999999)小于)小于1616位位2 2进制(进制(6553565535),所以转),所以转换结果不会大于换结果不会大于1616位位可整理pptMOV R0,#DATAMOV R7,#03HMOV A,R0MOV R2,AMOV R3,#0ACALL MUL10INC R0MOV A,R0 ADD A,R2MOV R2,AMOV A,R3ADDC A,#0MOV R
40、3,ADJNZ R7,BCDB1RETBCDB:BCDB1:0D0D3 30D0D2 20D0D1 10D0D0 0DATADATA可整理ppt2.2.十进制十进制二进制(小数)二进制(小数)1010进制进制乘乘2 2取整(取溢出)取整(取溢出)例:例:0.625=0.625=2 2-1-1+2+2-3-3 =0.10100000B0.10100000Ba.a.小数点位数由乘小数点位数由乘2 2次数定,结果单元字节数次数定,结果单元字节数 也由此定也由此定b.b.第一次的整数权最高第一次的整数权最高=2=2-1-1c.c.乘乘2 2是是1010进制的乘进制的乘2 2,自身相加再,自身相加再DA
41、 ADA A调整调整D D =b=b-1-122-1-1+b+b-2-222-2-2b b-m-m22-m-m 可整理ppt例:设入口时例:设入口时1010进制数在进制数在A A中,要求结果放在中,要求结果放在R2R2中中(8(8位二位二进制小数)进制小数)结果单元清结果单元清0 0次数计数器初始次数计数器初始十进制小数单元乘十进制小数单元乘2 2整数移入结果单元整数移入结果单元计数器计数器-1-1计数器计数器计数器计数器=0=0?返返 回回Y YN NBCDBPBCDBP:MOV MOV R2 R2,#0#0 MOV MOV R6 R6,#8#8BCDBP1BCDBP1:ADD AADD A
42、,ACCACC DA A DA A XCH XCH A A,R2R2 RLC RLC A A XCH XCH A A,R2R2 DJNZ R6 DJNZ R6,BCDBP1BCDBP1 RET RET;结果单元清;结果单元清0 0;次数初始;次数初始;102102;将;将整数整数移入结果单元移入结果单元溢出在进位位中溢出在进位位中可整理ppt3.3.二进制二进制十进制(整数)十进制(整数)按权展开按权展开以以8 8位为例:位为例:b b7 7b b6 6b b5 5b b4 4b b3 3b b2 2b b1 1b b0 0=b=b7 7227 7+b+b6 6226 6+b+b0 0220
43、0 =(02+b =(02+b7 7)2+b)2+b6 6)2+)2+b0)2+)2+b0将二进制数逐步左移得:将二进制数逐步左移得:b b7 7,b b6 6,b b5 5,b b4 4,b b3 3,b b2 2,b b1 1,b b0 0结果单元字节数结果单元字节数 :二进制:二进制1 1字节字节(255)(255)十进制十进制2 2字节字节 二进制二进制2 2字节字节(65535)(65535)十进制十进制3 3字节字节注:注:这里的乘这里的乘2 2为为1010进制乘进制乘2 2按十进制运算规则按十进制运算规则运算则得十进制数运算则得十进制数可整理ppt结果单元清零结果单元清零次数计数
44、器初始次数计数器初始清清CyCy二进制数左移一位到二进制数左移一位到CyCy结果单元结果单元2+Cy 2+Cy 计数器计数器=0=0?返返 回回Y YN N计数器计数器-1-1例:被转换数在例:被转换数在R3R3中,结果在中,结果在R4R5R4R5中中IBTDIBTD:CLR CLR A A MOV MOV R4 R4,A A MOV MOV R5 R5,A A MOV MOV R7 R7,#8#8IBTL2IBTL2:CLR CLR C C MOV A,R3 MOV A,R3 RLC A RLC A MOV R3,A MOV R3,A MOV A,R5 MOV A,R5 ADDC A,R5
45、ADDC A,R5 DA A DA A MOV R5,A MOV R5,A MOV A,R4 MOV A,R4 ADDC A,R4 ADDC A,R4 DA DA A A MOV R4,A MOV R4,A DJNZ R7 DJNZ R7,IBTL2IBTL2 RET RET可整理ppt4.4.二进制二进制十进制(小数)十进制(小数)二进制二进制乘乘1010取整(取溢出)取整(取溢出)0.75D 0.75D 0.11000000B0.11000000B 1010B1010B111.10000000B111.10000000B 1010B1010B101.00000000B101.0000000
46、0B例:例:8 8位二进制小数位二进制小数4 4位十进制小数位十进制小数结果位数可自定结果位数可自定例例:设设8 8位二进制小数在位二进制小数在A A中中,结果放在以结果放在以DATADATA为首地址的为首地址的4 4个单元个单元中中,存放格式如下存放格式如下,试编程实现试编程实现.0D0D-1-10D0D-2-20D0D-3-30D0D-4-4DATADATAB Bd d-1-11010-1-1 d d-2-21010-2-2 d d-m-m1010-m-m可整理ppt指针指针R1R1指向结果最高字节指向结果最高字节DATADATA位计数器初始位计数器初始二进制小数乘二进制小数乘1010取溢
47、出存入结果单元取溢出存入结果单元修改结果指针修改结果指针已经已经4 4位?位?返返 回回Y YN NBBCDPBBCDP:MOV MOV R1 R1,#DATA#DATA MOV MOV R7 R7,#4#4BBCDP1BBCDP1:MOV BMOV B,#0AH#0AH MUL AB MUL AB MOV MOV R1R1,B B INC INC R1 R1 DJNZ R7 DJNZ R7,BBCDP1BBCDP1 RET RET可整理ppt(1)51系列单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分。(2)指令是程序设计的基础,应重点掌握传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令,掌握指令的功能,操作的对象和结果,对标志位的影响,应要求熟记。小小 结结可整理ppt