首先,你会先定义一个变量,例如char a;那么这句话对应的汇编就是在数据段定义一个变量,并且给出类型a word;C里面的内存是随机分配的,而汇编里面和数据段起始位置有关。然后,C这句相当于汇编一下几句offset dx,a;取地址相当于&a这段mov ah,09;接着调用系统函数int 21h;当然,实际计算机不一定是这样的,这里只是举个例子
首先scanf("%s",data),data[0]-'E'是一个逗号表达式它的返回值是最后一个表达式的返回值,即data[0]-'E'data[0]是这个字符串的第一位,char型实际上就是范围小的整形,里面存的是ASCII码,'E'是69,所以当data[0]里存的ASCII码是69是,返回值是0,循环结束,也就是说第一位是'E'时循环结束所以最终效果是读到首字母是'E'的字符串时(读取字符串时会忽略前面的空格),循环结束