书本上的程序效率不一定最高
首先声明下我刚开始自学汇编,也没有看甲老大的视频!好了,回到正题。对于程序5.9(P121)代码如下:
ASSUME cs:Codesg
Codesg SEGMENT
mov ax,0ffffH
mov ds,ax
mov ax,20H
mov es,ax
mov dx,0H
mov bx,0H
mov cx,12
S: mov dl,ds:
mov es:,dl
inc bx
loop S
mov ax,4c00H
int 21H
Codesg ENDS
END
对于上面的程序,它所实现的功能就是将“FFFF:0B"种的内容复制到“0:20020B"处,其实还有两种比这个更好的方法(程序5.9已经相比优化了),这两种方法的代码如下:
第一种
ASSUME cs:Codesg
Codesg SEGMENT
mov ax,0ffffH
mov ds,ax
mov ax,20H
mov es,ax
mov dx,0H
mov bx,0H
mov cx,6
S: mov dx,ds:
mov es:,dx
add bx,2
loop S
mov ax,4c00H
int 21H
Codesg ENDS
END
第二种
ASSUME cs:Codesg
Codesg SEGMENT
mov ax,0ffffH
mov ss,ax
mov sp,0H
mov ax,20H
mov ds,ax
mov bx,0H
mov cx,6
S: pop ds:
add bx,2
loop S
mov ax,4c00H
int 21
Codesg ENDS
END
本人只是将自己的学习心得和大家分享,如有错误请大家指教,谢谢!!
不错,那个系列我跟着书本来的~ 小甲鱼 发表于 2014-9-16 20:44
不错,那个系列我跟着书本来的~
第二种方法的技巧其实书本上是有提到过的。
页:
[1]