8086 CPU与TC2.0环境下exe文件段限制解析

需积分: 0 0 下载量 94 浏览量 更新于2024-08-04 收藏 23KB DOCX 举报
在2016年的一次宣讲会和研讨会中,讨论了关于生成的exe文件中为何存在两个最大为64KB的段的问题。这一限制源于早期计算机架构,特别是8086 CPU的寻址方式。该CPU使用16位地址线,可以提供64KB的寻址范围,通过段地址乘以10加上偏移地址来访问内存。一个段的大小被限制为64KB,这是因为数据和指令的存储方式。 在当时的编程环境中,比如使用TurboC 2.0这样的集成开发环境,程序的不同模式(如Tiny, Small, Compact等)决定了代码、数据和栈的分配。例如,小模式(Small)的a.exe文件使用了C0S.OBJ作为启动代码和CS.LIB作为小模式运行库。在这些模式下,如果代码中包含如Printf这样的函数,编译器会将其纳入链接过程,可能导致程序文件变大,影响执行效率和可维护性。 为了解决这个问题,开发者引入了用户目标模块库(lib文件)。这种方法允许将常用但通用的函数集合预先编译成obj文件,然后被打包成lib。当链接器tlink.exe链接程序时,仅链接实际被程序调用的那些函数,而不是整个源代码,从而优化了最终可执行文件的大小和性能。 因此,这段讨论的核心知识点包括了8086 CPU的寻址机制,不同编程模式对程序结构的影响,以及如何通过模块化和库管理来提高编译效率和软件工程实践。

执行ALTER TABLE v_dvp DROP FOREIGN KEY FK_constraint_name, DROP INDEX index_name, CHANGE 下线日期 offline DATE, CHANGE 试验开始日期 project_start DATE, CHANGE 试验结束日期 project_end DATE ont null, CHANGE 试验周期 project_cycle INT, CHANGE 颜色 color VARCHAR(255) ont null, CHANGE 车辆配置 V_configuration VARCHAR(255) ont null, CHANGE 阶段 stage VARCHAR(255) ont null, CHANGE 用途 use_to VARCHAR(255) ont null, CHANGE 车辆OWNER V_owner VARCHAR(255), CHANGE 重复性 repeatability VARCHAR(255), CHANGE 需求部门 Demand_department VARCHAR(255) ont null, CHANGE 人员 personnel VARCHAR(255) ont null, CHANGE 共用性 commonality VARCHAR(255), CHANGE 使用地点 place_use VARCHAR(255) , CHANGE 完成状态 completion_status VARCHAR(255), CHANGE 父记录 parent_record VARCHAR(255);报错ALTER TABLE v_dvp DROP FOREIGN KEY FK_constraint_name, DROP INDEX index_name, CHANGE 下线日期 offline DATE, CHANGE 试验开始日期 project_start DATE, CHANGE 试验结束日期 project_end DATE ont null, CHANGE 试验周期 project_cycle INT, CHANGE 颜色 color VARCHAR(255) ont null, CHANGE 车辆配置 V_configuration VARCHAR(255) ont null, CHANGE 阶段 stage VARCHAR(255) ont null, CHANGE 用途 use_to VARCHAR(255) ont null, CHANGE 车辆OWNER V_owner VARCHAR(255), CHANGE 重复性 repeatability VARCHAR(255), CHANGE 需求部门 Demand_department VARCHAR(255) ont null, CHANGE 人员 personnel VARCHAR(255) ont null, CHANGE 共用性 commonality VARCHAR(255), CHANGE 使用地点 place_use VARCHAR(255) , CHANGE 完成状态 completion_status VARCHAR(255), CHANGE 父记录 parent_record VARCHAR(255) > 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ont null, CHANGE 试验周期 project_cycle INT, CHANGE 颜色 color VARCHAR(2' at line 6 > 时间: 0s怎么解决

2023-07-14 上传