해결된 질문
작성
·
199
1
답변 1
1
그렇다면 1번에서 변수 e를 resb 8로 선언해야 하는 상황과 resq 1로 선언해야 하는 상황에 차이가 있는지, 차이가 있다면 어떤 상황에 resb 8이라고 선언해야 하고 어떤 상황에서 resq 1이라고 선언해야 하는지 궁금합니다!
코딩이 처음이라면 이 부분은 나중에 차차 알게 되십니다.
C++로 치면 char 변수 8개 만드는거랑
long long 변수 1개를 만드는 정도의 차이입니다.
그리고 2번에서는 byte 0x0055나 word 0x66으로 작성하더라도 byte 0x0055에서는 데이터를 byte라 선언했기 때문에 0x55로 인식하고 word 0x66에서는 데이터를 word라 선언했기 때문에 0x0066으로 인식하게 되는 것인가요?
네 그렇습니다.
그리고 그렇기에 byte 0x5555로 바꾼 채 실행하게 되면 실행오류가 생기게 되는 것인지 궁금합니다!(어떻게 하더라도 1바이트 크기로 되는 게 불가능한 상황)
이런건 실험을 통해 학습 하시는게 좋습니다.
안될 것 같네요.
앗 3번째 항목은 이미 실험을 통해 실행오류가 나는 것을 확인한 상태에서, 오류의 원인이 2번째 항목에서 제가 이해한 내용과 동일한 것인지 여쭤보는 것이었는데
중의적으로 작성되어서 오해가 생겼던 것 같습니다;;
그래도 궁금했던 부분이 모두 해결된 것 같습니다 정말 감사합니다!
그렇다면 1번에서 변수 e를 resb 8로 선언해야 하는 상황과 resq 1로 선언해야 하는 상황에 차이가 있는지, 차이가 있다면 어떤 상황에 resb 8이라고 선언해야 하고 어떤 상황에서 resq 1이라고 선언해야 하는지 궁금합니다!
그리고 2번에서는 byte 0x0055나 word 0x66으로 작성하더라도 byte 0x0055에서는 데이터를 byte라 선언했기 때문에 0x55로 인식하고 word 0x66에서는 데이터를 word라 선언했기 때문에 0x0066으로 인식하게 되는 것인가요? 그리고 그렇기에 byte 0x5555로 바꾼 채 실행하게 되면 실행오류가 생기게 되는 것인지 궁금합니다!(어떻게 하더라도 1바이트 크기로 되는 게 불가능한 상황)