如何解决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 举报,一经查实,本站将立刻删除。