回 帖 发 新 帖 刷新版面

主题:两道编程题!谢谢

1.从6个数中找出其中最大的数并显示出来.要求查找最大数的功能由汇编语言子程序实现.

2.求若干个16位带符号之和,其和为32位数.要求求和程序用汇编语言编写,定义数据及显示用C语言编写.

谢谢!

回复列表 (共2个回复)

沙发

;求若干个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

板凳

请问在Win-TC里运行好像很多错误,怎样产生运行程序?[em8]

我来回复

您尚未登录,请登录后再回复。点此登录或注册