看板 Programming 關於我們 聯絡資訊
※ 引述《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
jimmy5566:JNZ是什麼指令? 122.122.129.10 03/29 19:37
charleshu:jump when not Z, 查一下x86指令集就知 203.67.195.213 03/30 16:11
wowtiger:LOOP 很慢 decjnz>testjz>cmpjne>loop 115.43.38.106 04/01 01:16