一小段程序不明白,请帮助解惑..

helanshan 2007-10-18 08:58:12
初学,第一次提问..解决后马上给分..先谢谢!!
这段求字符串长度的程序,在调用子程序时,传给string 的是不是地址啊?
.DATA
 buff DB "This is a example.", 0
.CODE
Strlen PROC USES AX BX, String:PTR BYTE
MOV BX, String ;要是string保存的是字符串的地址,那BX怎么实现下面的加1运算
XOR CX, CX
MOV AL, [BX]
.WHILE AL!=0
INC CX
INC BX ;这里的加1怎么理解?
MOV AL, [BX]
.ENDW
RET
Strlen ENDP
.STARTUP
INVOKE Strlen, ADDR buff ;调用子程序,我觉得应该传的是地址.
.EXIT 0
END
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2007-10-19
  • 打赏
  • 举报
回复
//那么string中是字符串的地址还是字符串啊?

Strlen PROC USES AX BX, String:PTR BYTE

你自己定义了:指向 byte 的地址
helanshan 2007-10-18
  • 打赏
  • 举报
回复
是不是拷贝地址的空间给string?
helanshan 2007-10-18
  • 打赏
  • 举报
回复
那么string中是字符串的地址还是字符串啊?
evileagle 2007-10-18
  • 打赏
  • 举报
回复
+1表示取内存中下一个地址里的字符,然后判断是否为0
大熊猫侯佩 2007-10-18
  • 打赏
  • 举报
回复
// INC BX ;这里的加1怎么理解?

指向string的地址+1

// INVOKE Strlen, ADDR buff ;调用子程序,我觉得应该传的是地址.

yes

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧