[問題] 如何用組合語言寫河內塔

看板ASM (組合語言)作者 (阿瑋)時間16年前 (2008/11/04 14:08), 編輯推噓2(205)
留言7則, 5人參與, 最新討論串1/2 (看更多)
用C語言很快就能寫出來河內塔的程式....只要用遞回就可以了,但是,我將他改成 組合語言之後就會出問題...#include <stdio.h> #include<stdlib.h> void hanoi(int n, char A, char B, char C) { if(n == 1) printf("Move sheet %d from %c to %c\n", n, A, C); else { hanoi(n-1, A, C, B); printf("Move sheet %d from %c to %c\n", n, A, C); hanoi(n-1, B, A, C); } } int main() { int n; printf("請輸入盤數:"); scanf("%d", &n); hanoi(n, 'A', 'B', 'C'); system("pause"); return 0; } 這是我寫的C語言..要怎麼寫成組合語言呢 希望大家幫幫忙/.\ PS:我是用Masm615去編譯的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.222.151

11/04 14:15, , 1F
/Fa
11/04 14:15, 1F

11/04 16:01, , 2F
看起來需要jmp和標籤(@xxx之類的)...上週老師剛敎。
11/04 16:01, 2F

11/04 16:02, , 3F
不過會很複雜。我學的也是MASM,不過你後面的數字我不懂
11/04 16:02, 3F

11/04 16:03, , 4F
至於輸入四個值再call hanoi的部份等待高手解答~~
11/04 16:03, 4F

11/04 16:09, , 5F
只要輸入一個盤子數的值就行了...
11/04 16:09, 5F

11/04 22:42, , 6F
GOOGLE蠻多範例的吧 Hanoi asm自己選一個喜歡的看看吧
11/04 22:42, 6F

11/05 02:32, , 7F
想想C傳參數怎麼傳的,就可以直接改寫為asm了吧
11/05 02:32, 7F
文章代碼(AID): #193-Re5l (ASM)
文章代碼(AID): #193-Re5l (ASM)