微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pep9 while循环

如何解决Pep9 while循环

假定pep9汇编代码在while循环中不断提示用户输入字母,如果它不等于P,G,J或L。但是,我得到了错误输出

         BR      main,i

msg1: .ASCII "\nInvalid character,try again {P,J,G,L}\n"
ch1:  .BLOCK 1 ; First name P,L


main: CALL first,i ; firstname 

    
STOP


; First name 
first:     LDBA charIn,d ;scanf("%c",ch1)
           STBA ch1,d  

loop1:     LDBA  ch1,d
           CPBA  'P',i 
           BREQ  done1

           CPBA  'J',i 
           BREQ  done1
 
           CPBA  'G',i 
           BREQ  done1

           CPBA  'L',i 
           BREQ  done1

           STRO  msg1,d
 
           LDBA  charIn,ch1)
           STBA  ch1,d
           BR    loop1,i 

  
done1:     RET 


          .end 

我得到的输出

Invalid character,L}
g
Invalid character,L}


Invalid character,L}
W
Invalid character,L}

但是,我想要的输出是:

Invalid character,L}
Invalid character,L}

用户输入:

g
W
G

解决方法

您的字符串没有终止,因此它将继续打印超出字符串(期望的结尾)的位置,并且字符串首先经过变量FROM node:lts-alpine WORKDIR /app COPY static static COPY emails emails COPY package.json . ENV NODE_ENV production RUN npm install COPY __sapper__/build __sapper__/build EXPOSE 3000 CMD ["node","__sapper__/build/index.js"] ,以便在换行符之后输出。

要终止字符串,请以ch1(十六进制的nul字符)结尾。

\x00

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。