1、1寻址方式寻址方式寻址方式寻址方式数据传送类指令数据传送类指令数据传送类指令数据传送类指令算术运算类指令算术运算类指令算术运算类指令算术运算类指令逻辑操作类指令逻辑操作类指令逻辑操作类指令逻辑操作类指令控制转移类指令控制转移类指令控制转移类指令控制转移类指令位操作指令位操作指令位操作指令位操作指令常用伪指令常用伪指令常用伪指令常用伪指令第第章章MCSMCS5151指指令令系系统统本章内容本章内容SingleChipMicrocomputer21 1实训目的实训目的(1)掌握指令格式及表示方法:助记符表示和机器码表示。(2)了解人工汇编与机器汇编的方法。(3)了解寻址方式的概念。(4)掌握常用指
2、令的功能及应用。实训实训3 3 指令的应用指令的应用2 2实训引入实训引入MOVP1,#55HMOVP1,55H请比较以上两条指令执行请比较以上两条指令执行后后P1P1口的状况口的状况?为什么为什么?33 3实训表格实训表格表3.1 实验表格题号助记符指令机器码指令检查数据发光二极管状态MOV P1,#55H MOV 20H,#0F0H(20H)=MOV P1,20H MOV A,#0F0HA=MOV P1,AMOV R4,#0FHR4=MOV P1,R4MOV 20H,#0AAH(20H)=MOV R0,#20HR0=MOV P1,R0MOV A,#55H A=MOV P1,A AND A,
3、#0FHA=MOV P1,A 4MOV A,#55H A=MOV P1,AAND A,#0FHA=MOV P1,A OR A,#0F0HA=MOV P1,A CLR A A=MOV P1,ACPL AA=MOV P1,AMOV A,#01H A=MOV P1,A RL AA=MOV P1,ARL AA=MOV P1,A 54.4.实训分析与总结实训分析与总结 在实训中看到以下现象:往P1口传送数据的指令中,数据的来源不尽相同。数据是指令的操作对象,叫做操作数。指令必须给出操作数所在的地方,才能进行数据传送。寻找操作数地址的方法,称为寻址方式。寻找操作数到底有多寻找操作数到底有多少种方式呢少种方
4、式呢?6指令概述指令概述操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0双字节指令:双字节指令:双字节指令:双字节指令:标号:标号:标号:标号:操作码操作码操作码操作码操作数或操作数地址操作数或操作数地址操作数或操作数地址操作数或操作数地址;注释;注释;注释;注释单字节指令:单字节指令:单字节指令:单字节指令:操作码操作码操作码操作码7 07 07 07 0三字节指令:三字节指令:三字节指令:三字节指令:操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07
5、 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0指令按字节长度可以分为三种:指令按字节长度可以分为三种:指令按字节长度可以分为三种:指令按字节长度可以分为三种:指令格式指令格式指令格式指令格式指令的格式:指令的格式:指令的格式:指令的格式:例如:例如:例如:例如:MOVAMOVA,R0R0例如:例如:例如:例如:MOVAMOVA,30H30H例如:例如:例如:例如:MOVDPTRMOVDPTR,#2010H#2010H7一、寻址方式一、寻址方式(找信找信找信找信方式方式方式方式)我的信在他我的信在他我的信在他我的信在他那那那那!找信找信找信找信去
6、去去去!注:找信是寻找信的“地址”!你能说出第你能说出第你能说出第你能说出第二封信的二封信的二封信的二封信的“地址地址地址地址”吗?吗?吗?吗?8目的地目的地目的地目的地#XXHXXH操作数操作数MOVP1,MOVP1,#55H55HMOVA,MOVA,#01H01H#55H55H目的地目的地信信寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址9目的地目的地目的地目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址内部内部内部内部RAMRAM或或或或SFRSFR区区区区操作数操作数XXHXXHMOVP1,20HMOVP1,20H20H20H目的地目的地20H2
7、0H注:寻址是寻操作数的“地址”!直接给出地址直接给出地址20H20H直接寻址直接寻址直接寻址直接寻址10目的地目的地目的地目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址寄存器寄存器寄存器寄存器目的地目的地操作数操作数XXHXXHMOVP1,AMOVP1,A寄存器寄存器寄存器寄存器R0-R7ABDPTR你能说出为什么叫你能说出为什么叫你能说出为什么叫你能说出为什么叫寄存器寻址吗?寄存器寻址吗?寄存器寻址吗?寄存器寻址吗?11寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVP1,R0MOVP1,R0目的地目的地目的地目的地寄存器寄存器寄存器寄存器操作
8、数操作数3AH3AH内部内部内部内部RAMRAM3AH3AH65H65H3AH3AHR0R1DPTR寄寄存存器器间间接接寻寻址址寄寄存存器器目的地目的地2 2号号号号信在信在2 2号箱子里号箱子里1 1号号号号你能说出你能说出你能说出你能说出1 1 1 1号箱号箱号箱号箱子和子和子和子和2 2 2 2号箱子分号箱子分号箱子分号箱子分别对应内存中哪别对应内存中哪别对应内存中哪别对应内存中哪一部分吗一部分吗一部分吗一部分吗?12寻址比较寻址比较MOV P1MOV P1,R0R0地址是寄存器地址是寄存器地址是寄存器地址是寄存器R0R0MOV P1MOV P1,R0R0 地址在寄存器地址在寄存器地址在
9、寄存器地址在寄存器R0R0里里里里MOV P1MOV P1,20H20H地址是内存地址是内存地址是内存地址是内存20H20HMOV P1MOV P1,#20H#20H直接将直接将直接将直接将20H20H这个数送这个数送这个数送这个数送P1P1口口口口错!错!错!MOV P1MOV P1,R0R0对!13寻址比较寻址比较MOV P1MOV P1,R0R0 地址是寄存器地址是寄存器R0R0MOV P1MOV P1,R0R0 地址在寄存器地址在寄存器R0R0里面里面MOV P1MOV P1,20H20H 地址是内存地址是内存20H20HMOV P1MOV P1,#20H#20H 直接将直接将20H2
10、0H这个数送这个数送P1P1口口错!错!错!MOV P1MOV P1,R0R0对!14寻址比较寻址比较MOV P1MOV P1,R0R0 地址是寄存器地址是寄存器R0R0MOV P1MOV P1,R0R0 地址在寄存器地址在寄存器R0R0里面里面MOV P1MOV P1,20H20HMOV P1MOV P1,#20H#20H 直接将直接将20H20H这个数送这个数送P1P1口口错!错!错!MOV P1MOV P1,20H20H对!地址是内存地址是内存20H20H15寻址比较寻址比较MOV P1MOV P1,R0R0 地址是寄存器地址是寄存器R0R0MOV P1MOV P1,R0R0 地址在寄存
11、器地址在寄存器R0R0里里MOV P1MOV P1,20H20H 地址是内存地址是内存20H20HMOV P1MOV P1,#20H#20H 直接将直接将20H20H这个数送这个数送P1P1口口错!错!错!MOV P1MOV P1,#20H#20H对!16寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVCA,A+DPTRMOVCA,A+DPTR目的地目的地目的地目的地寄存器寄存器寄存器寄存器操作数操作数内部内部内部内部RAMRAM3AH3AH65H65H3AH3AH基址基址基址基址寄存器寄存器寄存器寄存器12H12H变址变址变址变址寄存器寄存器寄存器寄存器34H34H内部
12、内部内部内部RAMRAM46H46H65H65HADPTRPC46H46H17目的地目的地目的地目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址XXHXXH位寻址操作数操作数SJMP54HSJMP54HPCPC+54H54HPCPC2002H2002H2002H=2056H2002H=2056HPCPC2056H2056H18寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址20H20H27H27H21H21H28H28H21H21H20H20H100000000想一想想一想想一想想一想:如果想使如果想使如果想使如果想使27H27H单单单单元的元的元的元的第第第第
13、3 3位位位位置置置置1 1,该怎么办呢该怎么办呢该怎么办呢该怎么办呢?19单元地址单元地址单元地址单元地址2FH2FH2FH2FH2EH2EH2EH2EH2DH2DH2DH2DH2CH2CH2CH2CH2BH2BH2BH2BH2AH2AH2AH2AH29H29H29H29H28H28H28H28H 26H26H26H26H25H25H25H25H24H24H24H24H23H23H23H23H22H22H22H22H21H21H21H21H20H20H20H20H7F7F77776F6F67675F5F57574F4F474737372F2F27271F1F17170F0F0707 MSBM
14、SBMSBMSB 位地址位地址位地址位地址 LSBLSBLSBLSB7E7E76766E6E66665E5E56564E4E4646 36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D454535352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C4444 34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B4343 33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A525
15、24A4A4242 32322A2A22221A1A12120A0A020279797171696961615959515149494141 313129292121191911110909010178787070686860605858505048484040 3030282820201818101008080000位寻址地址表位寻址地址表位寻址地址表位寻址地址表 例:SETB 3DHSETB 3DHSETB 3DHSETB 3DH3D3D3C3C3B3B3F3F3E3E3A3A3939383827H27H20寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址SETB3DHSE
16、TB3DH20H20H27H27H21H21H28H28H21H21H20H20H00000001 021二、指令系统二、指令系统1、指令描述约定、指令描述约定符符 号号含含 义义RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7RiRi表示作为间接寻址的地址指针表示作为间接寻址的地址指针R0R0R1R1#data#data表示表示8 8位立即数,即位立即数,即00H00HFFHFFH#data16#data16表示表示1616位立即数,即位立即数,即0000H0000HFFFFHFFFFHaddr16addr16表示表示1616位地址,用于位地址,用于64K64K范围内寻址范围内寻址addr11addr11表示表示1111位地址,用于位地址,用于2K2K范围内寻址范围内寻址directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一专用功能寄存器的地址区的某一单元或某一专用功能寄存器的地址RelRel带符号的带符号的8 8位偏移量(位偏移量(-128-128+127+127)BitBit位寻址区的直接寻
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1