用汇编语言求n个16位无符号数的平均数(求整),并在C程序中调用

如题所述

以下是在turbo pascal中直接调用汇编语言函数子程序的示例。供参考:

var
a:array[1..1000] of word;
n:word;
sum:longint;
aver:word;
i:integer;

function average:word;assembler;
asm
mov ax,seg a
mov ds,ax
mov si,offset a
mov cx,n
cld
mov word ptr sum,0
mov word ptr sum+2,0
@aver1:
lodsw
add word ptr sum,ax
adc word ptr sum+2,0
loop @aver1
mov ax,word ptr sum
mov dx,word ptr sum+2
mov bx,n
div bx
end;

begin
for i:=1 to 100 do a[i]:=i+60000;
n:=100;
writeln(average);
end.

温馨提示:答案为网友推荐,仅供参考
相似回答