第4章 汇语言程序设计2.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章 汇编语言程序设计 §4.1 汇编语言程序设计基础 1. 汇编语言 DATA(赋值)伪指令: 格式: 字符名 DATA 表达式 ORG(起始汇编)伪指令 : 格式:ORG 表达式 功能:把以下语句定义的内存数据或程序,从表达式指定的起点(偏移地址)开始连续存放,直至遇到新的ORG指令。表达式值是一个无符号数 BIT(位地址赋值)伪指令: 格式:字符名 BIT 位地址 功能:将位地址赋予BIT前面的字符名,经赋值后可用该字符名代替BIT后面的位地址 1. 顺序结构程序设计 特点:执行程序的方式是“从头到尾”逐条执行指令语句,直至程序结束 例4-2:将60H单元中的8位无符号数转换成三位BCD码,并存放在BAI(百位)、SHI(十位)和GE(个位)三个单元中 例4-3:将两个三字节无符号数相加,其中一个加数在内部RAM的32H、31H和30H单元;另一个加数在内部RAM的35H、34H和33H单元,要求相加后的和存入32H、31H和30H单元,进位存入位寻址区的20H单元中 例10-24:16位数求补。已知16位二进制数在R1、R0中,将此16位二进制数求补,求补结果存入内部RAM 31H、30H单元 2. 分支结构程序设计 利用条件转移指令,使程序执行到某一指令后,根据条件(即上面运算的情况)是否满足,改变程序执行的次序 例10-25:求单字节有符号二进制数的补码 例10-26:已知VAR单元中有一自变量X,请按如下条件编出求函数值Z并将它存入FUN单元的程序 方法一:先分支后赋值 ORG 2000H VAR DATA 40H FUN DATA 41H START:MOV A,VAR ;自变量X→A CJNE A,#0,NEQ ;若X≠0,则转NEQ SJMP SAVE NEQ: JNB ACC.7,ZHEN ;若X0,则转ZHEN MOV A,#0FFH ;若X0,则A←-1 SJMP SAVE ZHEN:MOV A,#01H ;A←1 SAVE:MOV FUN,A ;存数 SJMP $ END 方法二:先赋值后分支 例10-27:两个带符号数分别存于ONE和TWO单元,试编程比较大小,并将大的数存入MAX单元 分析:两个带符号数的比较可将两数相减后的正负和溢出标志结合在一起判断 1)若X-Y为正,则 OV=0,XY OV=1,XY 2)若X-Y为负,则 OV=0,XY OV=1,XY 程序: ORG 2000H ONE DATA 30H TWO DATA 31H MAX DATA 32H CLR C ;Cy清零 MOV A,ONE ;X送A SUBB A,TWO ;X-Y形成OV标志 JZ XMAX ;若X=Y,则SAVE JB ACC.7,NEG ;若X-Y为负,则转NEG JB OV,YMAX ;若X-Y0,OV=1,则YX SJMP XMAX ;若X-Y0,OV=0,则XY NEG: JB OV,XMAX ;X-Y0,OV=1,XY YMAX:MOV A,TWO ;YX SJMP SAVE XMAX:MOV A,ONE ;XY SAVE: MOV MAX,A ;送较大值至MAX SJMP $ END 例10-28:设计可多达128路分支出口的转移程序 分析:设128个出口分别转向128段小程序,它们的首地址依次为addr00、addr01、addr02、addr03、…、addr7F。要转移到某分支的信息存放在工作寄存器R2中,则散转程序: 3. 循环结构程序 例10-29:已知内部RAM的ADDR1单元开始有一无符号数据块,块长在LEN单元,请编出求数据块中各数累加和并存于外部RAM的SUM1单元的程序 (注:和不超过256) 方法一:先判断后处理 方法二:先处理后判断 例10-30:已知内部RAM ADDR1为起始地址的数据块内部数据是无符号数,块长在LEN单元内,请编程求出数据块中的最大值并存入MAX单元 4. 查表结构程序 查表程序是根据查表算法设计的 功能:可以完成数据补偿,计算和转换等功能 用途:解决通过计算才能解决的问题 例10-31:求函数Y=X!(X=0,…,7)的值。设自变量存放在ADDR1单元,表头的地址为TAB1,Y值为双字节存放在寄存器R2R3中,R

文档评论(0)

书是爱的奉献 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档