완료됨
이해가 안됩니다.

레지스터, 메모리 및 코드가 다음과 같을 때, 아래에서 적절한 값을 채우시오.

[Register]
rax = 0xffffffff00000000
rbx = 0x00000000ffffffff
rcx = 0x123456789abcdef0

[Code]
1: and rax, rcx
2: and rbx, rcx
3: or rax, rbx
1번. Code를 1까지 실행했을 때, rax에 저장된 값은
0x1234567800000000
이다.

2번. Code를 2까지 실행했을 때, rbx에 저장된 값은
0x000000009abcdef0
이다.

3번. Code를 3까지 실행했을 때, rax에 저장된 값은
0x123456789abcdef0
이다.

여기서 문제 3번에서 or 연산자를 쓰는데 둘다 1이니깐, ffffffff 아닌가요? 왜 답이 저렇게 나오나요?

#시스템_해킹 #배경지식
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 2
탈퇴한 이용자
대표 업적 없음

or 연산을하실때 레지스터 메모리가 아닌 가장최신인 code1 rax=0x1234567800000000 code2 rbx= 0x000000009abcdef0
로연산하시면 0x123456789abcdef0가나옵니다

2022.07.27. 11:53
NewJeans
대표 업적 없음

Code를 N까지 실행했을 때 라는 문장이 무슨 뜻인지 다시 한번 생각해보세요.

2022.11.20. 09:46