Re: [討論] 組合語言loop迴圈指令的疑問
看板Programming作者charleshu (Analog Engineer)時間14年前 (2010/03/28 21:52)推噓1(1推 0噓 2→)留言3則, 3人參與討論串3/3 (看更多)
※ 引述《LPH66 ((short)(-15074))》之銘言:
: ※ 引述《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 的小技巧:
: 多層也可以類推 就多推幾個就是了 XD
在意執行速度的話,可以在外層使用其他暫存器, 如 BX
MOV AX,0
MOV EBX,5
P2: MOV ECX,5
P1: ADD AX,CX
LOOP P1
DEC EBX
JNZ P2
因為原程式PUSH/POP完馬上要用到那個暫存器,亂序執行功能派不上場,速度會
被拖慢,這樣改會快一點. 你可以試試看.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.195.213
推
03/29 19:37, , 1F
03/29 19:37, 1F
→
03/30 16:11, , 2F
03/30 16:11, 2F
→
04/01 01:16, , 3F
04/01 01:16, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):