• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

반복문 질문있습니다

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이 되지 않나요..?

왜 답이 음수가 나오는지 모르겠습니다 ㅠ

답변 2

·

답변을 작성해보세요.

3

al (1바이트)를 결과 연산에 사용하시는데,
signed int8은 (-127~128)의 범위라서 그 범위를 초과하면
엉뚱한 결과가 나올 수 있습니다.

저 부분은 C++도 완전히 동일합니다.

0

황경훈님의 프로필

황경훈

2022.07.07

앗 저도 eax ebx 로 하면 잘되다가 al bl로 해보니깐 안됐는데, 그런 이유였군요 ㅋㅋ!