2009年国家公务员考试申论冲刺完全指南

查看完整版本: 存储单元传递参数

139139139 2007-11-3 15:06

存储单元传递参数

 在调用子程序时,当需要向子程序传递大量数据时,因受到寄存器容量的限制,就不能采用寄存器传递参数的方式,而要改用约定存储单元的传送方式。这种参数传递方式有点象情报人员和联络人员之间的传递信息方式,一个向指定地点放情报,另一个从指定地点取情报。&nbsp; <br/><br/>  例7.2是采用约定存储单元传递参数的例子,所处理的数据不是直接传给子程序,而是把存储它们的地址告诉子程序。<br/>&nbsp;&nbsp; <br/>  例7.4:编写一个子程序分类统计出一个字符串中数字字符、字母和其它字符的个数。该字符串的首地址用DS:DX来指定(以0为字符串结束),各类字符个数分别存放BX、CX和DI中。&nbsp;<br/><br/>  解:&nbsp; <br/>  ;子程序功能:分类统计出字符串中数字字符、字母和其它字符的个数&nbsp; <br/><br/>  ;入口参数:DS:DX指向被统计的字符串&nbsp; <br/><br/>  ;出口参数:BX、CX和DI分别保存数字字符、字母和其它字符的个数&nbsp; <br/><br/>  ;算法描述:1、当字符在’0’~’9’范围时,数字字符个数BX加1;&nbsp; <br/><br/>  2、为了判断简单,先把字字母变成大写字母;&nbsp;<br/><br/>  3、当字符在’A’~’Z’范围时,字母个数CX加1;&nbsp; <br/><br/>  4、否则,其它字符个数DI加1。&nbsp; <br/><br/>  COUNTPROC&nbsp; <br/>  PUSHAX&nbsp; <br/>  PUSHSI&nbsp; <br/>  XORBX,&nbsp;BX&nbsp; <br/>  XORCX,&nbsp;CX&nbsp; <br/>  XORDI,&nbsp;DI;上三条指令使各类字符计数清零&nbsp; <br/>  MOVSI,&nbsp;DX&nbsp; <br/>  again:MOVAL,&nbsp;[SI]&nbsp; <br/>  INCSI&nbsp; <br/>  CMPAL,&nbsp;0&nbsp; <br/>  JEover&nbsp; <br/>  CMPAL,&nbsp;’0’&nbsp; <br/>  JLother&nbsp; <br/>  CMPAL,&nbsp;’9’&nbsp; <br/>  JGnext&nbsp; <br/>  INCBX;数字字符个数加1&nbsp; <br/>  JMPagain&nbsp; <br/>  next:CALLUPPER;调用子程序把AL中的字母变成大写字母&nbsp; <br/>  CMPAL,&nbsp;’A’&nbsp; <br/>  JLother&nbsp; <br/>  CMPAL,&nbsp;’Z’&nbsp; <br/>  JGother&nbsp; <br/>  INCCX;字母个数加1&nbsp; <br/>  JMPagain&nbsp; <br/>  other:INCDI;其它字符个数加1&nbsp; <br/>  JMPagain&nbsp; <br/>  over:POPSI&nbsp; <br/>  POPAX&nbsp; <br/>  RET&nbsp; <br/>  COUNTENDP&nbsp; <br/><br/>  例7.5&nbsp;显示出任意字符串中数字字符、字母和其它字符的个数。&nbsp; <br/>  解:&nbsp; <br/>  .MODELSMALL&nbsp; <br/>  .DATA&nbsp; <br/>  MSGDB ’KSDJ&nbsp;L0984/[]3oiu&nbsp;OIU&nbsp;OIU&nbsp;(*&amp;(5341’,&nbsp;0&nbsp; <br/>  .CODE&nbsp; <br/>  .STARTUP&nbsp; <br/>  LEADX,&nbsp;MSG;DS:DX指向待统计的字符串&nbsp; <br/>  CALLCOUNT;调用子程序统计出各类字符的个数&nbsp; <br/>  CALLDISPBX;调用子程序显示数字字符的个数&nbsp; <br/>  MOVBX,&nbsp;CX&nbsp; <br/>  CALLDISPBX&nbsp;;调用子程序显示字母的个数&nbsp; <br/>  MOVBX,&nbsp;DI&nbsp; <br/>  CALLDISPBX;调用子程序显示其它字符的个数&nbsp; <br/>  .EXIT 0&nbsp; <br/>  END
页: [1]
查看完整版本: 存储单元传递参数