Я пытаюсь понять, как работает сборка x86 64. И лучший путь решения некоторых упражнений, я пытался решить некоторые, но теперь я в настоящее время застрял понимание этого один:C и Assembly Quiz
Основная работа здесь addl mat(%rdx, %rcx), %eax
. Это то же самое, что и sum += mat[y][x]
. Взглянув на сборку, я уверен, что %rdx
is x
и %rcx
is y
.
Итак, чтобы узнать, что такое MAT_X
, мы можем видеть, как ведет себя y
. И в этом случае мы увеличиваем y
на 172 каждый конец первого цикла до достижения 2924.
Это означает, что MAT_X = 2924/172 = 17
(Правильно ли это?). И для другого я бы сказал MAT_Y = 10
, так как x пеет от 0 до 10 каждый раз.
Решение этой проблемы MAT_X = 17
, но MAT_Y = 172/4 = 43
.
Но я не понимаю, почему на самом деле, где я ошибаюсь?
Код должен быть размещен как * текст * здесь, и поэтому должны сам вопрос. Слепые пользователи не могут читать изображения. Если это означает, что вы должны перепечатать его, то пусть будет так. –