免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1480 | 回复: 6
打印 上一主题 下一主题

请教c中嵌汇编 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-31 16:41 |只看该作者 |倒序浏览
下面是一个用于CRC校验的程序,内嵌汇编语句,请问大家应该用什么编译器编译,tc2。0可以吗,我试了试,结果不认汇编语句?
#include <stdio.h>;

void a_byte_to_crc(unsigned char onebyte, unsigned int *crc_reg)
{
unsigned int wd;
wd = *crc_reg;
asm{
MOV AL,onebyte;
MOV CH,AL;
MOV CL,8;

}
lop:
asm{
RCL CH,1;
JMP crc_gen;
}
rtnds:
arm{
DEC CL;
JNZ lop;
JMP end;
}
crc_gen:
arm{
MOV AX,wd;
RCR AX,1;
RCL AX,1;
CLC;
JNO cnt;
XOR AX,0x0810;
STC;
}
cnt:
arm{
RCL AX,l;
MOV wd,AX;
JMP rtnd;
}
end:
*crc_reg = wd;
}

void main(int argc, char *argv[])
{
FILE *fp;
signed int c;
long unsigned int i = 0;
unsigned int crc = 0xffff;
puts("Cyclic Redundancy Check Program";
if(argc==1)
puts("Usage:CRC<filename>;";
else{
fp = fopen(argv[1],"rb";
if(fp==NULL)
puts("Cant open iput file";
else{
while((c = getc(fp))!=EOF){
a_byte_to_crc(c,&crc);
i++;
}
printf("CRC=%#X File length = %lu", crc, i);
fclose(fp);
}
}
}

论坛徽章:
0
2 [报告]
发表于 2004-05-31 17:00 |只看该作者

请教c中嵌汇编

tc是认识汇编的,但是你的代码好像不太对,比如那个
arm{
DEC CL;
JNZ lop;
JMP end;
} 是不是该用asm啊?还有l没有定义,etc。

论坛徽章:
0
3 [报告]
发表于 2004-06-01 00:45 |只看该作者

请教c中嵌汇编

在TC下要用汇编时,在每条汇编的指令前加ASM一定能通过的,你可以试试!推荐用Borland C++开发环境!

论坛徽章:
0
4 [报告]
发表于 2004-06-01 09:57 |只看该作者

请教c中嵌汇编

请问soloarrow,这种表述不对吗?应该如何表述呢?
是不是要加头文件?

论坛徽章:
0
5 [报告]
发表于 2004-06-01 09:59 |只看该作者

请教c中嵌汇编

asm{ ... }

not  arm{ ... }

论坛徽章:
0
6 [报告]
发表于 2004-06-02 09:32 |只看该作者

请教c中嵌汇编

哦?
是这样??
那里面的语句加不加分号?

论坛徽章:
0
7 [报告]
发表于 2004-06-03 09:22 |只看该作者

请教c中嵌汇编

我觉得也有问题
可是只有这些代码供参考,没有什么注释
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP