这是因为 scanf()的原因,它只是取出第一个 " " (空格) 前面的字符。(gets() 取出直到碰到 回车 )。
当你输入"a b c d" 然后回车时,scanf( "%s", string ) 只是把 "a" 取走,而" b c d"+ 回车 还留在标准输入输出的 缓存里, gets( string ) 就直接取出来,所以就不会等你输入了。
要不做下面测试:
#include
void main( void )
{
char str0[50];
char str1[50];
char str2[50];
printf( "input \"a b c d\"\n");
scanf( "%s", str0 );
scanf( "%s", str1 );
gets( str2 );
printf( "str0 : %s\n", str0 );
printf( "str1 : %s\n", str1 );
printf( "str2 : %s\n", str2 );
}
解决你的上面的方法太多了。。。就不再说了。
assume cs:code
........................
code segment
很明显,这里定义的是代码段。一般数据是放在DS段的。
这里的数据在CS段。所以指明段基址cs:[bx]。
这与“ds=0b20”没关系