您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 4.1 指令格式与寻址方式
新编电类专业计算机基础4.1指令格式与寻址方式目录指令格式小结寻址方式8051指令系统特性1共111条指令,7种寻址方式216位地址线,可访问64KB存储空间8位数据线,字节为基本指令格式3指令通常由操作码和操作数组成有单字节、双字节、三字节指令指令格式系统介绍指令前,通过一段具体程序说明指令的存储与一般表达方式。8051完成任务通过CPU将数据01010101B传送到P1口地址操作码和操作数0000000000000001000000100000001100000100000001010111010011110101100100001000000011111110指令格式01010101注释;(操作码)A取下一地址存储单元的内容;(操作数)将要读入A的数据;(操作码)将A送入下一存储单元所指定地址;(操作数)将要送入的制定地址;(操作码)绝对无条件转移指令;(操作数)转移的地址参数存储地址存储内容注释标识全为双字节指令指令的属性,一旦改变,指令意思改变指令相关的操作数据,可根据需要改变机器码机器码枯燥难懂、不便于阅读及理解CPU制造商规定一套助记符地址操作码和操作数0000000000000001000000100000001100000100000001010111010011110101100100001000000011111110指令格式01010101助记符MOVA,#01010101BMOVP1,ASJMP0004H助记符,英文缩写,易记忆与理解注释;A=01010101B;P1=A;停机命令CPU实际上无停机命令原地不停跳转实现停机效果停机作用:防止程序跑飞指令格式执行结果:8051由助记符组成的语言约定为汇编语言1000011101111000目录指令格式小结寻址方式寻址方式从数据传送指令开始全面介绍CPU指令集。源地址data目标地址传送data操作数所在源地址、目的地址寻址方式就是用于说明操作数所在地址的方法传送指令:寻址方式直接寻址寄存器寻址寄存器间接寻址立即寻址相对寻址变址寻址7种寻址方式位寻址按照源地址不同。操作数立即寻址立即数立即寻址是操作数在指令中直接给出,出现在指令中的操作数是立即数。数前加“#”标识立即寻址MOVA,#55H01110100程序存储器010101010000H0001H操作码ACC01010101取出操作码01110100,同时PC自动加1PC译码得知其为双字节立即数寻址指令,下一单元中存放立即数执行,立即数送入A立即寻址:操作数=立即数SFR90H找到地址直接寻址MOV,AP1直接寻址中,操作数是直接以单元地址的形式给出,单元地址中存放的内容就是操作数。90H操作码直接地址11110101程序存储器100100000002H0003HACC0101010101010101SFR中的直接地址90H单元地址的内容为操作数区分90H与#90H直接寻址:操作数存放于单元地址直接寻址—寻址范围寻址范围片内RAM的00H~7FH,以单元地址(如:30H)形式给出SFR,以单元地址或寄存器符号(如:P1)形式给出位地址空间00HFFH可位寻址RAM区工作寄存器高128BRAM区SFR1FH20H2FH30H7FH80H内部存储区直接寻址只能是8位地址,故寻址范围只限于片内片内RAMR001100000寄存器寻址寄存器寻址是在指令中将指定寄存器的内容作为操作数。用符号名称表示INCR0操作码00001000程序存储器ALU01100001低三位由寄存器名决定操作数存放于R0功能:R0=R0+1寄存器寻址:操作数存放于寄存器1假设R0中存放操作数60H寄存器间接寻址以寄存器的内容为地址,然后再从所指定的地址中取操作数的方式是寄存器间接寻址。寻址方式寄存器内容举例MOVA,R0MOVA,@R0操作数操作数存放地址寄存器寻址寄存器间接寻址操作数通过寄存器间接得到寄存器间接寻址标识注意区分R0与@R0寄存器间接寻址—寻址范围片内RAM的00H~7FH,只能使用R0或R1为间接寄存器堆栈区,以堆栈指针SP作间接寻址寄存器片外RAM00H~FFH,使用R0或R1为间接寄存器0000H~FFFFH,使用DPTR为间接寄存器寻址范围00HFFH可位寻址RAM区工作寄存器高128BRAM区SFR1FH20H2FH30H7FH80H内部存储区00FFH0000HFFFFH0100H外部存储区将片外RAM的0001H单元内容送入A将片外RAM地址00000001B存于R0寄存器间接寻址如何找到LED显示程序中地址00000001B中的数据55H程序存储于片外RAM区,通过使用访问片外RAM的字节传送指令—MOVX查找数据,使用如下两条指令实现。MOVR0,#00000001BMOVXA,@R001010101ACC寄存器间接寻址MOVXA,@R000000001片内RAMR0(00H)片外RAM地址操作数小提示:可结合C语言中指针进行学习寄存器间接寻址:寄存器中存放地址值,操作数存放于该地址中01010101片外RAM0001H相对寻址PC……指令n指令n+1……指令1指令n+m0100H0101H01FFH……0000H……rel:带符号的8位二进制补码,取指范围:-128~+127程序最大跳转范围相对寻址是以指令中给出的操作数为程序转移的偏移量,将PC的当前值加上偏移量构成程序转移的目的地址。目的地址=PC当前值+rel转移指令所在地址+转移指令所占字节数偏移量向前跳转127个字节向后跳转128个字节PC偏移量rel0004H0006H相对寻址SJMP0004HALU操作码PC10000000程序存储器111111100004H0005H0006HPC当前值目的地址=PC当前值+偏移量=0006H+[-2]补=0004H相对寻址:操作数为偏移量,存放于操作码之后相对寻址是为解决程序转移而专门设置的变址寻址变址寻址是以PC或DPTR作为基址寄存器,以A作为变址寄存器,两者内容相加形成的16位地址作为操作数存放地址。操作数存放地址=基址寄存器内容+变址寄存器内容变址寻址常用于读取程序存储器内容位寻址位寻址是以数据位作为操作数。可位寻址区域片内RAM中单元地址20H~2FH,共16个单元,128个位SFR中10个可被8整除的寄存器,如80H,90H寻址位表示方法表示PSW(D0H)第3位D3H共4种表示方法。D0.3HPSW.3RS0直接使用位地址字节地址加位数寄存器名加位数寄存器位定义名称位寻址实质也属于直接寻址目录指令格式小结寻址方式小结寻址方式操作数举例MOVA,#55H立即数立即寻址MOVA,55H存于单元地址直接寻址MOVA,R0存于寄存器寄存器寻址MOVA,@R0存于寄存器的值(地址)寄存器间接寻址SJMP0004H程序转移偏移量相对寻址MOVCA,@PC+A存于基址加变址指向的地址变址寻址CLRPSW.3可寻址位位寻址
本文标题:4.1 指令格式与寻址方式
链接地址:https://www.777doc.com/doc-3463596 .html