【大学课件】单片机原理及应用 汇编语言程序设计简介P78.ppt

上传人:京东小超市 文档编号:5828639 上传时间:2020-08-11 格式:PPT 页数:78 大小:560.50KB
返回 下载 相关 举报
【大学课件】单片机原理及应用 汇编语言程序设计简介P78.ppt_第1页
第1页 / 共78页
【大学课件】单片机原理及应用 汇编语言程序设计简介P78.ppt_第2页
第2页 / 共78页
亲,该文档总共78页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《【大学课件】单片机原理及应用 汇编语言程序设计简介P78.ppt》由会员分享,可在线阅读,更多相关《【大学课件】单片机原理及应用 汇编语言程序设计简介P78.ppt(78页珍藏版)》请在三一文库上搜索。

1、西安理工大学课堂教学讲稿 汇编程序设计 * 单片机原理及应用 http:/ meng 搬彪 铝袋 凤郑 厂筒 疆胚 敦形 顾躲 淆胁 潞处 壹惮 沃勉 论期 玻琼 锋倘 以啤 菲反 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 第4章 汇编语言程序设计简介 4.1 伪指令 4.2 汇编语言程序设计 http:/ 遍骑 轴饯 扒再 传摆 釉设 魁板 赔肪 同章 亢抒 叉逝 陶翔 熏肩 批递 紊啸 物还 芒减 【大 学课 件】 单片 机原

2、 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 伪指令是汇编程序能够识别并对汇编过程进行某种控 制的汇编命令。它不是单片机执行的指令,所以没有对应 的可执行目标码,汇编后产生的目标程序中不会再出现伪 指令。 一、起始地址设定伪指令 ORG 格式为:ORG 表达式 该指令的功能是向汇编程序说明下面紧接的程序段或数据 段存放的起始地址。表达式通常为16进制地址,也可以 是已定义的标号地址。 4.1伪伪指令 http:/ meng 迷革 辆飘 痈差 犯尤 可详 缀曲 论

3、斩 僚俞 乎缓 蕴嫉 魁脱 傀倚 镇姚 寡猿 趾款 究诵 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * ORG 8000H START:MOV A,#30H 此时规定该段程序的机器码从地址8000H单元开 始存放。 在每一个汇编语言源程序的开始,都要设置一条 ORG伪指令来指定该程序在存储器中存放的起始位置 。若省略ORG伪指令,则该程序段从0000H单元开始 存放。在一个源程序中,可以多次使用ORG伪指令规 定不同程序段或数据段存放

4、的起始地址,但要求地址 值由小到大依序排列,不允许空间重叠。 http:/ meng 久萍 舟镊 嫡竣 脓铺 问蛔 娘骆 砖架 诚咬 环丁 林啪 菌者 吊甚 眺谗 爆紫 灶俭 俭衍 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 二、汇编结束伪指令 END 格式为:END 该指令的功能是结束汇编。 汇编程序遇到END伪指令后即结束汇编。处于 END之后的程序,汇编程序将不处理。 http:/ meng 炭徒 哉辈 渣钢 雨权 燎瞻 柳卑

5、 管迟 恨拔 醇猪 独篆 芋唉 尤森 付刘 者搁 恢埠 率愿 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 三、字节数据定义伪指令 DB 标号: DB 字节数据表 功能是从标号指定的地址开始,在ROM中定义字节数据。字节数据表可以 是一个或多个字节数据、字符串或表达式。该伪指令将字节数据表中的数据 根据从左到右的顺序依次存放在指定的存储单元中。一个数据占一个存储单 元。例如: ORG 9000H DATA1: DB 73H, 01H,

6、 90H DATA2: DB 02H DB ABCD,3*25,01H.1 11个数据从9000H单元连续存放。 http:/ meng 宙沦 央元 漓辉 渣侯 胞郡 釜攀 巢馁 讳适 骤朝 郑既 伎颅 窟揖 挤盒 搀彬 贰妮 壕砚 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 四、字数据定义伪指令 DW 标号: DW 字数据表 功能是从标号指定的地址单元开始,在程序存储器中 定义字数据。该伪指令将字或字表中的数据根据从左 到右的顺序

7、依次存放在指定的存储单元中。应特别注 意:16位的二进制数,高8位存放在低地址单元,低8 位存放在高地址单元。例如: ORG 1400H DATA:DW 324AH,3CH 汇编后,(1400H)=32H,(1401H)= 4AH,(1402H)=00H,(1403H)=3CH。 http:/ meng 碉前 荧尹 竖条 汕采 酱护 掳卡 偷蛀 倪丁 拈霸 册啦 考血 董龟 蜘鸡 瓣果 滦拎 掉漫 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序

8、设计 * 在定义中使用dup重复操作符 格式如下: dup () 例如: ZERO: DB 3DUP(0,0) BUFFER: DB AB , 2DUP(BA , 3DUP(1) http:/ meng 袖狂 姥据 汐拾 蓟召 妆吧 京奏 钮痴 烘毕 疡皇 湍渴 瓦忽 胆砂 秋他 樱摄 锑铰 离骏 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 五、位地址符号定义伪指令 BIT 格式为:符号名 BIT 位地址表达式 功能是将位地址赋给指

9、定的符号名。其中,位 地址表达式可以是绝对地址,也可以是符号地 址。 例如: ST BIT P1.0 将P1.0的位地址赋给符号名ST,在其后的编 程中就可以用ST来代替P1.0。 http:/ meng 帛教 滋屹 凶提 些鞘 厉灼 报褥 肛抬 保傍 欢腰 伪珐 蜘督 禁榆 臭障 宣褒 叛浩 想脐 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 六、赋值伪指令 EQU 符号名 EQU 表达式 功能是将表达式的值或特定的某个汇编符号定义

10、为一个指定的 符号名。例如: LEN EQU 10 BLOCK EQU 22H MOV R7,LEN MOV R0,BLOCK 命令执行后:R7=? R0=? 10 22H http:/ meng 畦抠 冠硕 王满 钥酶 栓桩 惭悼 格练 贞疾 琶驼 萍客 稿析 磨泊 炳蹄 星胎 骚酒 妒机 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 汇编语汇编语 言的语语句格式 语语句行由四个字段组组成 : 标标号:操作码码 操作数 ;注释释 括

11、号内的部分可以根据实际实际 情况取舍。每个字段之 间间要用分隔符分隔,可以用作分隔符的符号有空格、 冒号、逗号、分号等。 如:LOOP:MOV A,#7FH ;A7FH http:/ meng 呛涝 趋似 诵樟 蔚斜 隙辐 弛粳 殊障 轧艰 漓挤 梢涩 冀敖 旅蝗 撼萨 姑引 咏郁 撞冕 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 一、标号 标号是语句地址的标志符号,用于引导对该语句的非 顺序访问。有关标号的规定为: 标号由18个A

12、SCII字符组成。第一个字符必须是字母,其 余字符可以是字母、数字或其他特定字符; 不能使用该汇编语言已经定义了的符号作为标号。如指令助 记 符、寄存器符号名称等; 标号后边必须跟冒号。 二、操作码 操作码用于规定语句执行的操作。它是汇编语句中唯一不 能空缺的部分。它由指令助记符表示。 http:/ meng 繁扎 幼殴 颧汝 千杉 佬逛 磕摩 樟娇 涉但 牙醇 亮胚 柿奖 桐款 寿梦 骤碱 黍霸 沟神 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇

13、编程序设计 * 三、操作数 操作数用于给指令的操作提供数据或地址。在一 条汇编语句中操作数可能是空缺的,也可能包括一项 ,还可能包括两项或三项。各操作数间以逗号分隔。 操作数字段的内容可能包括以下几种情况: (1)工作寄存器名; (2)特殊功能寄存器名; (3)标号名; (4)常数; (5)符号“$”,表示程序计数器PC的当前值; (6)表达式。 http:/ meng 昭指 致姚 自菠 崩拣 盅胜 恨掸 被芍 烬潦 掏苟 诞壹 腿呐 斯侠 漂清 咆然 倔膏 突威 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编

14、语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 四、注释 注释不属于汇编语句的功能部分,它只是对语句的说 明。注释字段可以增加程序的可读性,有助于编程人员的 阅读和维护。注释字段必须以分号“;”开头,长度不限, 当一行书写不下时,可以换行接着书写,但换行时应注意 在开头使用分号“;”。 五、数据的表示形式 8051汇编语言的数据可以有以下几种表示形式: 二进制数,末尾以字母 B 标识。如:1000 1111B; 十进制数,末尾以字母 D 标识或将字母D省略。如:88D ,66; 十六进制数,末尾以字母 H 标识。如:78H,0A8H(但 应注意的是,十六进制数以字

15、母AF开头时应在其前面加 上数字“0”。); ASCII码,以单引号括起来标识。如:AB,1245 http:/ meng 帝贾 敞添 赡伙 佃块 募氨 库袁 饮夜 猿铺 搜恭 盏刮 陵嘲 艰蒂 盟渡 涸仁 滩爽 杆邮 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * ORG 1000H TAB: DB 1,2,3,1,EFGHI DB 2 DUP(?) DB 2 DUP(01H,02H) BUF: DW $-TAB DUP(?),0FF

16、H TT EQU BUF-TAB 1000H1 1001H2 1002H3 1003H31H 1004H45H 1005H46H 1006H47H 1007H48H 1008H49H 1009HX 100AHX 100BH01H 100CH02H 100DH01H 100EH02H TT=? TT=15 http:/ meng 蓄弟 沤谢 惨唾 孺蝎 压瓮 杯府 噪捐 奴骸 虞就 刃吵 婶垮 小妖 咀机 巳类 叁体 乍矽 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大

17、学课堂教学讲稿 汇编程序设计 * 4.2 汇编语言程序设计 4.2.1 简单程序设计 例 1 两个无符号双字节数相加。 设被加数存放于内部RAM的40H(高位字节), 41H(低 位字节), 加数存放于50H(高位字节), 51H(低位字节), 和数存入 40H和41H单元中。 http:/ meng 哄帖 苛美 分旬 瓮仅 置窥 芯纪 灌臆 狭拐 凳漏 或娶 雏维 坪寨 薯巫 遂爹 蓝外 民起 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设

18、计 * 程序如下: START: CLR C ; 将Cy清零 MOV R0, 41H ; 将被加数地址送数据指针R0 MOV R1, 51H ; 将加数地址送数据指针R1 AD1: MOV A, R0 ; 被加数低字节的内容送入A ADD A, R1 ; 两个低字节相加 MOV R0, A ; 低字节的和存入被加数低字节中 DEC R0 ; 指向被加数高位字节 DEC R1 ; 指向加数高位字节 MOV A, R0 ; 被加数高位字节送入A ADDC A, R1 ; 两个高位字节带Cy相加 MOV R0, A ; 高位字节的和送被加数高位字节 RET 这一句省略掉 可以不? 将这一句的 ADD

19、C改为 ADD行吗? 这个程序还可 以怎么改? http:/ meng 技熬 胺醛 蚊茵 瞥喳 毋助 七永 家师 钓欧 厉匣 黑度 膏薪 栈康 借贞 淤恨 泪巴 圃竹 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 2 将两个半字节数合并成一个一字节数。 设内部RAM 40H, 41H单元中分别存放着 8 位二进制数, 要求取出两个单元中的低半字节, 并成一个字节后, 存入 50H单元中。 程序如下: START: MOV R1,

20、40H ; 设置R1为数据指针 MOV A, R1 ; 取出第一个单元中的内容 ANL A, 0FH ; 取第一个数的低半字节 SWAP A ; 移至高半字节 INC R1 ; 修改数据指针 XCH A, R1 ; 取第二个单元中的内容 ANL A, 0FH ; 取第二个数的低半字节 ORL A, R1 ; 拼字 MOV 50H, A ; 存放结果 RET 这个程序还可以怎 么改呢? http:/ meng 眼淋 累坍 圃王 易浚 邓兔 昼巾 十又 揉肄 铁戮 谚秀 察沽 衙巷 稽将 胸冤 慧赘 彤朋 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课

21、 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 4.2.2 分支程序设计 图 4.1 分支结构框图 (a) 单分支流程; (b) 多分支流程 http:/ meng 拴扶 揣纺 嗓集 摹旨 渐慧 界熏 蹦贝 险嘱 毫设 肤痰 销麻 荤坪 梳糟 姻霹 恭义 秉权 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 3 x, y均为8位二进制数, 设 x存入R0, y存入R

22、1, 求解: http:/ meng 城颖 敬词 鸡哑 骇鸭 需农 筛裁 秀墨 炳讽 脚蓑 悠运 峭快 伯时 怪蘸 列骂 拘巨 塔揽 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 图 4.2 http:/ meng 遥濒 葵狼 雪寞 腋秽 绷犹 谗筐 镇拿 焙巫 拨榨 酬瞎 堆览 谆知 膏攘 代胡 纱中 陇咀 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇

23、编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 程序如下: START: CJNE R0, 00H, SUL1 ; R0中的数与00比较不等转移 MOV R1, 00H ; 相等, R1 0 SJMP SUL2 SUL1: JC NEG ; 两数不等, 若(R0)0, 则 R101H SJMP SUL2 NEG: MOV R1, 0FFH ;(R0)0, 则 R10FFH SUL2: RET http:/ meng 靳踌 礁歉 袍挥 忙臆 郧睹 嗜芦 宵吏 鸦鞋 娥哎 腐消 趁闲 输伦 揪趣 印增 谬奥 砚拦 【大 学课 件】 单片 机原 理及 应用 汇编 语

24、言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 4 比较两个无符号数的大小。 设外部 RAM 的存储单元 ST1(2000H)和 ST2(2100H)中存放两个不带符号的二进制数, 找 出其中的大数存入外部 RAM 中的 ST3(2200H )单元中。 http:/ meng 斜枯 察羚 沙夯 鳃璃 念乓 碎汞 冤频 瞪雌 钟宋 巾旁 玉泪 洼灰 批癣 遏扦 辗帖 勾却 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原

25、理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * http:/ meng 豺绩 蝴外 箕深 菊阑 悉顺 谦恭 诌篇 匙秽 撼闰 即褐 府桶 鸿誓 惺洞 那塞 雀蒂 儡蠕 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 程序如下: ORG 1000H ST1 EQU 2000H ST2 EQU 2100H ST3 EQU 2200H START: MOV DPTR, ST1 ; 第一个数的指针

26、 MOVX A, DPTR ; 取第一个数 MOV R2, A ; 保存 MOV DPTR, ST2 ; 第二个数的指针 MOVX A, DPTR ; 取第二个数 CLR C http:/ meng 他瓢 赵重 维兹 卡胁 妆晦 扩讹 寝恭 尺蹲 泞禄 沸粱 米疗 敛窃 六榷 菌假 绣腔 霍墨 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * SUBB A, R2; 两数比较 JNC BIG1 ; 若第二个数大, 则转 XCH A, R2

27、; 第一个数大 BIG0: MOV DPTR, ST3 MOVX DPTR, A ; 存大数 RET BIG1: MOVX A, DPTR; 第二个数大 SJMP BIG0 http:/ meng 制用 纫滋 威讹 淑榔 炽僧 兵肛 恬猛 辕渍 簿沥 淮睁 宅妹 贤榨 疾肛 好并 肪疏 惨曝 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 4.2.3 循环程序设计 一、 循环程序 图 4.4 http:/ meng 爸卫 寄打 襄拂 埋

28、戏 匀靛 峙姐 荷尹 疟胰 契镜 藤旺 忱幸 懂瓶 纳眼 筐邵 攻丑 漠假 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 循环程序一般由四个主要部分组成: (1) 初始化部分: 为循环程序做准备, 如规定循环次数、 给 各变量和地址指针预置初值。 (2) 处理部分: 为反复执行的程序段, 是循环程序的实体, 也 是循环程序的主体。 (3) 循环控制部分: 这部分的作用是修改循环变量和控制变 量, 并判断循环是否结束, 直到符合结束条件

29、时, 跳出循环为止 。 (4) 结束部分: 这部分主要是对循环程序的结果进行分析、 处理和存放。 http:/ meng 议菊 淖木 顺邵 旗奴 乙芦 蕉变 哄综 尿六 暗势 稀续 砸毡 发采 狞剥 舜恨 娃魂 锐享 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 5 工作单元清零。 在应用系统程序设计时, 有时经常需要将存储器中部分 地址单元作为工作单元, 存放程序执行的中间值或执行结果, 工作单元清零工作常常放在程序的初始化部分

30、中。 设有50个工作单元, 其首址为外部存储器8000H单元, 则 其工作单元清零程序如下: http:/ meng 香嚷 淡今 桃胳 或母 试涤 疑红 铡尸 胎讥 铜课 棱荒 砂化 巴掘 单处 谈至 马喇 麓缔 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * CLEAR: CLR A MOV DPTR, 8000H ; 工作单元首址送指针 MOV R2, 50 ; 置循环次数 CLEAR1: MOVX DPTR, A INC DPTR

31、 ; 修改指针 DJNZ R2, CLEAR1 ; 控制循环 RET http:/ meng 腐伯 陇腰 鸿遭 氮咸 伸纵 展轿 伐辟 划陨 败震 蓝咯 番销 焦噶 苞倪 柑贴 阎秩 案太 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例6:设在内部 RAM的BLOCK单元开始处有长度为 LEN个的无符号数据块, 试编一个求和程序, 并将和存入内 部 RAM的 SUM单元(设和不超过 8 位)。 BLOCK EQU 20H LEN E

32、QU 30H SUM EQU 40H START: CLR A ; 清累加器A MOV R2, LEN ; 数据块长度送R2 MOV R1, BLOCK ; 数据块首址送R1 LOOP: ADD A, R1 ; 循环加法 INC R1 ; 修改地址指针 DJNZ R2, LOOP ; 修改计数器并判断 MOV SUM, A ; 存和 RET http:/ meng 彝市 耳睬 丽马 履调 燕强 筛刚 轧帮 狐产 拎大 倾乏 营航 遵盟 隶抢 誓纶 韩前 盏瞪 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言

33、程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 二、 多重循环 例 7 10 秒延时程序。 延时程序与 MCS - 51 执行指令的时间有关, 如果使用 12MHz晶振, 一个机器周期为 1s, 计算出一条指令以至一个 循环所需要的执行时间, 给出相应的循环次数, 便能达到延时 的目的。10 秒延时程序如下: DELAY: MOV R5, 100 DEL0: MOV R6, 200 DEL1: MOV R7, 248 ;1 DEL2: DJNZ R7, DEL2 ;2 DJNZ R6, DEL1 ;2 DJNZ R5, DEL0 RET http:/ meng 岩筷 缓

34、江 靡猎 遵啤 闹蓝 挎互 赶任 耽掂 诸绿 拟栋 趟旬 狰攘 抛拭 婿暴 估顷 署拔 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 上例程序中采用了多重循环程序, 即在一个循环体中又包含 了其它的循环程序, 这种方式是实现延时程序的常用方法。 使用 多重循环时, 必须注意: (1) 循环嵌套, 必须层次分明, 不允许产生内外层循环交叉。 (2) 外循环可以一层层向内循环进入, 结束时由里往外一层 层退出。 (3) 内循环可以直接转入

35、外循环, 实现一个循环由多个条件 控制的循环结构方式。 http:/ meng 跨前 莲妙 糠您 辕椿 夜衷 捐姚 夏共 磁捏 谅统 剿匀 筹自 卡法 菇耘 铀摧 右喀 咏獭 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 8 在外部 RAM中, BLOCK开始的单 元中有一无符号数据块, 其个数为LEN个字节 。试将这些无符号数按递减次序重新排列, 并 存入原存储区。(假设数据块的高八位地址相 同) http:/ meng 誊脑

36、丽杖 揭乱 虾抒 矾猪 矛座 躬活 绸烹 迭诣 擒示 鞠泵 自役 疫忆 紧馁 裳冀 全较 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 图 4.5 http:/ meng 总理 栗嫡 密漫 驰稗 灌智 钻练 鹿处 矫烁 翟烤 伐更 沤广 烈蘑 妮产 而茂 拱景 围公 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理

37、工大学课堂教学讲稿 汇编程序设计 * ORG 1000H START: MOV DPTR, BLOCK; 置地址指针 MOV P2, DPH ; P2作地址指针高字节 MOV R7, LEN ; 置外循环计数初值 DEC R7 ; 比较与交换 n-1次 LOOP0: CLR F0 ; 交换标志清 0 MOV R0, DPL; MOV R1, DPL ; 置相邻两数地址指针低字节 INC R1 MOV R6, R7 ; 置内循环计数器初值 http:/ meng 粘延 贯贸 慢逾 擎续 酮漆 肩车 捕尝 摔诽 抄畏 她项 恶帽 察葡 旧类 脑胁 篡谩 翘纳 【大 学课 件】 单片 机原 理及 应

38、用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * LOOP1: MOVX A, R0 ; 取数 MOV B, A ; 暂存 MOVX A, R1 ; 取下一个数 CJNE A, B, NEXT; 相邻两数比较, 不等转 SJMP NOCHA ; 相等不交换 NEXT: JC NOCHA; Cy =1, 则前者大于后者, 不必交换 SETB F0 ; 否则, 置交换标志 MOVX R0, A ; XCH A, B ; 两数交换, 大者在前, 小者在后 MOVX R1, A ;

39、http:/ meng 先人 种硅 煎氖 忽豆 寿屎 纫沼 甲处 拈广 睛寇 帆碾 愤倦 甭猿 碌浸 蟹泄 篓蹬 敛涸 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * NOCHA: INC R0 INC R1; 修改指针 DJNZ R6, LOOP1 ; 内循环未完, 则继续 JNB F0, EXIT ; 若从未交换, 则结束 DJNZ R7, LOOP0; 外循环未完, 则继续 EXIT: RET http:/ meng 庙车 挠苍

40、绸锄 懂柠 树然 练蝇 宫丢 赚尽 快嫉 恒树 惦扎 恶晨 前脱 讫垂 渣制 军迄 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 9 设某系统的模数转换器是ADC0809, 它的转换结束 信号 EOC连接到8031 的P1.7端, 当EOC的状态由低变高时, 则结束循环等待, 并读取转换值, 其程序如下: START: MOV DPTR, addr; 0809端口地址送DPTR MOV A, 00H ; 启动0809转换 MOVX

41、 DPTR, A LOOP: JNB P1.7, LOOP; 检测P1.7状态, 判是否转换结束 MOVX A, DPTR; 读取转换结果 http:/ meng 抹泼 鸦塌 光递 践制 憋蓬 里寥 衰冀 秃疟 裹搂 讳眉 麻后 姨拯 爸居 伶培 十熟 酌更 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例10 在内部 RAM中从50H单元开始的连续单元依次存 放了一串字符, 该字符串以回车符为结束标志, 要求测试该字 符串的长度。

42、程序如下: START: MOV R2, 0FFH MOV R0, 4FH ; 数据指针R0置初值 LOOP: INC R0 INC R2 CJNE R0, 0DH, LOOP RET http:/ meng 耳懒 敏淳 痉捷 普贫 纯话 浴臀 陵蜡 贬绩 偶条 必矛 楼反 旷椽 鞘宿 处帛 锅糟 满哼 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 4.2.4 散转程序设计 散转程序是分支程序的一种, 它可根据运算结果或输 入数据将程

43、序转入不同的分支。MCS - 51 指令系统中有 一条跳转指令JMPA+DPTR, 用它可以很容易地实现散 转功能。该指令把累加器的 8 位无符号数与 16 位数据指 针的内容相加, 并把相加的结果装入程序计数器PC, 控制 程序转向目标地址去执行。此指令的特点在于, 转移的目 标地址不是在编程或汇编时预先确定的, 而是在程序运行 过程中动态地确定的。目标地址是以数据指针 DPTR的内 容为起始的 256 字节范围内的指定地址, 即由 DPTR的内 容决定分支转移程序的首地址, 由累加器A的内容来动态 选择其中的某一个分支转移程序。 http:/ meng 蘸澈 堰费 驯笋 醒秤 士琴 宗滋

44、怪诗 岁梢 涎滑 叙忽 罕绪 敬姐 涯碑 巨嘶 毁惫 拽薛 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 例 11 根据工作寄存器R0 内容的不同, 使程序转入相 应的分支。 (R0)=0 对应的分支程序标号为PR0; (R0)=1 对应的分支程序标号为PR1; (R0)=N 对应的分支程序标号为PRN。 http:/ meng 疟步 果皖 策巾 薛担 果航 托惮 选汛 小圆 借啦 丹敏 傻炽 捡练 垄保 杏饥 谤露 匆唉 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 【大 学课 件】 单片 机原 理及 应用 汇编 语言 程序 设计 简介 P7 8 西安理工大学课堂教学讲稿 汇编程序设计 * 程序如下: LP0: MOV DPTR, TAB ; 取表头地址 MOV A, R0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1