| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:[求助]堆栈法传递参数
只看楼主 加入收藏
xxygdufs
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-11
收藏
 问题点数:0 回复次数:1 
[求助]堆栈法传递参数

编写一个子程序统计数据段中字符串中字母‘b’的个数,并编写主程序用近调用的方法调用子程序.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数).

程序如下  但不能正确输出结果,请各位大侠帮帮忙
DATA SEGMENT
TABLE DB 'BDADKFBALSB'
N EQU $-TABLE
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX

LEA SI,TABLE
PUSH SI
MOV CX,N
PUSH CX
MOV AX,'B'
PUSH AX
CALL COUNT
POP DX
ADD DL,30H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H

COUNT PROC NEAR
MOV BP,SP
MOV BL,0
MOV AX,[BP+2]
MOV CX,[BP+4]
MOV SI,[BP+6]
MOV DL,[SI]
LOP: CMP AL,DL
JZ COUNT1
JMP NEXT

COUNT1:INC BL
NEXT: INC SI
LOOP LOP
MOV [BP+2],BL
RET
COUNT ENDP

CODE ENDS
END START

搜索更多相关主题的帖子: 堆栈 参数 
2006-05-22 22:05
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
收藏
得分:0 
以下是引用xxygdufs在2006-5-22 22:05:00的发言:

编写一个子程序统计数据段中字符串中字母‘b’的个数,并编写主程序用近调用的方法调用子程序.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数).

程序如下  但不能正确输出结果,请各位大侠帮帮忙
DATA SEGMENT
TABLE DB 'BDADKFBALSB'
N EQU $-TABLE
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX

LEA SI,TABLE
PUSH SI
MOV CX,N
PUSH CX
MOV AX,'B'
PUSH AX
CALL COUNT
POP DX ;覆盖了下面的DL
ADD DL,30H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H

COUNT PROC NEAR
MOV BP,SP
MOV BL,0
MOV AX,[BP+2]
MOV CX,[BP+4]
MOV SI,[BP+6]
MOV DL,[SI]
LOP: CMP AL,DL
JZ COUNT1
JMP NEXT

COUNT1:INC BL
NEXT: INC SI
LOOP LOP
MOV [BP+2],BL
RET
COUNT ENDP

CODE ENDS
END START


喜欢宁静的平凡生活
2006-05-24 22:30
快速回复:[求助]堆栈法传递参数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014486 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved