Board logo

标题: [求助]请各位仁兄,帮下手! [打印本页]

作者: mjjhappy    时间: 2004-6-28 11:24     标题: [求助]请各位仁兄,帮下手!

将下列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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0