| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:哪位解释下为什么这个 [BP].STRSEG 就是字符串首地址的段值
只看楼主 加入收藏
oicq
Rank: 1
等 级:新手上路
帖 子:34
专家分:1
注 册:2010-9-22
结帖率:85.71%
收藏
 问题点数:0 回复次数:0 
哪位解释下为什么这个 [BP].STRSEG 就是字符串首地址的段值
写一个字符串长度的子程序。

子程序的调用说明如下:

;子程序名:STRLEN
;功能:测字符串长度
;入口参数:字符串首地址的段值和偏移在堆栈顶
;出口参数:AX=字符串长度
;说明:(1)字符串以0结尾,字符串长度不包括结尾标志。
;(2)本过程是一个远过程
PRAM STRUC
BPREG DW ? ;对应BP寄存器保存单元
RETADR DD ? ;对应返回地址
STROFF DW ? ;对应入口参数中的偏移
STRSEG DW ? ;对应入口参数中的段值
PARM ENDS

STRLEN PROC FAR
PUSH BP
MOV BP;SP
PUSH DS
PUSH SI
MOV DS , [BP].STRSEG ;取字符串首地址的段值           哪位解释下为什么这个 [BP].STRSEG  就是字符串首地址的段值
MOV SI , [BP].STROFF ;取字符串首地址的偏移           哪位解释下为什么这个 [BP].STROFF  就是字符串首地址的偏移

STRLEN1:CMP BYTE PTR ;AL
JZ STRLEN2
INC SI
JMP STRLEN1
STRLEN2:MOV AX ,SI
SUB AX ,[BP].STROFF
POP SI
POP DS
POP BP
RET
STRLEN ENDP
搜索更多相关主题的帖子: STRSEG 字符 地址 解释 
2010-10-26 11:25
快速回复:哪位解释下为什么这个 [BP].STRSEG 就是字符串首地址的段值
数据加载中...
 
   



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

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