版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 MCS-51指令系统,3-1 指令格式 3-2 寻址方式 3-3 指令类型、字节和周期 3-4 数据传送指令 3-5 算术运算指令 3-6 逻辑运算指令 3-7 控制转移指令,第三章 MCS-51指令系统,3-1 指令格式 一、 汇编语言指令格式 标号: 操作码 操作数1,操作数2;注释 例: LOOP: MOV A,#40H ;40H - A 标号: 指令的符号地址。 18个字母或数字,并以冒号“:”结尾。 操作码:指明指令功能。25个字母。,MOV 传送 ANL 逻辑与 MUL 乘法 RR 右循环 SJMP 短跳转 RET 子程序返回,例:,第三章 MCS-51指令系统,3-1 指
2、令格式 一、 汇编语言指令格式 标号: 操作码 操作数1,操作数2;注释 例: LOOP: MOV A,#40H ;40H - A,操作数:指令操作对象数据、地址、寄存器名及约定符号。 注释行:说明指令在程序中的作用。 操作码和操作数是指令主体。,第三章 MCS-51指令系统,二、 伪指令 汇编时不产生机器码,仅供汇编识别控制。 1.定位伪指令 格式: ORG m 例3-3 ORG 0000H START: SJMP MAIN ORG 0030H MAIN: MOV SP,# 30H 以START开始的程序汇编为机器码后从0000H存贮单元开始连续存放。 2.结束伪指令 格式: END,3-1
3、 指令格式,第三章 MCS-51指令系统,3.定义字节伪指令 格式: DB X1,X2,Xn 例3-4 ORG 7F00H DB 01110010B,16H,45,8,A 汇编后存贮单元内容为: (7F00H)=72H (7F01H)=16H (7F02H)=2DH (7F03H)=38H (7F04H)=40H 4.定义字伪指令 格式: DW Y1,Y2,Yn,3-1 指令格式,二、 伪指令 汇编时不产生机器码,仅供汇编识别控制。,第三章 MCS-51指令系统,5定义空间伪指令:DS表达式 例3-6 ORG 0F00H DS10H DB20H,40H 汇编后,从0F00H开始,保留16个字节
4、的内存单元, 然后从0F10H开始,按照下一条DB伪指令给内存单元赋值, 得(0F10H)=20H,(0F11H)=40H。,3-1 指令格式,二、 伪指令 汇编时不产生机器码,仅供汇编识别控制。,第三章 MCS-51指令系统,例3-7 ORG 8500H AA EQU R1 A10 EQU 10H DELAY EQU 87E6H MOV R0, A10 ;R0(10H) MOV A, AA ;A(R1) LCALL DELAY;调用起始地址为87E6H的子程序 END EQU赋值后,AA为寄存器R1,A10为8位直接地址10H, DELAY为16位地址87E6H。,3-1 指令格式,二、 伪
5、指令 汇编时不产生机器码,仅供汇编识别控制。,6等值伪指令:EQU数据或汇编符,第三章 MCS-51指令系统,7数据地址赋值伪指令 格式: DATA 表达式 8位地址赋值伪指令 格式: BIT 位地址,3-1 指令格式,二、 伪指令 汇编时不产生机器码,仅供汇编识别控制。,第三章 MCS-51指令系统,一、寄存器寻址方式 指令操作数为寄存器名,数据在寄存器中。,3-2 指令寻址方式,寻找操作数的方法叫寻址方式。,第三章 MCS-51指令系统,例: MOV A,R0;AR0 设指令执行前 A=20H,R0=40H, 执行指令后,A= ?,R0= ?,40H,40H,第三章 MCS-51指令系统,
6、二、立即寻址方式 指令中给出实际操作数据(立即数), 一般用于为寄存器或存储器赋常数初值。 例: 8位立即数: MOV A,#40H ;A40H 16位立即数: MOV DPTR,#2100H ;DPTR2100H,第三章 MCS-51指令系统,三、直接寻址方式 指令操作数是存储器单元地址,数据在存储器单元中。 MOV A,40H;A(40H) 例:设存储器两个单元的内容如图所示, 执行指令 MOV A,40H 后 A = 直接寻址方式对数据操作时,地址是固定值,而地址所指 定的单元内容为变量形式。,?,56H,第三章 MCS-51指令系统,第三章 MCS-51指令系统,四、寄存器间接寻址方式
7、 指令的操作数为寄存器名,寄存器中为数据地址。 存放地址的寄存器称为间址寄存器或数据指针。 例: MOV A,R0;A(R0) 设指令执行前 A=20H,R0=40H,地址为 40H存储器单元内容如图所示。执行指令后, A= ? ,R0 = ? , (40H)= ?,34H,40H,40H,第三章 MCS-51指令系统,第三章 MCS-51指令系统,五、基寄存器加变址寄存器间接寻址 它是以16位的程序计数器PC或数据指针DPTR作为基寄存器,以8位的累加器A作为变址寄存器。将两者的内容相加形成16位的地址,该地址即为操作数的地址。,例:MOVC A,A+DPTR;A((A)+(DPTR)),第
8、三章 MCS-51指令系统,第三章 MCS-51指令系统,六、相对寻址方式 以PC的内容作为基地址,加上偏移量,所得结果送PC寄存器 作为转移地址。偏移量在128 +127之间。 例:SJMP 80H;短跳转,第三章 MCS-51指令系统,指令给出位地址。一位数据在存储器位寻址区。 例: MOV C,40H;Cy(位地址40H) 设指令执行前 Cy=1,位地址40H存储器单元如图, 执行指令后, Cy= ?,0,七.位寻址方式,第三章 MCS-51指令系统,第三章 MCS-51指令系统,MCS-51指令系统中共有111条指令,按功能可分为以下四大类: 数据传送类 算术操作类 逻辑操作类 控制转
9、移类,3-3 指令的类型、字节和周期,第三章 MCS-51指令系统,3-4 数据传送指令 MCS51的数据传送操作可以在累加器、工作寄存器、内部RAM、FSR、外部数据存储器及程序存储器之间进行。 3-4-1 一般传送指令(6) MOV ,第三章 MCS-51指令系统,1.内部8位数据传送指令:片内数据存储器数据与寄存器传送。 指令格式: MOV 目的操作数,源操作数 可用寻址方式:立即寻址、直接寻址、寄存器寻址等。,MOV A,Rn ;ARn,Rn=R0R7 MOV A,direct ;A(direct),MOV A,Ri ;A(Ri),Ri=R0、R1MOV A,#data ;AdataM
10、OV Rn,direct ;Rn(direct)MOV Ri,direct ;(Ri)(direct)MOV direct1,direct2 ;(direct1)(direct2)MOV DPTR,#d1d2 ;DPTRd1d2,第三章 MCS-51指令系统,第三章 MCS-51指令系统,例:顺序执行下列指令序列,求每一步执行结果。,MOV A,#30H MOV 4FH,A MOV R0,#20H MOV R0,4FH MOV 21H,20H,;A= 30H ;(4FH)= 30H ;R0= 20H ;(20H)= 30H ;(21H)= 30H,第三章 MCS-51指令系统,说明: 1. 一
11、条指令中不能同时出现两个工作寄存器:非法指令:MOV R1,R2 MOV R2,R0 2. 间址寄存器()只能使用 R0、R1。 非法指令: MOV A,R2 3. SFR区只能直接寻址,不能用寄存器间接寻址。非法指令: MOV R0,#80H MOV A,R0 (以上指令的作用是将8052的内部RAM80H内容送A),第三章 MCS-51指令系统,2. 位变量传送指令 MOV C, bit ;c(bit) MOV bit , C ; bit (C) 例:00H位的内容送P1.0输出的程序 MOV C , 00H ;00H位内容,即20H.0先送Cy MOV P1.0 , C ;Cy内容再送P
12、1.0输出,第三章 MCS-51指令系统,3.16位数据传送指令 MOV DPTR , #data16 ;DPTR data16,3B MCS-51单片机指令系统中唯一的一个16位数据传送指令。DPH与DPL。,第三章 MCS-51指令系统,4. 累加器A与外部RAM的传送指令 MOVX A, Ri ;A (Ri) MOVX Ri ,A ;(Ri) A MOVX A, DPTR ; A (DPTR) MOVX DPTR , A ;(DPTR) (A) 这些指令的功能是在累加器A与外部RAM之间传送一个字节的数据。采用间接寻址的方式访问外部RAM。,第三章 MCS-51指令系统,例:实现片外数据
13、存储器数据传送 (2000H) (2100H)。,MOV DPTR,#2000H MOVX A,DPTR MOV DPTR,#2100H MOVX DPTR,A,; DPTR= 2000H ; A= X ; DPTR= 2100H ;(2100H)= X,片外数据存储器不能直接寻址。 下列为非法指令: MOVX A,2000H MOVX 2100H,2000H,第三章 MCS-51指令系统,5.查表指令 实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式。 多用于查常数表程序,可直接求取常数表中的函数值。 1DPTR为基址寄存器 MOVCA,A+DPTR ;A(A+DPTR) 查表范
14、围为 64KB 程序存储器任意空间,称为远程查表指令 。 2. PC为基址寄存器 MOVCA,A+PC;A(A+PC) 常数表只能在查表指令后256B范围内。 (PC内容为下一条指令的起始地址。),第三章 MCS-51指令系统,例:查表法求Y=X2。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。 1)ORG 1000H SQU:MOV DPTR,#TAB ;确定表首地址(基地址) MOV A,20H ;取X(偏移量) MOVC A,A+DPTR;查表求Y=X2 MOV 21H,A ;保存Y RET ;子程序结束 ;其它程序段 ORG 3000H ;常数表
15、格首地址 TAB:DB 00,01,04,09,225;平方表,第三章 MCS-51指令系统,6.堆栈操作指令 入栈指令:PUSH n ;SPSP+1,(SP)(n) 出栈指令:POP n ;(n)(SP),SPSP-1,例:设(SP)70H,(ACC)=50H,(B)60H,执行指令: PUSH ACC ;SPSP+1, 71H (ACC) PUSH B ;SPSP+1, 72H (B),第三章 MCS-51指令系统,3-4-2 累加器专用数据交换指令 实现累加器A的内容和源操作数内容呼唤。,1. 字节交换指令 XCH A,Rn ;A Rn XCH A,Ri;A (Ri) XCH A,dir
16、ect ;A (direct),例:设A= 29H,执行指令 XCH A,2AH后,A= ?(2AH)= ?,38H,29H,第三章 MCS-51指令系统,2. 半字节交换指令 XCHD A,Ri ;A03 (Ri)03 SWAP A ;A47 A03,例:将片内RAM 2AH和2BH单元中的BCD码转换成压缩式BCD 码存入20H单元。,MOV A,#0 MOV R0,#2AH MOV R1,#2BH XCHD A,R0 SWAP A XCHD A,R1 XCH A,20H,第三章 MCS-51指令系统,与数据传送指令不同,多数算术运算指令会影响标志位的状态,即CPU执行算术运算指令后,根据
17、数据操作情况自动设置标志位的状态。 状态标志 MCS-51 的程序状态字寄存器 PSW 为标志寄存器。 其格式如下:,3-5算术运算指令,第三章 MCS-51指令系统,标志位(自动设置状态) 1)Cy:进位标志位 保存运算后最高位的进位/借位状态,当有进位/借位,Cy=1,否则Cy=0。 2)AC:辅助进位标志位 保存低半字节的进位/借位状态,当D3产生进位/借位,AC=1,否则AC=0。用于十进制调整。 3)OV:溢出标志位 OV=Cy7Cy6,补码运算产生溢出OV=1,否则OV=0。 4)P:奇偶标志位 反映累加器A中数据的奇偶性。当1的个数为奇数,P=1,否则P=0。,第三章 MCS-5
18、1指令系统,2用户选择位(编程设置状态),1)F0:用户自定义标志位。2)RS1、RS0: 工作寄存器区选择位。复位时,PSW=00H,例:复位后,设置使用工作寄存 器3区,其余标志位不变。,第三章 MCS-51指令系统,3-5-1 加减指令完成片内 RAM 和 A 中数据的加减运算。 1.加法指令 1)不带进位加法:ADD A,源操作数 ADD A,Rn ADD A,direct ADD A,Ri ADD A,#data 影响Cy、OV、AC、P,第三章 MCS-51指令系统,例:A=3BH,PSW=0,执行指令 ADD A,#3BH 求:A=76H ,Cy= 0 ,OV= 0 ,AC= 1
19、 ,P= 1 , PSW=,01000001= 41H,0011 1011 + 0011 1011 0111 0110,第三章 MCS-51指令系统,2)带进位加法: ADDC A,源操作数 ADDC A,Rn ADDC A,direct ADDC A,Ri ADDC A,#data 影响Cy、OV、AC、P,例:A= 9AH,R2= E3H,PSW= 0,执行指令 ADDC A,R2 后求: A= 7DH ,Cy= 1 ,OV= 1,AC= 0,P= 0, PSW=,10000100 = 84H,1001 1010 1110 0011 + 0 1 0111 1101,第三章 MCS-51指令
20、系统,带进位加法指令ADDC用于多字节运算 例:设双字节数 X 存在片内RAM 41H、40H单元,Y存在42H、43H单元,编程求 Z=X+Y,并存入片内RAM单元44H、45H、46H。,ADDS:CLR C MOV A,40H ADD A,42H MOV 44H,A MOV A,41H ADDC A,43H MOV 45H,A MOV A,#0 ADDC A,#0 MOV 46H,A RET,;取被加数低字节 ;加上加数低字节 ;保存和的低字节 ;取被加数高字节 ;加上加数高字节 ;保存和的高字节 ;求高字节进位 ;子程序结束,第三章 MCS-51指令系统,2减法指令 SUBB A,源操
21、作数;带借位减法指令 SUBB A,Rn SUBB A,direct SUBB A,Ri SUBB A,#data 影响:Cy、OV、AC、P,第三章 MCS-51指令系统,例3-36设(A)=0C9H,(R0)=60H,(60H)=54H,Cy=1,执行指令:SUBB A,R0,结果为 (A)=74H 标志位为Cy=0,0V=1,AC=0,P=0,01110 100 借位 1100 1001 (A) 0101 0100 (R0) - 1 Cy 0111 0100,第三章 MCS-51指令系统,3)BCD调整指令: DAA; 对 A 中加法结果进行调整 在加法过程中低4位向高4位有进位或累加器
22、A中低4位大于9, 则累加器A作加6调整;若在加法过程中最高位有进位或累加 器A中高4位大于9,则累加器A作加60H调整 (即高4位作加6调整)。 十进制加法指令: ADD A,源操作数 DA A 带进位十进制加法指令: ADDC A,源操作数 DA A,第三章 MCS-51指令系统,例3-39:编制8559的BCD加法程序,并对其工作过程进行分析。 解:相应BCD加法程序为: MOV A,#85H;A85 ADD A,#59H;A85+59= 0DEH DA A ;A44,Cy=1,第三章 MCS-51指令系统,二进制加法和进制调整过程为: 85 1000 0101 (A) +) 59 01
23、01 1001 data 144 (0) 1101 1110 110;低4位9,加6调整 1110 0100 110 ;高4位9,加60H调整 (1) 0100 0100 运算结果为(A)=44H,Cy=1 即十进制的144。,第三章 MCS-51指令系统,3. 增量、减量指令 增量指令:INC 单操作数 INC A INC Rn INC direct INC Ri INC DPTR 除对A操作影响标志位P以外,不影响标志位状态。,第三章 MCS-51指令系统,减量指令:DEC 单操作数 DEC A DEC direct DEC Ri DEC Rn 除对A操作影响标志位P以外,不影响标志位状态
24、。 注意:没有指令 DEC DPTR 可用指令 DEC DPL 代替,第三章 MCS-51指令系统,3-5-2.乘除指令 MUL AB;BAAB,Cy0, ;当积高字节B=0,OV0;B0,则OV1 DIV AB ;AB,A商,B余数,Cy0, ;当除数B=0,OV1;B0,则OV0 例: (A)= 80H, (B)= 21H,执行指令 MUL AB 后, 求:(A)= ,(B)= ,Cy= ,OV= ,P= ? 解: 80 21 = 1680 例:(A)= 0B6H,(B)= 0FH,执行指令 DIV AB后 求:A= ,B= ,Cy= ,OV= ,P= 解: 182 15 = 122,第三
25、章 MCS-51指令系统,3-6 逻辑运算指令 一、单操作数指令(A累加器为操作数) 1. A清0指令: CLR A ;A0 2. A取反指令:CPL A ;A/A 3. 循环移位指令: 1)8位循环指令: RL A ;A循环左移一位 RR A ;A循环右移一位 2)9位循环指令: RLC A;带Cy循环左移一位 RRC A;带Cy循环右移一位,第三章 MCS-51指令系统,例:设 A= 11000101,Cy= 0,分别执行下列单条指令: CPL A ;A= ,Cy= RL A ;A= ,Cy= RLC A ;A= ,Cy=,00111010 0,10001011 0,10001010 1,
26、第三章 MCS-51指令系统,用9位循环指令实现多字节移位 例:编程将寄存器 R6R5 中的双字节数X左移一位。,CLR C MOV A,R5 RLC A MOV R5,A MOV A,R6 RLC A MOV R6,A,;Cy=0, 设 R6= 55H ,R5= AAH ;R6=01010101,R5=10101010,Cy=0 ;R6=01010101,R5=01010100,Cy=1 ;R6=10101011,R5=01010100,Cy=0,第三章 MCS-51指令系统,二、双操作数逻辑运算指令(对位逻辑运算):ANL、ORL、XRL 例 A=01B,表示随机状态,为1或0,执行下述一
27、组指令执行后A的值如何? ANL A,#0E7H;将累加器A的内容D4、D3清0 ORL A,#03H;将累加器A的内容D1、D0置1XRL A,#0C0H;将累加器A的内容D7、D6取反 解 :执行上述指令后,A=100011B。,第三章 MCS-51指令系统,3-6 位操作指令一、位传送 对片内RAM中位寻址区操作。位累加器Cy和位地址b。 MOV C,b ;Cy(b) MOV b,C ;(b)Cy 例:将位地址20H的一位数传送到位地址30H中: MOV C,20H MOV 30H,C 二位清0、置1、取反:CLR、SETB、CPL: CLR C ;Cy0, CLR 40H;(位地址40
28、H) 0,第三章 MCS-51指令系统,三逻辑运算:ANL、ORL: ANL C,40H ;CC(40H)ANL C,/40H ;CC/(40H) 例:设 Cy=0,(位地址40H)=1,执行指令 ANL C,/40H 后, Cy= ? , (位地址40H)= ? 位地址表示法: 位地址 40H,位寄存器 F0,字节加位 ACC.0,0,1,第三章 MCS-51指令系统,3-7 控制转移指令 转移指令通过改写PC的当前值,从而改变CPU执行程序的顺序,使程序发生跳转。 按转移条件分类: 1)无条件转移: 执行无条件转移指令,程序无条件转移到指定处。 2)条件转移: 指令中给出转移条件,执行指令
29、时,先测试条件, 若满足条件,则程序发生转移,否则,仍顺序执 行程序。,第三章 MCS-51指令系统,按转移方式分类: 1)绝对转移:指令给出转移目的的绝对地址 nn,执行指令后, PCnn。 例: 地址源程序 1000H LJMP 2000H 1003H 2000H ;转移目的指令 2)相对转移:指令给出转移目的与转移指令的相对偏移量e,执行指令后,PCPC + e 。,例:地址 源程序 1000H SJMP 02 1004H ;转移目的指令,第三章 MCS-51指令系统,一.无条件转移指令 1.长转移指令:LJMP addr16 ;PC addr16 指令转移范围:64KB,无条件转移,不
30、影响任何标志位 2.绝对转移指令: AJMP addr11;PCPC+2;PC100pn100 ;PC1511不变 指令转移范围:2KB 转移时要求转移前后保持 PC1511不变。,第三章 MCS-51指令系统,3.短转移指令: SJMP e ;PCPC+2,PCPC+e 相对偏移量 e为8位补码。 指令转移范围:前128后127字节 相对偏移量 e 的计算式: e = 目的指令地址 -(转移指令地址+指令字节数) = 目的地址 - PC当前值 编程时,用标号代替转移目的地址,转移指令的操作数交给汇编程序计算。LJMP NEXT AJMP NEXT SJMP NEXT NEXT:,第三章 MC
31、S-51指令系统,例:计算转移指令的相对偏移量 e ,并判断是否超出转移范围。 指令地址源程序2130H SJMP NEXT 2150HNEXT:MOV A,R2 相对偏移量 = 2150H -(2130H+2)= 001EH, 只取低8位:e = 1EH,第三章 MCS-51指令系统,4间接转移指令(多分支转移指令) JMP A+DPTR. ;PCA+DPTR 指令转移范围64KB。,应用:处理功能键。 要求不同功能键执行不同程序段。设每个功能键对应一个键值 X(0XFH)。 设X已存入片内RAM的40H单元中。 若X=0,则执行程序段FUNC0 若X=1,则执行程序段FUNC1 。,KEY
32、: MOV DPTR,#KTAB MOV A,40H ADD A,40H JMP A+DPTR KTAB: AJMP FUNC0 AJMP FUNC1 FUNC0: FUNC1: ,第三章 MCS-51指令系统,二条件转移指令 条件转移指令形成程序的分支,赋予计算机判断决策能力,转移条件:1)标志位的状态 2)位地址中的状态 1.判零转移指令 JZ e ;PCPC+2, ;若A=00H,PCPC+e(转移), ;若A00H,PC不变(不转移) JNZ e ;PCPC+2,若A00H, ;PCPC+ e(转移) ;若A=00H,PC不变(不转移) 2.判Cy转移指令 JC e ;Cy=1则转移,Cy=0不转移 JNC e ;Cy=0则转移,Cy=1不转移,第三章 MCS-51指令系统,3.判位转移指令 JB b,e ;(b)=1转移,否则不转移 JNB b,e ;(b)=0转移,否则不转移 4. 判位清0转移指令: JBC b,e ;(b)=1转移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编版2025-2026学年语文四年级第一学期期末质量检测练习卷(含答案)
- 湖南省岳阳市汨罗市2025-2026学年八年级上学期1月期末生物试题(无答案)
- 河南省驻马店市泌阳县2025-2026学年八年级上学期1月期末考试历史试卷答案
- 2025-2026学年一年级(上)期末游戏化测试语文试卷(附参考答案)
- 五年级题目及答案
- 文件筐测试题及答案
- 2026年小学语文模拟冲刺押题卷
- 诚实做事的演讲稿
- 冀教版三年级上册数学第二单元-两、三位数乘一位数-测试卷及答案(夺冠系列)
- 高中高二下学期地理期末考试试题答案解析
- 2026广东广州市海珠区住房和建设局招聘雇员7人笔试参考题库及答案解析
- 云南师大附中2026届高三1月高考适应性月考卷英语(六)含答案
- 海南2025年中国热带农业科学院橡胶研究所第一批招聘16人(第1号)笔试历年参考题库附带答案详解
- 2025-2026人教版数学七年级上册期末模拟试卷(含答案)
- 2026年九江市八里湖新区国有企业面向社会公开招聘工作人员【48人】笔试参考题库及答案解析
- 广告行业法律法规与行业规范(标准版)
- 2025年CFA二级道德与专业标准题
- 2026年郑州电力高等专科学校单招职业技能测试题库新版
- 2026年八年级物理上册期末考试试卷及答案(共四套)
- 节能与新能源汽车技术路线图2.0
- 保育员配合教学培训工作指南
评论
0/150
提交评论