ASM 板


LINE

看板 ASM  RSS
以下是一段c code,是用来计算crc32 unsigned int crc32(const char* data, size_t length) { const unsigned int POLY = 0xEDB88320; // standard polynomial in CRC32 unsigned int reminder = 0xFFFFFFFF; // standard initial value in CRC32 for(size_t i = 0; i < length; i++) { reminder ^= (unsigned char)data[i]; // must be zero extended for(size_t bit = 0; bit < 8; bit++) if(reminder & 0x01) reminder = (reminder >> 1) ^ POLY; else reminder >>= 1; } return reminder ^ 0xFFFFFFFF; } 我将它直接转成了intel的组语如下 .386 .model flat option casemap :none .data count DWORD ? ;用来存第一层回圈的计数器 .code _crc32 PROC PUBLIC push ebp ; mov ebp, esp ; build stack frame ; variables in stack ; [ebp+12] data length (the second argument) ; [ebp+8] pointer to string data (the first argument) ; [ebp+4] return address ; [ebp] previous ebp ; begin CRC32 calculation ; WRITE YOUR OWN CODE HERE mov eax, 0FFFFFFFFh ; 用来存reminder mov esi, [ebp+8] ; 指向一串资料的开头 mov ecx, [ebp+12] ; 第一层回圈的初始化 L1: ;第一层回圈 xor eax, [esi] ; inc esi ; 指向下一个阵列元素 mov count, ecx ; 将目前的回圈次数存起来 mov ecx, 8 ; 第二层回圈的初始化 L2: test eax, 1 ; 与1作& jz B1 ; 若为零则跳至B1 shr eax, 1 ; remainder >>= 1 xor eax, 0EDB88320h; reminder ^= POLY jmp B2: B1: shr eax, 1; remainder >>= 1 B2: loopd L2 ; 检验是否跳回L2重做 mov ecx, count ; 取回第一圈回圈的计数器 loopd L1 ; 检验是否跳回L1重做 xor eax, 0FFFFFFFFh ; return reminder ^ 0xFFFFFFFF ; end CRC32 calculation leave ret _crc32 ENDP END ; file ends here 可是上传的结果的结果却是错的 而且放进VC 2005 组译的时候 会产生 LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup C:\Documents and Settings\123\My Documents\Visual Studio 2005\Projects\hw4\ Debug\hw4.exe : fatal error LNK1120: 1 个无法解析的外部符号 这两个错误讯息 不知道哪个地方有问题 找很久也找不出来 希望哪位大大能帮我一把OTZ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.243.43 ※ 编辑: king19880326 来自: 140.112.243.43 (12/30 19:38) ※ 编辑: king19880326 来自: 140.112.243.43 (12/30 20:36)
1F:推 cutemens:VC跟组语有关系?? 01/07 09:14
2F:→ ccbruce:大概是嵌入式组语,你程式少了main function啊~ 01/14 00:30
3F:→ ccbruce:加个main就能解决了,不然就编成.lib 01/14 00:30







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP