主题:两道编程题!谢谢
haoson
[专家分:10] 发布于 2007-06-22 07:18:00
1.从6个数中找出其中最大的数并显示出来.要求查找最大数的功能由汇编语言子程序实现.
2.求若干个16位带符号之和,其和为32位数.要求求和程序用汇编语言编写,定义数据及显示用C语言编写.
谢谢!
回复列表 (共2个回复)
沙发
塞北江南 [专家分:1350] 发布于 2007-06-22 10:57:00
;求若干个16位带符号之和,其和为32位数.要求求和程序用汇编语言编写,定义数据及显示用C语言编写.
long sumx(int *array,int var2,long var3)
{
asm PUSH AX;
asm push bx
asm push cx;
asm push dx
asm mov ax,0;
asm mov cx,var2;
asm MOV bX, array;
lop:asm mov AX, [bx] ;
asm cwd
asm add word ptr var3,ax;
asm adc word ptr var3[2],dx;
asm add bx,2
asm dec cx
asm jnz lop
asm pop dx
asm pop cx
asm pop bx
asm POP AX ;
return(var3) ;
}
main() /*C语言主程序*/
{ int array[10]={1,2,30000,4,10000,6,-30000,-3000,-30000,-30000};
long sums=0;
printf("%ld\n",sumx(array,5,sums));
sums=0;
printf("%ld\n",sumx(array,10,sums));
}
在tc命令行下执行: (假设文件名位ff.c)
tcc -B -Iinclude -Llib ff.c
可以编译通过,执行结果如下:
40007
-52987
板凳
haoson [专家分:10] 发布于 2007-06-22 19:35:00
请问在Win-TC里运行好像很多错误,怎样产生运行程序?[em8]
我来回复