碰到小问题啦。。各位帮忙 啊!!!!!!!!

backspray 2004-08-23 03:27:55
8086汇编中:
键盘字符串输入语句
代码
MOV AH,0AH
INT 21H
其中,DX的地址已经设好了,可是每次都只是跳过。就好象根本没执行这些语句一样。
大家知道为什么吗?



...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2004-08-23
  • 打赏
  • 举报
回复
我上面说得很清楚了啊!呵呵!再说!!

你将
desg segment
buf1 db 126 dup (?)
desg end

改为
desg segment

strpar label byte
maxstr byte 127 (最大126个字符外加一个回车符)
strlen byte ? (实际输入的字符数)
strfld byte 127 dup(?)

desg end

然后改这里:

mov dx,offset buf1 ----〉改为:mov dx,offset strpar

最后你输入的字符实际放在 strfld 中

backspray 2004-08-23
  • 打赏
  • 举报
回复
部分代码:
desg segment
buf1 db 126 dup (?)
desg end

code segment
assume cs:code,ds:desg
start:
mov ax,desg
mov ds,ax
……
……
mov dx,offset buf1
mov ah,0ah
int 21h
……
……
code ends
end start
-------------------------------------
这部分代码:
mov dx,offset buf1
mov ah,0ah
int 21h
象是被跳过去,,不知道为什么。想了好久想不出来。。帮忙啊。。。各位。。
mydo(坎道斯) ( )
你能说的具体一点吗?我上面的那些要加些什么才不会被跳过。。谢谢拉。。
大熊猫侯佩 2004-08-23
  • 打赏
  • 举报
回复
更正
楼上的 最大输入自符数 设置了么?如果没有那系统会默认输入0字符
那自然跳过了哦!

是 最大输入字符数

楼主莫怪! ^O^
大熊猫侯佩 2004-08-23
  • 打赏
  • 举报
回复
楼上的 最大输入自符数 设置了么?如果没有那系统会默认输入0字符
那自然跳过了哦!

strpar label byte
maxstr byte 21 (最大20个字符外加一个回车符)
strlen byte ? (实际输入的字符数)
strfld byte 21 dup(?)

这样你输入的字符放在 strfld 中!







dunkel 2004-08-23
  • 打赏
  • 举报
回复
DS:DX 指向的地方的数据设置不对, 象是表示缓冲区大小的第一个字节的值是 00 ?

21,459

社区成员

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

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