首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请各位仁兄,帮下手!

[求助]请各位仁兄,帮下手!

将下列C程序,转换到汇编 /* main.c */ #include // ==================== unsigned char buf[258], buf2[256]; unsigned char hdr[1078]; // 8bit BITMAP header size // ==================== void medfilt(unsigned char *buf, unsigned char *buf2); // ==================== int main() { int i; FILE *fp = NULL, *fp2 = NULL; fp = fopen("girl2.bmp", "rb"); if (! fp) { printf("Open image file fail!\n"); exit(-1); } fp2 = fopen("girl3.bmp", "wb"); if (! fp2) { fclose(fp); printf("Open output image file fail!\n"); exit(-1); } // read bitmap header fread(hdr, 1078, 1, fp); fwrite(hdr, 1078, 1, fp2); buf[0] = 0; buf[257] = 0; for (i=0; i<256; i++) { fread(buf+1, 1, 256, fp); medfilt(buf, buf2); fwrite(buf2, 1, 256, fp2); } fclose(fp); fclose(fp2); } // main.c --------------------------- /* medfilt.c */ /* 1-D median filter Parameters: buf ----- input data buf2 ---- output data */ void medfilt(unsigned char *buf, unsigned char *buf2) { int i; unsigned char tmp; unsigned char filt0, filt1, filt2; for (i=1; i<=256; i++) { filt0 = buf[i-1]; filt1 = buf; filt2 = buf[i+1]; if (filt0 >= filt1) { tmp = filt0; filt0 = filt1; filt1 = tmp; } if (filt0 >= filt2) { tmp = filt0; filt0 = filt2; filt2 = filt0; } if (filt1 >= filt2) buf2[i-1] = filt2; else buf2[i-1] = filt1; } } // medfilt.c
返回列表