l,[si]loopmylab0jmpdata_goodchar_not_ok:movchar_flag,1jmpexit2.3.2处理a、b、c的键盘输入在键盘输入a、b、c时,会有不同的结果,首先,要输入a的值,有三种情况:(1)a=0时,因为本题只是考虑二次方程,则a=0时不做定义,也就是在a=0时要重新输入a的值,输出定义为:theequationisnotillegal!(2)-128<=a<=127时,则为正确的a值输入,正常操作下面的程序。《微机原理与接口技术》课程设计说明书7(3)当a不是以上两种情况是,也就是a的输入不符合数据段定义的要求,比如带字母,特护符号等,则要重新输入a的值,并显示:inputdigital!下面讨论b、c的输入,b、c的输入是规则是相同的,也相同于a的输入,只是在0值时不做特殊讨论。a、b、c的键盘输入定义在数据段已经定义,下面要做的就是判断a、b、c输入值的范围,判断范围的程序如下:cmpax,-128jldata_overcmpax,127jgdata_overmovover_flag,0jmpfinishdata_over:movover_flag,1finish:ret2.3.3对a、b、c输入的数进行处理对a、b、c输入的数进行处理,因为a、b、c的字符输入在缓存中,要一个一个的判断,输入的字符的ASCII码是不是在“1”与“9”之间,如果在,则继续循环判断,如果不是,则重新输入,判断结果是在一个整的字符全部输入完成后来判断的,比如a的字符全部输入完全,如果输入的字符符合条件,但是为负数,在汇编语言中,负数要用它的补码来进行计算,如果为整数则直接储存,指令如下:data_good:leadx,buff1leasi,buff1movcl,[bx+1];取输入数据串中字符个数addsi,2moval,[si]xorax,ax