作者mimi9126 (Presentation Error)
看板b94902HW
標題[組語] 有關於組語的bug
時間Sun Dec 10 23:46:58 2006
組語常常遇到莫名奇妙的bug,我剛剛試了一下
發現如果你用變數去當作pointer的時候,會有莫名奇妙的錯誤
(不要問我是啥,我也不知道)
所以大家還是乖乖用register當pointer吧
好痛苦...
譬如說
mov ecx, 0
mov edx, input
mov ebx, map
loop1:
movzx eax, byte ptr [edx]
mov dword ptr [ebx], eax
add ebx, 4
inc edx
inc ecx
cmp ecx, w
jl loop1
和
mov ecx, 0
mov eax, input
mov i, eax
mov ebx, map
loop1:
movzx eax, byte ptr [i]
mov dword ptr [ebx], eax
add ebx, 4
inc i
inc ecx
cmp ecx, w
jl loop1
感覺應該要得到一樣的結果,但是後面就是會有錯Orz
--
Looking for the place where a heart feels at ease.
Then, aim at the new future.
While it doesn't know, scene changes someday,
and very warm wind will blow in place.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.253.24
※ 編輯: mimi9126 來自: 140.112.253.24 (12/10 23:48)
→ purincess:mov eax, i 跟 mov eax, [i]意義是一樣的, 課本投影片都 12/10 23:57
→ purincess:有 12/10 23:57
推 kcir:我也遇到了這鳥bug 害我卡好久...orz 12/11 00:02
→ astralbeams:同上 12/11 00:58
推 mifan:所以平常還是乖乖用 mov eax, [i] 以免搞混? 12/11 18:52
推 LittleCVR:因為課本有說是mem的話省略中括號是"約定俗成" 12/12 00:28
→ LittleCVR:所以i和[i]是一樣的, reg的話就不一樣了 12/12 00:29