Re: [討論] 組合語言loop迴圈指令的疑問

看板Programming作者 ((short)(-15074))時間14年前 (2010/03/28 02:15), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《jimmy5566 (56好棒)》之銘言: : .code : main PROC : mov ax,0 : mov ecx,5 : L1:add ax,cx : loop L1 : 執行結果為 5+4+3+2+1=15 : 現在如果希望執行出來的結果為 : (5+4+3+2+1)+(5+4+3+2+1)+(5+4+3+2+1)+(5+4+3+2+1)+(5+4+3+2+1)=75 : 這樣原來的程式要加入什麼指令才能達成? 我是喜歡用把 ecx 推進 stack 的小技巧: ;其他宣告略 mov ax,0 ;這是外層迴圈 mov ecx, 5 L2: push ecx ;外層的 ecx 留起來 ;這是內層迴圈 mov ecx, 5 L1: add ax,cx loop L1 ;內層迴圈結束了 pop ecx ;拿出留起來的外層 ecx loop L2 自己實際在寫時也會像寫 C 的雙層迴圈一樣把內層縮進去 這樣可以馬上知道這是個雙層迴圈 也方便檢查有沒有正確留好 ecx 的值 多層也可以類推 就多推幾個就是了 XD -- ˊ_▂▃▄▂_ˋ. ◣          ▅▅ ▅▅ ι●╮   ./◤_▂▃▄▂_◥ \'▊   HARUHI █████ <■┘   ◤◤◥█◥◥█Δ   ISM    By-gamejye ¢|\   ▌▌ζ(▏●‵◥′●)Ψ ▏           █    ⊿Δ    /|▋ |\ ▎         ハルヒ主義      ▄█ ◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界をいに盛り上げるための宮ハルヒの    -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.92

03/28 11:38, , 1F
感恩~
03/28 11:38, 1F
文章代碼(AID): #1Bhaig86 (Programming)
討論串 (同標題文章)
文章代碼(AID): #1Bhaig86 (Programming)