2013-06-03 36 views

回答

0

div不帶兩個參數。如果它是一個32位的值,它將參數除以edx:eax。例如,請參閱http://www.posix.nl/linuxassembly/nasmdochtml/nasmdoca.html

速戰速決將是(可以改進,但是這是一個開始)

_while: 
    xor edx,edx 
    mov eax,ebx 
    div ecx 
    mov ebx,ecx 
    mov ecx, edx 
    cmp ecx,0 
    ; etc 
+0

謝謝你解決了while循環的問題,但是現在我在輸入數字後出現了分段錯誤(core dump)。我會給你的主程序的代碼,也許你會發現錯誤:( – l2iisk

+0

主程序現在在問題 – l2iisk

+0

@ l2iisk你缺少2''流行'在你的asm_main – Guillaume

0

DIV僅接收單個操作數。它將edx:eax除以操作數,餘數爲edx。

+0

對於那些誰是「進去」,還有的GCD代碼一些討論在這裏:HTTP://www.azillionmonkeys。 com/qed/asmexample.html - 不使用'div' :) –