欢迎光临散文网 会员登陆 & 注册

汇编源程序代码:提高乘法运算123×236的计算速度(取自王爽老师《汇编语言》问题5.3)

2023-04-28 22:57 作者:UnixandLinux  | 我要投稿

如何提高 123×236 的计算速度?书中的方法是,将 123×236 的乘数和被乘数颠倒。

其实还有更快的方法,代码如下:

assume cs:code

code segment


mov cx,3000h

mov ss,cx

mov sp,0

mov cx,1000h

mov ds,cx

mov cx,123

mov bx,0

mov [bx],cx


u:

mov ax,236

mov dx,2

s:

mov bx,0

mov cx,[bx]

sub cx,dx

mov bx,2

mov [bx],cx


mov bx,0

mov cx,[bx]

mov bx,cx


mov cx,2

add ax,ax

add dx,dx

sub bx,dx

add cl,bh

loop s


push ax

mov bx,2

mov cx,[bx]

sub cl,ch

mov ch,0

mov bx,0

mov [bx],cx

inc cx

loop u


mov dx,0

v: pop ax

add dx,ax

mov cx,sp

inc cx

loop v


mov ax,0

mov bx,2

mov cx,[bx]

mov bx,ax

t: sub dx,ax

mov ax,236

add bx,1

add cx,bx

loop t


mov cx,2000h

mov ds,cx

mov bx,2    

mov [bx],dx


mov ax,4c00h

int 21h


code ends

end


说明:由于程序末尾将 236×123 的计算最终结果保存到内存单元 [2000:0002] 中,因此在执行 q5_3.exe 前应先用 Debug 查看该内存空间所存储的数据内容,以便与运行可执行文件后的结果进行对比(运行可执行文件后,再次用 Debug 查看同一内存空间存储的数据内容),由此验证程序运行的结果。

通过将被乘数 123 换成一个偶数,例如 122,即计算 236×122,可更好地验证程序代码编写是否正确。

汇编源程序代码:提高乘法运算123×236的计算速度(取自王爽老师《汇编语言》问题5.3)的评论 (共 条)

分享到微博请遵守国家法律