2010-05-08 94 views
1

我想翻譯如下:解釋彙編指令

Action: 
pushl %ebp 
movl %esp, %eax 
subl $0x32, %esp 
movl $0x0, -0x8(%eax) 
movl $0x0, -0x4(%eax) 
movl -0x4(%eax), %eax 
cmpl $0x32(%eax), %ebp 
movl -0x4(%ebp), %eax 
sall $0x2, %ebp 
addl 0x8(%ebp), %ebp 
movl (%ebp), %ebp 
addl %ebp, -0x8(%eax) 
addl $0x1, -0x4(%eax) 

什麼是翻譯這個代碼的最佳方式?

+0

爾。你故意殺死了大部分問題嗎?這些指令不存在(你可能是指pushl和movl),movl需要參數。如果發生意外,你可以[回滾](http://stackoverflow.com/posts/2794477/revisions) – 2010-05-08 15:05:17

+0

謝謝。我們走了。 – 2010-05-08 15:08:45

+1

學習彙編語言的最佳方法是什麼?讀一本書。 – 2010-05-09 19:04:46

回答

1

對於原題:

mov  -0x4(%ebp), %eax  # eax = z; 
mov  0xc(%ebp), %edx  # edx = y; 
mov  (%edx, %eax, 4), %eax # eax = *(edx + eax + 4) 
add  $0x3, %eax    # eax += 3 
movb $0x41, (%eax)   # *eax = 'A' 

幹運行報表給:

y[z + 4][3] = 'A';