3.5 程序设计 高级汇编技术 待修改课件.pptVIP

3.5 程序设计 高级汇编技术 待修改课件.ppt

  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文档。上传文档
查看更多
3.5 程序设计 高级汇编技术 待修改课件

3.5 汇编语言程序设计 ;*;*;*;*;*; 【例 】已知在内存中有一个字节单元X,存有带符号数据,要求计算出它的绝对值后,放入RESULT单元中。 分析:根据数学中绝对值的概念知道,一个正数的绝对值是它本身,而一个负数的绝对值是它的相反数;要计算一个数的相反数,需要完成减法运算,即用0减去这个数。8086指令系统中有专门的求相反数的指令NEG。 源程序设计如下:; DATA SEGMENT X DB -25 ;定义变量 RESULT DB ? ;定义结果保存单元 DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX ;初始化DS MOV AL,X ;X取到AL中 TEST AL,80H ;测试AL正负 JZ NEXT ;为正,转NEXT NEG AL ;否则AL求补 NEXT: MOV RESULT,AL ;送结果 MOV AH,4CH INT 21H ;返回DOS CODE ENDS END START ;汇编结束;*;*; 【例】设计一个程序,统计在内存W单元保存的无符号字变量中有多少个二进制“1”,统计结果送内存N单元保存。 分析:要统计内存W单元保存的无符号字变量中有多少个二进制“1”,可以将该数据送寄存器AX中,通过移位指令将AX中的每一位依次移入进位标志CF中,若CF=1则计数器CL的值加1,这样就可以统计出AX中1的个数。 设计源程序如下:。 ;DATA SEGMENT W DW 00FFH ;定义字数据 N DB ? ;定义结果保存单元 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA ;初始化DS MOV DS,AX MOV CL,0 ;计数器清零 MOV AX,W ;取数到AX AA:AND AX,AX ;逻辑与,判AX=0? JZ CC ;结果为0转移到CC SHL AX,1 ;逻辑左移1位 JNC BB ;无进位转BB INC CL ;有“1”则计数 BB:JMP AA ;无条件转AA CC:MOV N,CL ;结果送N单元 MOV AH,4CH ;返回DOS INT 21H CODE ENDS END START ;汇编结束 ;*;*;*;*;*;*; 【例】数据段中有一组带符号数据,存放在从A单元开始的区域中,试编程序实现将它们按从小到大的顺序排序。要求排序后依然放在原来的存储区中。 我们采用冒泡法来设计该程序。 从第一个数开始依次对两两相邻的两个数进行比较,如果次序符合要求(即第i个数小于第i+1个数),不做任何操作;否则两数交换位置。这样经过第一轮的两两比较(N-1次),最大数放到了最后。第二轮对前N-1个数做上面的工作,则把次大数放到了倒数第二个单元……依次类推,做N-1轮同样的操作,就完成了从小到大排序。 通过上述分析可以知道,该算法要用双重循环实现。外循环次数为N-1次,内循环次数分别为N-1次、N-2次、N-3次……2次、1次。所以内循环的循环次数和外循环的计数器值有关,即等于外循环计数器的值。 ;*;*;*;*;从本例可以看出子程序的基本结构包括以下几个部分: (1)子程序说明:用来说明子程序的名称、功能、入口参数、出口参数、占用工作单元的情况,明确该子程序的功能和调用方法。 (2)现场保护及恢复:由于汇编语言所处理的对象主要是CPU寄存器或内存单元,主程序在调用子程序时已经占用了一定的寄存器,子程序执行时又要用到这些寄存器,执行完毕返回主程序后,为了保证主程序按原有的状态继续正常执行,需要对这些寄存器的内容加以保护,这就是保护现场;子程序执行完毕后再

文档评论(0)

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

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

1亿VIP精品文档

相关文档