-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
반복문 질문있습니다
21.08.01 20:32 작성 조회수 90
1
1에서 100까지 합 구하는 프로그램 코드 한번만 봐주세요
mov al, 0
mov bl, 0
LABEL_SUM:
add bl, 1
add al, bl
cmp bl, 100
jne LABEL_SUM
PRINT_DEC 4, al
NEWLINE
이렇게 짰는데 Output이 -70 나와요..
bl이 0이고 계속 1씩 더해지면 1, 2, 3, ... 이렇게 될 것이고
al에 bl을 더하는데 al 초기값이 0이니까 1씩 더해진 bl을 더하면 1+2+3+ ... +100이 되지 않나요..?
왜 답이 음수가 나오는지 모르겠습니다 ㅠ
답변을 작성해보세요.
3
Rookiss
지식공유자2021.08.01
al (1바이트)를 결과 연산에 사용하시는데,
signed int8은 (-127~128)의 범위라서 그 범위를 초과하면
엉뚱한 결과가 나올 수 있습니다.
저 부분은 C++도 완전히 동일합니다.
0
답변 2