展开全部
答案毫无疑问是错的
如果从这个答案来看,这个程序是想把43H这一字节的数据从高位到地位,每位的值(0或1)转换成ASCII编码的'0'或'1'存到BUF里。
错在什么地方呢,AND AL,80H,会把检测的结果留在AL的最高位,因此,结果是80H或00H,而不是01H或者00H。
下面一句ADD AL,30H是将数字01转换成ASCII码'0'、'1',没问题。但是如果照上面的错误,BUF里存的结果不是'1'、'0'两种ASCII码,而是0xB0和ASCII码的'0'。
如果上面错误改了,接下来还有一个错误,循环体内总共执行了8次,而循环第一次,43H就左移了一位,最高位的0已经被移出了,循环到最后左移了8次,全部位都被移出,因此,AND AL,80H这句所检测到的位其实是10000110。因此这里如果还不改,结果也该是"10000110"
如果从这个答案来看,这个程序是想把43H这一字节的数据从高位到地位,每位的值(0或1)转换成ASCII编码的'0'或'1'存到BUF里。
错在什么地方呢,AND AL,80H,会把检测的结果留在AL的最高位,因此,结果是80H或00H,而不是01H或者00H。
下面一句ADD AL,30H是将数字01转换成ASCII码'0'、'1',没问题。但是如果照上面的错误,BUF里存的结果不是'1'、'0'两种ASCII码,而是0xB0和ASCII码的'0'。
如果上面错误改了,接下来还有一个错误,循环体内总共执行了8次,而循环第一次,43H就左移了一位,最高位的0已经被移出了,循环到最后左移了8次,全部位都被移出,因此,AND AL,80H这句所检测到的位其实是10000110。因此这里如果还不改,结果也该是"10000110"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询