主题:谁能赐教
kxzyf
[专家分:0] 发布于 2006-11-23 10:21:00
谁能赐教,这是什么错误:
ERROR,CHIPRUN.ASM CODE SIZE TOO LARGE
CHIPRUN.ASM :ERROR A2052:FORCED ERROR
NMAKE:FATAL ERROR L1077:‘MASM’RETURN CODE ‘1’
源代码出现位置:
IF2
IF (($ - Ct_Very_Early_Init) GT (0f80bh-0f600h))
%OUT ERROR, CHIPRUN.ASM code size too large
.ERR
ENDIF
ENDIF
最后更新于:2008-01-19 21:06:00
回复列表 (共8个回复)
沙发
chenzep [专家分:3640] 发布于 2006-11-23 23:02:00
就是说你写的代码太长了,超出了预定的范围。
有空还是学点基础的先把,程序是一步步学的。
板凳
kxzyf [专家分:0] 发布于 2006-12-01 16:12:00
好象不是阁下说的那样,我查了些资料,“ERROR, CHIPRUN.ASM code size too large”根本就不是汇编程序的错误提示,而是,源代码中的“(($ - Ct_Very_Early_Init) GT (0f80bh-0f600h))”表达式满足了条件,把“ERROR, CHIPRUN.ASM code size too large”的错误提示照搬过来。
再说了是AWARD BIOS公司的源代码,不应该有错,只能是开发软件的版本不兼容或别的原因。
3 楼
chenzep [专家分:3640] 发布于 2006-12-01 19:12:00
我想“(($ - Ct_Very_Early_Init) GT (0f80bh-0f600h))”这个表达式的意思是:
程序要把Ct_Very_Early_Init到当前位置的代码copy到内存0f600h-0f80bh的位置.
4 楼
kxzyf [专家分:0] 发布于 2006-12-02 10:23:00
谢谢!能否说得具体些,怎样排除此错?
另外您提供的网页几次都打不开,况且这是主板一级的程序,根本无法在WINDOWS下运行,而网上的资料却几乎全是WINDOWS下编程。
5 楼
chenzep [专家分:3640] 发布于 2006-12-02 13:10:00
排错就要靠你自己了,我现在也挺忙的.
如果要搞BOIS,给几点建议:
VMWARE VMWARE有一个文件:可以保存内存的内存二进制内容
UltraEdit 这个软件可以以二进制的形式查看任何的文件,可以自己观察EXE文件的结构是怎么样的,也可以查看上面VMWARE的内存文件.
自己写一个基本的基于BOIS汇编I/O库.
自己写一个最基本的引导程序,在VMware下建立一个最基本的平台.
还有,上面的教程我换了个下载地址了.
6 楼
WinAsm [专家分:140] 发布于 2006-12-02 14:32:00
IF2
IF (($ - Ct_Very_Early_Init) GT (0f80bh-0f600h))
%OUT ERROR, CHIPRUN.ASM code size too large
.ERR
ENDIF
ENDIF
如果 (当前地址 - 一个符号地址) > 20bh ;(0f80bh-0f600h=20bh)
那么输出错误消息:"CHIPRUN.ASM code size too large"
;chiprun.asm 代码尺寸太大
.err ;产生一个错误
看样子这段代码对体积有要求,不能大于20bh个字节
7 楼
fjjilin [专家分:0] 发布于 2006-12-02 15:43:00
嘿嘿.你的是什么程序呀
BIOS吗
厉害.没有看懂
学习汇编中。.兴趣中
8 楼
kxzyf [专家分:0] 发布于 2006-12-03 08:59:00
多谢!这是AWARD BIOS 公司的源代码,对它没有进行任何改动,只是对其中的 CHIPRUN.ASM 打开后,在重新存一下盘,怎么会出错呢?
下载地址:http://purec.binghua.com/viewthread.php?tid=2421&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D14
执行其中的 BIOS.BAT * 即可完成整个汇编连接等,另外.err是个什么东西?8086/8088的指令和伪指令表都没有.
我来回复