我想更好地瞭解程序集x86 64如何工作。而最好的辦法就是解決一些練習,我試圖解決一些,但現在我目前瞭解卡住這一個:C和大會測驗
這裏的主要操作是addl mat(%rdx, %rcx), %eax
。這與sum += mat[y][x]
相同。 通過看看大會我很確定%rdx
是x
和%rcx
是y
。我們可以看到y
的行爲如何。在這種情況下,我們增加了y
,第一個循環的末端爲172,直到達到2924.
這意味着MAT_X = 2924/172 = 17
(推理是否正確?)。 而對於另一個我會說MAT_Y = 10
,因爲x循環從0到10每次。
該問題的解決方案是MAT_X = 17
但是MAT_Y = 172/4 = 43
。
但我不明白爲什麼實際上,我在哪裏我錯了?
代碼必須張貼爲*文本*在這裏,所以必須這個問題本身。盲人用戶無法閱讀圖像。如果這意味着你必須重新輸入,那就這樣吧。 –