怎么编译连接16位的汇编程序

 我来答
谢晋宇0386
2013-12-12 · 超过77用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:172万
展开全部
使用masm.exe编译16位汇编源代码生成*.obj文件,在用link.exe连接生成16位可执行文件*.exe。在32位机器上是可以写16位程序的,因为x86的计算机体系就是为了兼容低阶程序而存在的,计算机在启动的时候就是以实模式(可以简单理解为16位的)启动的,之后操作系统才使用机器指令转向32位保护模式(因为这样从硬件级支持多任务)。编写16位、32位、以及64位汇编程序只要下载安装相应的汇编包就可以了。追问: 可以兼容低阶的程序也能兼容高阶的?回答: 计算机开机启动是实模式的,操作系统使用机器指令转入保护模式,之所以保留实模式就是为了在硬件级支持16位程序,进入保护模式以后机器还能运行16位程序是因为在保护模式下还支持一种称为虚拟86的模式,也就是说虽然在保护模式下操作系统也能执行16位机器码,但是她是保护模式提供的虚拟机状态,可以简单理解为虚拟86模式是软件仿真的16为执行环境(以便在保护模式下直接运行16位代码,而不用转回实模式)。要编译执行64机器码,必须是64cpu。否则机器无法编译执行~!低阶无法执行高阶机器码。追问: 那dos汇编里的中断指令还有用吗回答: 如果是在开机实模式下,汇编中断是硬件级执行的(绝对控制权)! 在保护模式下dos的所有汇编中断调用都是无效的,只是被操作系统虚拟执行的!追问: 就是能执行?回答: 嗯是的能执行,但是应该区别在windows操作系统下dos中断只是被仿真执行的(只是为了兼容16位软件)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式