汇编习题求解:有一个地址为array的20个字的数组,说明下列程序段的功能

来源:百度知道 编辑:UC知道 时间:2024/06/04 00:48:06
mov cx,20
mov ax,0
mov si,ax
som_loop:add ax,array(si)
add si,2
loop sum_loop
mov total,ax
是不是求20个偶数的和,我不是很懂,请知道的补充说明一下

mov cx,20 //cx用作循环计数器,即循环20次
mov ax,0 //ax用作求和的中间结果
mov si,ax //si用作偏移指针
som_loop:
add ax,array[si] //在这里将array变量偏移si字节处的那个字加到ax中
add si,2 //偏移加2,指向下一个字(一个字有两个字节组成)
loop sum_loop //loop 指令等价于dec cx 和 jnz som_loop
mov total,ax //结果最后保存至total变量

所以这段代码的功能是,将array处的20个数(单位是字)相加,结果保存到total