碰到小问题了,各位帮帮忙啊!

backspray 2004-09-05 02:39:56
这是定义内容:
sfile db 128
db ?
db 128 dup (0) :字符串,用于存储文件地址
…………
代码段一:
mov dx, offset sfile
mov ah,0ah
int 21h
…………;其他代码
…………
代码段二:
mov dx,offset sfile。
inc dx
inc dx ;调整指针使他指向字符串缓冲区第三个字节内容,即指向首个字符串
mov ah,0ah
int 21h
…………
…………;其他代码
-----------------
各位高手,在执行代码段二的时候打不开文件。。而我明明用(inc)调整指针指向字符串首地址了啊?
各位帮忙啊?
会不会是用offset这个不能使用两次啊。。
我用debug跟踪时执行到代码段二的
mov dx,offset sfile
时,总是把0值赋给dx。。。
各位帮帮忙。。
到底要用什么办法才能使代码段二的DX能指向字符串缓冲区中的第二个字节;
或者会不会使打开的方式有什么问题。。各位帮忙啊。。
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2004-09-06
  • 打赏
  • 举报
回复
这类问题用DEBUG之类的调试程序跟踪,观察指令的执行结果,就可以找到出错的地方,再分析就可以得到出错的原因.
大熊猫侯佩 2004-09-06
  • 打赏
  • 举报
回复
老问题了啊,你这样根本无法正确将字符串输入,你定义了max len=128
但你在每次输入中不可能输入128个字符吧!所以你一定要把剩下的做空格
(或 any char)处理!
比如说你输入了28个字符,剩下的128-28=100个字符全部要动态赋值!
clumsy 2004-09-05
  • 打赏
  • 举报
回复
你的第二段代码的 int21h 那里, 还是输入字符串的功能啊, 不是打开文件, 要么就是你写帖子时的笔误? 如果是的话, 那可能是你在第一段代码读入字符之后, 没有把字符串的结束字符 0dh (回车符) 替换成 "打开文件" 功能所要求的文件名的结束符 00h

21,459

社区成员

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

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