按关键词阅读: 大学 第三 湘潭 课件 单片机
1、第三章MCS51指令系统,3.1 汇编语言指令格式 3.1.1 汇编语言格式 3.1.2 汇编伪指令 3.2 MCS-51的寻址方式 3.3 MCS-51指令系统 3.3.1 数据传送类指令 3.3.2 算术运算类指令 3.3.3 逻辑运算类指令 3.3.4 位操作类指令 3.3.5 控制转移类指令,计算机的指令系统是一套控制计算机操作的编码机器语言 。
计算机只能识别和执行机器语言的指令 。
但机器语言实在太枯燥 , 太难记忆了,3.1 汇编语言指令格式,操作码:反映了指令的功能 。
操作数:反映了指令的对象,3.1.2 汇编伪指令,伪指令:汇编时不产生机器语言代码的指令 , 仅提供汇编控制信息 。
一、定位伪 。
2、指令 ORG m m:一般为十六进制数 。
m指出在该伪指令后的指令的汇编地址 , 即生成的机器指令起始存贮器地址 。
显然 , 当使用多条ORG m伪指令时 , 应注意其后生成的机器指令存放地址不应重叠 。
eg: ORG 0 START: SJMP MAIN ORG 0BH LJMP PTFO ORG 40H MAIN,二、定义字节伪指令 标号: DB X1、 X2 Xn,3.1.2 汇编伪指令,ORG1000HDB0AAH SJ-DATA:DB25 , 25H ZFC-DATA:DBMCS-51 经汇编后 , 从地址1000H处存贮器的内容为:(1000H)= AAH(1001H)= 19H(1002H)= 25H 。
3、(1003H)= 4DH(1004H)= 43H(1005H)= 53H(1006H)= 2DH(1007H)= 35H(1008H)= 31H,三、字定义伪指令 标号: DW Y1、 Y2 Yn,3.1.2 汇编伪指令,通知汇编程序从当前ROM地址开始,保留存贮单元,并存入DW后面的数据 。
存放时高8位在前,低8位在后 。
例3-3 ORG1000H DW1234HSJ_DATA:DW56H , 2000经汇编后 , 从地址1000H处存贮器的内容为:(1000H)= 12H(1001H)= 34H(1002H)= 00H(1003H)= 56H(1004H)= 07H(1005H)= D0H,四、EQ 。
【湘潭|湘潭大学单片机课件第三章】4、U 赋值伪指令 字符名称 EQU 项(数或汇编符号,3.1.2 汇编伪指令,例:3-4: AAEQUR1 MOVA , AA 例:3-5: D10EQU10 ADD_YEQU07ABH MOVA , D10 LCALLADD_Y,EQU伪指令是把“项”赋给“字符名称” , 注意这里的“字符名称”不同于标号(其后没有冒号) , 但它是必须的 。
用EQU赋过值的符号名可以用作数据地址、代码地址、位地址或是一个立即数,五、DS定义存贮空间伪指令 DS 表达式,3.1.2 汇编伪指令,在汇编时 , 从指定地址开始保留DS之后“表达式”的值所规定的存贮单元,ORG1000H DS07H DB20H , 20 DW12H 经汇编后 。
5、 , 从地址1000H开始保留7个单元 , 然后从1007H处存贮器的内容为: (1007H)= 20H (1008H)= 14H (1009H)= 00H (100AH)= 12H,六、DATA数据地址赋值伪指令 字符名称 DATA 表达式,3.1.2 汇编伪指令,这里的“字符名称”与标号不同(其后没有冒号) , 但它是必须的 , 其功能是把“表达式”的值赋给左边的“字符名称” 。
DATA伪指令与EQU伪指令的主要区别是:EQU定义的“字符名称”必须先定义后使用 , 而DATA定义的“字符名称”没有这种限制 , 故DATA伪指令通常用在源程序的开头或末尾,例3-7: ORG0100H AA DATA 35H DPT 。
6、RA DATA0AA00H MOVA , AA ;(35H) A MOVDPTR , #DPTRA ;0AA00H DPTR,七、BIT定义位地址符号伪指令 字符名称 BIT 位地址,3.1.2 汇编伪指令,这里的“字符名称”与标号不同(其后没有冒号) , 但它是必须的 , 其功能是把BIT之后的“位地址”值赋给“字符名称,例3-6:P11BITP1.1 A2BIT02H MOVC , P11 MOVA2 , C,八、汇编结束伪指令 END指出汇编结束 , 其后即使还有指令 , 汇编程序也不作处理,3.2 MCS-51的寻址方式,在高级语言编程时 , 程序设计人员不必关心程序和数据的内存空间安排问题 。
但在汇编语言程序设计时 , 要针 。
7、对系统的硬件环境编程 , 数据的存放、传送、运算都要通过指令来完成 , 编程者必须自始至终都十分清楚操作数的位置 , 以便将它们传送至适当的空间去操作,寻址方式就是如何找到存放操作数的地址 , 把操作数提取出来的方法,MCS51指令的系统的指令数的寻址方式主要有八种:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基寄存器加变址寄存器间接寻址、相对寻址、位寻址、页面寻址,一、寄存器寻址 由指令某一寄存器的内容作为操作数的寻址方式 。
eg: INC R0;(R0)+1 R0,INC R0指令执行过程示意图,3.2 MCS-51的寻址方式,在指令中含有操作数的直接地址 , 该地址指出了参与计算或传送的数据所在的字节单 。
8、元或位的地址 。
eg:ANL 70H , #48H;(70H)48H70H,二、 直接寻址,操作数的直接地址,3.2 MCS-51的寻址方式,在指令中某一个寄存器的内容作为操作数的地址的寻址方式 , 用符号表示 。
eg: ANLA ,R0; (A)( R0 ) A,寄存器间接寻址使用所选定的寄存器中R0和R1作地址指针(对栈操作时用堆栈指针SP)来寻址内部RAM(0FFH) , 也适用于访问外部扩展的数据存贮器 , 用R0、R1或DPTR作为地址指针,三、寄存器间接寻址,3.2 MCS-51的寻址方式,操作数包含在指令字节中 eg:MOV A , #70H,以16位的程序计数器PC或数据指针DPTR作为基寄存器 ,。
来源:(未知)
【学习资料】网址:/a/2021/0121/0021119585.html
标题:湘潭|湘潭大学单片机课件第三章