[工学]第三章程序设计.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第三章程序设计

4-1 汇编程序的约定 汇编程序:能将汇编语言的源程序转换成机器语言的目标程序的一种系统软件 汇编的主要任务: 1)确定程序中每条汇编语言指令的指令机器码 2)确定每条指令在存储器中的存放地址 3. 宏指令 用机器汇编要考虑汇编程序的约定 二.伪指令 常用伪指令及功能: 1. ORG—起始地址指令。定义程序或数据的起始地址 指令地址 机器码 源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,@R0 … 4. EQU —等值指令。为标号或标识符赋值 X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ADD A,#X2 5. END —结束汇编指令 例:START: … … END START 4-2 汇编语言程序设计步骤 一.确定方案和计算方法 二.了解应用系统的硬件配置、性能指标 三.建立系统数学模型,确定控制算法和操作步骤 四.合理分配存储器单元和了解I/O接口地址 常用程序结构 直线程序、分支程序、循环程序、子程序 4-3 直线程序 直线程序(简单程序),程序走向只有一条路径 例4-3-4 压缩式BCD码分解成为单字节 BCD码(拆字) MOV R0,#40H ;设指针 MOV A,@R0 ;取一个字节 MOV R2,A ;暂存 ANL A,#0FH ;清0高半字节 INC R0 MOV @R0,A ;保存数据个位 每10kg为1个计价单位G已存入40H单元。行李运费计算: 当G≤5,M=G×3 ; 当G>5,M=G×3 + (G-5)×(5-3) FRT: MOV A,40H ;取行李重量计价单位G MOV R3,A MOV B,#03H ;运费M=G×3 MUL AB MOV R2,A ;暂存3G 4-4-3 多重分支程序 一.多次使用条件转移指令,形成两个以上判断框 例 求符号函数 Y= SGN(X) +1 当 X 0 SGN(X) = 0 当 X=0 -1 当 X 0 二.按分支号X转移: 当 X=0,程序转移到 ADDR0处; 当 X=1,程序转移到 ADDR1处; … (2)转移表法 分支转移指令JMP @A+DPTR MTJS:MOV DPTR,#TAB ;指向表首 MOV A,R7 ;X 高字节×3 MOV B,#03H MUL AB ;DPH←乘积+DPH ADD A,DPH MOV DPH,A 4-5 循环程序 包含多次重复执行的程序段,循环结构使程序紧凑 4-5-1 循环程序的构成 4-5-2 单重循环 简单循环结构:循环体中不套循环 例:求n个单字节数据的累加,设数据串已在43H起始单元,数据串长度在42H单元,且累加和不超过2个字节 循环控制方法:计数控制、特征控制 一.计数控制 设循环计数器,控制循环次数,有正计数和倒计数两种方式 例:为一串7位ASCII码加奇校验(D7=0),设ASCII码数据串已存放在片外RAM的2101H起始单元,数据长度在2100H单元 二.特征控制:设定循环结束标志实现循环控制 例:找正数表中的最小值,设正数表已存放在片外RAM中以LIST为起始单元,用-1作为结束标志 4-5-3 多重循环 循环体中套循环结构。以双重循环使用较多 例 将内存中单字节无符号数串升序排序 双重循环,每次取相邻两个单元的数据比较,决定是否需要交换数据位置 冒泡排序法步骤: SORT: MOV A,#N-1 ;N个数据排序 MOV R4,A ;外循环次数 LOOP1:MOV A,R4 MOV R3,A ;内循环次数 MOV R0,#TAB ;设数据指针 LOOP2:MOV B,@R0 ;取相邻单元数据 INC R0 MOV A,@R0 CJNE A,B,L1 ;比较 L1:JNC UNEX ;A≥B,不交换 DEC R0 ;相邻单元交换 XCH A ,@R0 INC R0

文档评论(0)

ipbohn97 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档