Ale*_*lex 1 optimization x86 assembly intel
我正在用汇编语言做一些练习,我发现了一个关于优化的问题,我无法弄清楚.任何人都可以帮助我
所以问题是优化以下汇编代码:
----------------------------例1 --------------------- ----
mov dx, 0 ---> this one I know-> xor dx,dx
Run Code Online (Sandbox Code Playgroud)
----------------------------例题--------------------- ---
cmp ax, 0
je label
Run Code Online (Sandbox Code Playgroud)
----------------------------示例3 --------------------- ----
mov ax, x
cwd
mov si, 16
idiv si
Run Code Online (Sandbox Code Playgroud)
---->在这个例子中我能想到的最多的是idiv 16的最后两行,但我不确定
----------------------------范例4 --------------------- ----
mov ax, x
mov bx, 7
mul bx
mov t, ax
Run Code Online (Sandbox Code Playgroud)
----------------------------例5 --------------------- ------
mov si, offset array1
mov di, offset array2
; for i = 0; i < n; ++i
do:
mov bx, [si]
mov [di], bx
add si, 2
add di, 2
loop do
endforloop
Run Code Online (Sandbox Code Playgroud)
例如2,您应该查看and或test操作码.与示例1类似,它们允许您不再需要常量.
例如4,记住它x * 7与x * (8 - 1)或相同,扩展,x * 8 - x.乘以8可以使用移位指令.
例如5,你认为英特尔会提供一种更简单的从SI转换到DI的方法,因为这是它们存在的全部原因.也许像REPetitive MOVe String Word :-)
| 归档时间: |
|
| 查看次数: |
1663 次 |
| 最近记录: |