Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему в 32 битном режиме получается правильный ответ, а в 64 битном - нет?

Тсьсл Лклащащ Ученик (113), открыт 3 недели назад
     format PE console
entry main
section '.text' executable
use64
main:
mov rax, 2
imul rax, 3
mov rbx, 5
add rbx, rax
mov rax, 4
sub rax, 1
mov rcx, 6
add rcx, 2
mov rdx, rax
imul rdx, rcx
mov rax, rbx
sub rax, rdx
ret
данный 64 битный код выдает 13.

     format PE console 
entry main
section '.text' executable
use32
main:
mov eax, 2
imul eax, 3
mov ebx, 5
add ebx, eax
mov eax, 4
sub eax, 1
mov ecx, 6
add ecx, 2
mov edx, eax
imul edx, ecx
mov eax, ebx
sub eax, edx
ret
а этот 32 битный код выдает -13.
1 ответ
Rob0t135 Гуру (3469) 3 недели назад
из-за переполнения данных, возможно
Тсьсл ЛклащащУченик (113) 3 недели назад
аа, фигак, ща подебажу
Тсьсл ЛклащащУченик (113) 3 недели назад
дк стоп там же неправильный ответ выдает 64 битный
Тсьсл Лклащащ, да сделай табличку значений регистров после каждой операции, и всё поймёшь. Вот охота всем моск канифолить примитивными задачами.
Похожие вопросы