相关疑难解决方法(0)

为什么mov啊,bh和mov al,bl比单指令mov ax,bx快得多?

我发现了

mov al, bl
mov ah, bh
Run Code Online (Sandbox Code Playgroud)

比...快得多

mov ax, bx
Run Code Online (Sandbox Code Playgroud)

谁能解释我为什么?我在Windows XP下以32位模式运行Core 2 Duo 3 Ghz.使用NASM进行编译,然后与VS2010进行链接.Nasm编译命令:

nasm -f coff -o triangle.o triangle.asm
Run Code Online (Sandbox Code Playgroud)

这是我用来渲染三角形的主循环:

; some variables on stack
%define cr  DWORD [ebp-20]
%define dcr DWORD [ebp-24]
%define dcg DWORD [ebp-32]
%define dcb DWORD [ebp-40]

loop:

add esi, dcg
mov eax, esi
shr eax, 8

add edi, dcb
mov ebx, edi
shr ebx, 16
mov bh, ah

mov eax, cr
add eax, dcr
mov cr, eax

mov ah, bh  ; …
Run Code Online (Sandbox Code Playgroud)

x86 assembly

18
推荐指数
4
解决办法
7319
查看次数

标签 统计

assembly ×1

x86 ×1