清楚缓冲区的内容
我定义了一个缓冲区bufc
bufc db 20
db ?
db 20 dup(?)
用以存放自己输入的字符串
现在我想清空这个缓冲区的字符串,我该怎么做啊?
问题点数:20、回复次数:11Top
1 楼zara(Kyrie eleison)回复于 2006-05-01 09:06:59 得分 0
mov ax, seg bufc
mov es, ax
mov di, offset bufc[1]
mov cx, 21
mov al, 0
cld
rep stosb ; b -> b 好像是敏感词Top
2 楼fox1999(红狐)回复于 2006-05-04 11:24:16 得分 0
是 S_B 是敏感词Top
3 楼bigfIyingpig(大飞猪| 去年的西雅图不眠夜又快到了)回复于 2006-05-05 08:52:35 得分 0
哦Top
4 楼l_john2000()回复于 2006-05-07 11:56:58 得分 0
cld
rep stosb
是什么意思?Top
5 楼ChrisAK(LOLICON)回复于 2006-05-07 13:16:18 得分 0
cld -->清DF
rep XXX -->串指令Top
6 楼l_john2000()回复于 2006-05-07 13:42:02 得分 0
上述代码中并没有出现df
为什么要清楚df???Top
7 楼zara(Kyrie eleison)回复于 2006-05-07 14:35:34 得分 0
串操作指令, movs/scas/stos, 是有方向性的, 即可以沿指定的地址增长方向也可以是反向进行, 所以在这样的指令之前一般都用 cld/std 指令来明确一下. 可以看看这类指令的说明Top
8 楼fhb13(游途道标)回复于 2006-05-07 14:40:28 得分 0
df是标志寄存器的一个问,串操作指令根据这个判断对地址操作是向上递增还是向下递减.Top
9 楼fhb13(游途道标)回复于 2006-05-07 14:46:08 得分 0
rep stosb
具体说明如下
for (cx=21,cx,--cx)
{
if df;
{
mov byte ptr [di],al;
di--;
}
else
{
mov byte ptr [di],al;
di++;
}
}Top
10 楼CoderScalper(水园蛋蛋)回复于 2006-05-08 22:54:20 得分 0
帮你顶上去,接分
我的签名档:
中国功夫网——中国武术民间新生派
让我们一起来保护和发扬这一古老传统文化吧
http://www.chinesekungfu.org
Top
11 楼l_john2000()回复于 2006-05-11 14:38:33 得分 0
谢谢各位了阿Top




