인프런 커뮤니티 질문&답변

fashion0526님의 프로필 이미지
fashion0526

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

반복문

반복문 질문있습니다

작성

·

147

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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

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

0

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

fashion0526님의 프로필 이미지
fashion0526

작성한 질문수

질문하기