版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 MCS-51 指令系统3-1 指令格式3-2 寻址方式3-3 数据传送指令3-4 算术运算指令3-5 逻辑运算指令3-6 位操作指令3-7 控制转移指令3-8 调用和返回指令第三章 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.结束伪指令 格式: END3-1 指令格式第三章 MCS-51指
3、令系统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个字节的内存单元, 然后从0F10H开始,按照下
4、一条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 指令格式二、 伪指令 汇编时不产生机器码,仅供汇编识别控制。6等值伪
5、指令:EQU数据或汇编符第三章 MCS-51指令系统7数据地址赋值伪指令 格式: DATA 表达式 8位地址赋值伪指令 格式: BIT 位地址 3-1 指令格式二、 伪指令 汇编时不产生机器码,仅供汇编识别控制。第三章 MCS-51指令系统一、立即寻址方式 指令中给出实际操作数据(立即数), 一般用于为寄存器或存储器赋常数初值。 例: 8位立即数: MOV A,#40H ;A40H 16位立即数: MOV DPTR,#2100H ;DPTR2100H3-2 指令寻址方式寻找操作数的方法叫寻址方式。第三章 MCS-51指令系统二、直接寻址方式 指令操作数是存储器单元地址,数据在存储器单元中。 M
6、OV A,40H;A(40H) 例:设存储器两个单元的内容如图所示, 执行指令 MOV A,40H 后 A = 直接寻址方式对数据操作时,地址是固定值,而地址所指 定的单元内容为变量形式。?56H 第三章 MCS-51指令系统 三、寄存器寻址方式 指令操作数为寄存器名,数据在寄存器中。 例: MOV A,R0;AR0 设指令执行前 A=20H,R0=40H, 执行指令后,A= ?,R0= ?40H40H四、寄存器间接寻址方式 指令的操作数为寄存器名,寄存器中为数据地址。 存放地址的寄存器称为间址寄存器或数据指针。 例: MOV A,R0;A(R0) 设指令执行前 A=20H,R0=40H,地址
7、为 40H存储器单元内容如图所示。执行指令后, A= ? ,R0 = ? , (40H)= ?34H40H40H第三章 MCS-51指令系统五、变址间接寻址方式 数据在存储器中,指令给出的寄存器中为数据的基地址 和偏移量。 数据地址 = 基地址 + 偏移量。例:MOVC A,A+DPTR;A(A+DPTR) 设指令执行前 A=09H,DPTR=2000H,存储器单元内容如图所示。 执行指令后,A= DPTR= ? 12H2000H第三章 MCS-51指令系统六、相对寻址方式 以PC的内容作为基地址,加上偏移量,所得结果送PC寄存器 作为转移地址。偏移量在128 +127之间。 例:SJMP80
8、H;短跳转 第三章 MCS-51指令系统 指令给出位地址。一位数据在存储器位寻址区。 例: MOV C,40H;Cy(位地址40H) 设指令执行前 Cy=1,位地址40H存储器单元如图, 执行指令后, Cy= ?028H 0110001029H 11010111位寻址区七.位寻址方式第三章 MCS-51指令系统MCS-51指令系统中共有111条指令,按功能可分为以下四大类: 数据传送类 算术操作类 逻辑操作类 控制转移类 3-3 指令的类型、字节和周期第三章 MCS-51指令系统实现寄存器、存储器之间的数据传送。1 内部传送指令:片内数据存储器数据传送。2、外部传送指令:片外数据存储器数据传送
9、。3、交换指令: 片内数据存储器数据传送。4、堆栈操作指令:片内数据存储器数据传送。5、查表指令: 程序存储器数据传送。3-4 数据传送指令第三章 MCS-51指令系统(一)内部传送指令:实现片内数据存储器中数据传送。 指令格式: MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、 寄存器寻址、寄存器间址。MOV A,Rn ;ARn,Rn=R0R7 MOV A,direct ;A(direct),MOV A,Ri ;A(Ri),Ri=R0、R1MOV A,#data ;AdataMOV Rn,direct ;Rn(direct)MOV Ri,direct ;(Ri)(direct)M
10、OV direct1,direct2 ;(direct1)(direct2)MOV DPTR,#d1d2 ;DPTRd1d2 第三章 MCS-51指令系统操作码目的源操作内容字节数执行时间MOVA,#datadirectRiRn(A)#data(A)(data)(A)(Ri)(A)(Rn)22111111Rn,#datadirectA(Rn)#data(Rn)(data)(Rn)(A)221121Data,#dataAdirectRiRn(data)#data(data)(A)(data)(data)(data)(Ri)(data)(Rn)3232221221Ri,#datadirectA(R
11、i)#data(Ri)(data)(RO)(A)221121第三章 MCS-51指令系统 例:顺序执行下列指令序列,求每一步执行结果。MOV A,#30HMOV 4FH,AMOV R0,#20HMOV R0,4FHMOV 21H,20H;A= 30H;(4FH)= 30H;R0= 20H;(20H)= 30H;(21H)= 30H第三章 MCS-51指令系统说明: 1. 一条指令中不能同时出现两个工作寄存器:非法指令:MOV R1,R2 MOV R2,R0 2. 间址寄存器只能使用 R0、R1。 非法指令: MOV A,R2 3. SFR区只能直接寻址,不能用寄存器间接寻址。非法指令: MOV
12、 R0,#80H MOV A,R0(以上指令的作用是将8052的内部RAM80H内容送A)第三章 MCS-51指令系统(二)外部传送指令 实现片外数据存储器和A累加器之间的数据传送。 指令格式:MOVX 目的操作数,源操作数 寻址方式:片外数据存储器用寄存器间址方式。 1. DPTR作16位数据指针,寻址64KB片外RAM空间 MOVX A,DPTR;A(DPTR) MOVX DPTR,A;(DPTR)A 2. Ri作8位数据指针,寻址256B片外RAM空间 MOVX A,Ri;A(Ri) MOVX Ri,A ;(Ri)A 第三章 MCS-51指令系统 例:实现片外数据存储器数据传送 (200
13、0H) (2100H)。 MOV DPTR,#2000HMOVX A,DPTRMOV DPTR,#2100HMOVX DPTR,A; DPTR= 2000H; A= X; DPTR= 2100H;(2100H)= X片外数据存储器不能直接寻址。 下列为非法指令: MOVX A,2000H MOVX 2100H,2000H第三章 MCS-51指令系统 (三) 查表指令 实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式。 多用于查常数表程序,可直接求取常数表中的函数值。 1DPTR为基址寄存器MOVCA,A+DPTR ;A(A+DPTR) 查表范围为 64KB 程序存储器任意空间,称为
14、远程查表指令 。 2. PC为基址寄存器MOVCA,A+PC;A(A+PC) 常数表只能在查表指令后256B范围内。 (PC内容为下一条指令的起始地址。)第三章 MCS-51指令系统例:查表法求Y=X2。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。1)ORG 1000HSQU:MOV DPTR,#TAB ;确定表首地址(基地址)MOV A,20H ;取X(偏移量)MOVC A,A+DPTR;查表求Y=X2MOV 21H,A ;保存YRET ;子程序结束 ;其它程序段ORG 3000H ;常数表格首地址TAB:DB 00,01,04,09,225;平方表
15、第三章 MCS-51指令系统(四)堆栈操作指令 入栈指令:PUSH n ;SPSP+1,(SP)(n) 出栈指令:POP n ;(n)(SP),SPSP-1例:设 A=02,B=56H,执行下列指令后,SP= ? ,A= ? ,B= ?30H30H30H SBR: MOV SP,#30H ;设栈底 PUSH A PUSH B MOV A,#0 MOV B, #01 POP B POP A第三章 MCS-51指令系统 (五) 交换指令 实现片内RAM区的数据双向传送。1. 字节交换指令 XCH A,Rn ;A Rn XCH A,Ri;A (Ri) XCH A,direct ;A (direct)
16、例:设A= 29H,执行指令 XCH A,2AH后,A= ?(2AH)= ?38H29H第三章 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,#2BHXCHD A,R0SWAP AXCHD A,R1XCH A,20H第三章 MCS-51指令系统 与数据传送指令不同,多数算术运算指令会影响标志位的状态,即CPU执行算术运算指令后,根据数据操作情况自动设置标志位的状态。 状态标志 MCS
17、-51 的程序状态字寄存器 PSW 为标志寄存器。 其格式如下:3-5算术运算指令CyACF0RS1RS0OVP第三章 MCS-51指令系统1标志位(自动设置状态)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-51指令系统 2用户选择位(编程设置状态)1)
18、F0:用户自定义标志位。2)RS1、RS0: 工作寄存器区选择位。复位时,PSW=00H例:复位后,设置使用工作寄存 器3区,其余标志位不变。RS1 RS0工作寄存区0 00区0 11区1 02区1 13区CyACF0RS1RS0OVP第三章 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
19、 ,Cy= 0 ,OV= 0 ,AC= 1 ,P= 1 , PSW= 01000001= 41H 0011 1011 + 0011 1011 0111 0110CyACF0RS1RS0OVP第三章 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 = 84H1001 1010 1110 0011
20、 + 0 1 0111 1101CyACF0RS1RS0OVP第三章 MCS-51指令系统 带进位加法指令ADDC用于多字节运算例:设双字节数 X 存在片内RAM 41H、40H单元,Y存在42H、43H单元,编程求 Z=X+Y,并存入片内RAM单元44H、45H、46H。ADDS:CLR C MOV A,40HADD A,42HMOV 44H,AMOV A,41HADDC A,43HMOV 45H,AMOV A,#0ADDC A,#0MOV 46H,ARET;取被加数低字节;加上加数低字节;保存和的低字节;取被加数高字节;加上加数高字节;保存和的高字节;求高字节进位;子程序结束第三章 MCS
21、-51指令系统3)BCD调整指令:DAA; 对 A 中加法结果进行调整 在加法过程中低4位向高4位有进位或累加器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第三章 M
22、CS-51指令系统二进制加法和进制调整过程为: 85 1000 0101 (A) +) 59 0101 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指令系统2减法指令 SUBB A,源操作数;带借位减法指令 SUBB A,Rn SUBB A,direct SUBB A,Ri SUBB A,#data 影响:Cy、OV、AC、P例:A= 5AH,R2= 5AH,Cy= 0,执行下列指令SUBB A,R2
23、求:A= 00,Cy=0,OV=0,P=0,AC= 0?第三章 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 1110 100 借位 1100 1001 (A) 0101 0100 (R0) - 1 Cy 0111 0100第三章 MCS-51指令系统3. 增量、减量指令增量指令:INC 单操作数 INC A INC Rn INC direct INC Ri INC DPTR除对A操作影响标志位P以外,不影响标志位状态。第三章 MCS-51指令
24、系统 减量指令:DEC 单操作数 DEC A DEC direct DEC Ri DEC Rn 除对A操作影响标志位P以外,不影响标志位状态。 注意:没有指令 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= 96(60H), B= 192(0C0H),执行指令 MUL AB 后,求:A= ,B= ,Cy= ,OV= ,P= ? 解: 96 192 = 18432(4800H)
25、 例:A= 156(F6H),B= 13(0DH),执行指令 DIV AB后 求:A= ,B= ,Cy= ,OV= ,P= 解: 156 13 = 18(12H),余数= 12(0CH)。第三章 MCS-51指令系统3-6 逻辑运算指令一、单操作数指令(A累加器为操作数)1. A清0指令: CLR A ;A02. 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
26、,分别执行下列单条指令: CPL A ;A= ,Cy= RL A ;A= ,Cy= RLC A ;A= ,Cy= 00111010 010001011 010001010 1第三章 MCS-51指令系统 用9位循环指令实现多字节移位例:编程将寄存器 R6R5 中的双字节数X左移一位。0CyR6R5CyCLR CMOV A,R5RLC AMOV R5,AMOV A,R6RLC AMOV R6,A;Cy=0, 设 R6= 55H ,R5= AAH;R6=01010101,R5=10101010,Cy=0;R6=01010101,R5=01010100,Cy=1;R6=10101011,R5=010
27、10100,Cy=0第三章 MCS-51指令系统二、双操作数逻辑运算指令(对位逻辑运算):ANL、ORL、XRL例 A=01B,表示随机状态,为1或0,执行下述一组指令执行后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的一位数传送到位
28、地址30H中: MOV C,20H MOV 30H,C 二位清0、置1、取反:CLR、SETB、CPL: CLR C ;Cy0, CLR 40H;(位地址40H) 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.001第三章 MCS-51指令系统3-7 控制转移指令 转移指令通过改写PC的当前值,从而改变CPU执行程序的顺序
29、,使程序发生跳转。按转移条件分类:1)无条件转移:执行无条件转移指令,程序无条件转移到指定处。2)条件转移:指令中给出转移条件,执行指令时,先测试条件, 若满足条件,则程序发生转移,否则,仍顺序执 行程序。第三章 MCS-51指令系统按转移方式分类:1)绝对转移:指令给出转移目的的绝对地址 nn,执行指令后, PCnn。 例: 地址源程序 1000H LJMP 2000H 1003H 2000H ;转移目的指令2)相对转移:指令给出转移目的与转移指令的相对偏移量e,执行指令后,PCPC + e 。 例:地址 源程序 1000H SJMP 02 1004H ;转移目的指令第三章 MCS-51指令
30、系统一.无条件转移指令 1.长转移指令:LJMP addr16 ;PC addr16 指令转移范围:64KB,无条件转移,不影响任何标志位 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当前值编程时,用标号代替转移目的地址,转移指
31、令的操作数交给汇编程序计算。LJMP NEXT AJMP NEXT SJMP NEXT NEXT: 第三章 MCS-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已存入片内
32、RAM的40H单元中。若X=0,则执行程序段FUNC0若X=1,则执行程序段FUNC1。KEY: MOV DPTR,#KTAB MOV A,40H ADD A,40H JMP A+DPTRKTAB: 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转移,否则不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华师大版初中科学神经调节的基本方式(26课件)
- 华师大版初中科学动物的生殖发育(40课件)
- 技术保密制度
- 客户需求与投诉处理制度
- 福建省龙岩市连城县第一中学2023-2024学年高三1月调研考试数学试题
- 大同市重点中学2024年高三4月月考数学试题
- 算法设计与分析 课件 8.1-分支限界 - 引例 - 0-1背包问题
- 2024年重庆客运从业资格考试题库及答案解析
- 2024年温州客运从业资格考试题
- 2024年客运从业资格证实际操作考试内容
- 软件使用授权书
- Unit1KnowingMeKnowingYou如何写读后感课件高一下学期英语
- 脑卒中后吞咽障碍患者进食护理(2023年中华护理学会团体标准)
- DB21T 2885-2023居住建筑节能设计标准
- 压覆矿产资源调查评估规范
- 2023秋二年级上册《小学生数学报》数学学习能力调研卷
- 项目三婴幼儿皮肤疾病预防与照护
- 第3课时-六宫格数独课件
- 教学课件-律师实务
- 亮化工程可行性研究报告
- (完整版)病例演讲比赛PPT模板
评论
0/150
提交评论