您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 一级辅导 >> 正文    
  存储单元传递参数 【注册男护士专用博客】          

存储单元传递参数

www.nanhushi.com     佚名   不详 

  在调用子程序时,当需要向子程序传递大量数据时,因受到寄存器容量的限制,就不能采用寄存器传递参数的方式,而要改用约定存储单元的传送方式。这种参数传递方式有点象情报人员和联络人员之间的传递信息方式,一个向指定地点放情报,另一个从指定地点取情报。 

  例7.2是采用约定存储单元传递参数的例子,所处理的数据不是直接传给子程序,而是把存储它们的地址告诉子程序。
  
  例7.4:编写一个子程序分类统计出一个字符串中数字字符、字母和其它字符的个数。该字符串的首地址用DS:DX来指定(以0为字符串结束),各类字符个数分别存放BX、CX和DI中。 

  解: 
  ;子程序功能:分类统计出字符串中数字字符、字母和其它字符的个数 

  ;入口参数:DS:DX指向被统计的字符串 

  ;出口参数:BX、CX和DI分别保存数字字符、字母和其它字符的个数 

  ;算法描述:1、当字符在’0’~’9’范围时,数字字符个数BX加1; 

  2、为了判断简单,先把字字母变成大写字母; 

  3、当字符在’A’~’Z’范围时,字母个数CX加1; 

  4、否则,其它字符个数DI加1。 

  COUNTPROC 
  PUSHAX 
  PUSHSI 
  XORBX, BX 
  XORCX, CX 
  XORDI, DI;上三条指令使各类字符计数清零 
  MOVSI, DX 
  again:MOVAL, [SI] 
  INCSI 
  CMPAL, 0 
  JEover 
  CMPAL, ’0’ 
  JLother 
  CMPAL, ’9’ 
  JGnext 
  INCBX;数字字符个数加1 
  JMPagain 
  next:CALLUPPER;调用子程序把AL中的字母变成大写字母 
  CMPAL, ’A’ 
  JLother 
  CMPAL, ’Z’ 
  JGother 
  INCCX;字母个数加1 
  JMPagain 
  other:INCDI;其它字符个数加1 
  JMPagain 
  over:POPSI 
  POPAX 
  RET 
  COUNTENDP 

  例7.5 显示出任意字符串中数字字符、字母和其它字符的个数。 
  解: 
  .MODELSMALL 
  .DATA 
  MSGDB ’KSDJ L0984/[]3oiu OIU OIU (*&(5341’, 0 
  .CODE 
  .STARTUP 
  LEADX, MSG;DS:DX指向待统计的字符串 
  CALLCOUNT;调用子程序统计出各类字符的个数 
  CALLDISPBX;调用子程序显示数字字符的个数 
  MOVBX, CX 
  CALLDISPBX ;调用子程序显示字母的个数 
  MOVBX, DI 
  CALLDISPBX;调用子程序显示其它字符的个数 
  .EXIT 0 
  END

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    2011年护士资格考试:考…
    2009年初级护士资格考试…
    2009年主管护师考试于12…
    2009年初级护士考试于12…
    2009年初级护师考试于12…
    石家庄市关于2009年度护…
    2009年护士专业技术资格…
    医护技能考试周末举行 4…
    护士“托福”今年7月开考
    护士“托福”考试开始报…
    专 题 栏 目