作爲一個彙編代碼的初學者,我很困惑movs。從y開始的九個字節的結果內容是('a','b','c','a','b','c','a','b','c'),但我不知道爲什麼。我知道movs是從一個內存複製到另一個,但下面的代碼是如何工作的?彙編代碼MOVS
1 .data
2 x: .string "abcde" # 5 characters plus a null
3 y: .space 9
4
5 .text
6 .globl _start
7 _start:
8 movl $x, %esi #esi point to x as source
9 movl %esi, %edi #edi point to x as destination
10 addl $3, %edi #why we add 3 to edi?
11 movl $6, %ecx #counter
12 rep movsb #what does it exactly do?
13 done:
很好的捕獲目標是'x',而不是'y'。 – enhzflep
結果是書上說的。我不確定這本書是對還是錯。 – Wiiiii
這本書是錯誤的,'y'處的9個字節只是最後一個'abc'和6個零字節。 – Jester