- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务三2011年上学期单片机
入口参数: ((SP))=两位16位进制数 出口参数:((SP))=1位十六进制数对应的ASCII码 使用资源:SP,A,DPTR,R2,内部RAM40H、41H单元 主程序: ORG 2000H M1 DATA 40H MOV SP,#60H ;设堆栈指针初值 MOV DPTR,#TAB1 ;ASCII码表头地址送数据指针 PUSH 02H ;第一个16进制数进栈,利用堆栈传递参数 ACALL ASCH ;调用转换子程序 POP M1 ;第一个ASCII码送入M1单元 MOV A,R2 ; SWAP A ;高4位和低4位交换 PUSH ACC ;第二个16进制数进栈 ACALL ASCH ;第二次调用转换子程序 POP M1+1 ;第二个ASCII码送入M1+1单元 SJMP $ ASCH:DEC SP DEC SP ;修改SP指针到参数位置 POP ACC ;弹出参数到(A) ANL A,#0FH MOVC A,@A+DPTR ;查表 PUSH ACC ;参数进栈 INC SP ;修改SP指针返回地址 INC SP RET TAB1:DB DB ‘89ABCDEF’ END 子程序: 例:设AD1和AD2单元内部有两个数a和b,请编制c=a2+b2的程序,并把c送入AD3单元。假设a和b均为小于10的整数 程序: ORG 2000H AD1 DATA 30H AD2 DATA 31H AD3 DATA 32H MOV A,AD1 ;入口参数a送入(A) ACALL SQR ;求a2 入口参数:(A)=a或b 出口参数:(A)=a2或b2 使用资源:A、B、内部RAM30H~32H MOV AD3,A ;a2送入(AD3) MOV A,AD2 ;入口参数b送入(A) ACALL SQR ;求b2 ADD A,AD3 ;a2+b2送入(A) MOV AD3,A ;结果存入(AD3) SJMP $ SQR:MOV B,A MUL AB RET END 伪指令 伪指令: 伪指令 机器指令 一一对应 特点:伪指令是由汇编程序识别,并完成相应的功能 功能:在汇编过程中对数据的存储环境或汇编实施一定的控制,如:伪指令给程序分配一定的存储区、定义符号、指定暂存数据的RAM区等 DATA(赋值)伪指令: 格式: 字符名 DATA 表达式 DATA伪指令与EQU伪指令的区别: EQU定义的字符名必须“先定义后使用”,而DATA定义的“字符名”没有这种限制 DATA伪指令可放在程序的任何位置,比EQU伪指令灵活 功能:将右边“表达式”的值赋给左边的“字符名” 注意:这里的表达式允许是一个数据或地址,也可以是包含被定义的“字符名”在内的表达式,但不能是汇编符号,如R0~R7等 ORG(起始汇编)伪指令 : 格式:ORG 表达式 功能:把以下语句定义的内存数据或程序,从表达式指定的起点(偏移地址)开始连续存放,直至遇到新的ORG指令。表达式值是一个无符号数 格式:END 功能:结束汇编语言源程序的标志 用途:常用于汇编语言源程序末尾,表示汇编结束 注意:一个源程序只能有一个END命令,且置于程序的最后。在END以后所写的指令,汇编程序都不予处理 END(结束汇编)伪指令 : BIT(位地址赋值)伪指令: 格式:字符名 BIT 位地址 功能:将位地址赋予BIT前面的字符名,经赋值后可用该字符名代替BIT后面的位地址 注意: 被定义后,“字符名”是一个符号位地址 有些汇编程序不允许使用BIT伪指令,用户只能用EQU伪指令定义位地址变量,但是用这种方式定义时,EQU语句右边只能是实际的物理地址,而不能使符号位地址 如: K1 BIT 20H KK BIT K1 X2 EQU 6DH X2 EQU K1 √ × 2. 顺序结构程序设计 特点:执行程序的方式是“从头到尾”逐条执行指令语句,直至程序结束 例10-21: 拆字程序。 将30H单元内的两位BCD码拆开并转换成ASCII码,将转换后的ASCII码放在31H和32H单元,并让低位ASCII码放在32H单元 程序:ORG 2000H MOV A,30H ANL A,#0FH ADD A,#30H MOV 32H,A MOV A,30H SWAP A ANL A,#0FH
文档评论(0)