打印

有一个问题求大神告诉为什么

[复制链接]
1184|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mxzwt|  楼主 | 2016-1-13 20:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我下了一个masm软件,是汇编的,但是查知汇编语言是16位命令,而visual studio既可以处理16位命令又可以处理32位命令,也就是说wiindows机器语言指令可分为16位和32位,所以我想问硬盘中存储的.exe文件是不是会用不同的文件头来区分用32位指令集做出的程序和用16位指令集做出的程序呢?

相关帖子

沙发
dirtwillfly| | 2016-1-13 21:44 | 只看该作者
不太清楚。估计是兼容16位指令

使用特权

评论回复
板凳
NE5532| | 2016-1-18 08:31 | 只看该作者
估计指令设计上具有兼容性,CPU在运行的时候自动判断,不然很麻烦,用了一种指令,就不能用另一种指令了。

使用特权

评论回复
地板
mxzwt|  楼主 | 2016-1-19 16:03 | 只看该作者
NE5532 发表于 2016-1-18 08:31
估计指令设计上具有兼容性,CPU在运行的时候自动判断,不然很麻烦,用了一种指令,就不能用另一种指令了。 ...

具体呢,是先查询前16位看是不是32位指令集中的指令,然后再查询前8位吗

使用特权

评论回复
5
dirtwillfly| | 2016-1-19 17:12 | 只看该作者
mxzwt 发表于 2016-1-19 16:03
具体呢,是先查询前16位看是不是32位指令集中的指令,然后再查询前8位吗

这个应该是电脑cpu硬件上设计的兼容性

使用特权

评论回复
6
mxzwt|  楼主 | 2016-1-19 17:29 | 只看该作者
dirtwillfly 发表于 2016-1-19 17:12
这个应该是电脑cpu硬件上设计的兼容性

具体点呗,怎么实现“硬件上的兼容性”阿

使用特权

评论回复
7
dirtwillfly| | 2016-1-19 19:56 | 只看该作者
mxzwt 发表于 2016-1-19 17:29
具体点呗,怎么实现“硬件上的兼容性”阿

这个咱们设计不了,intel和amd设计cpu的时候就设计好的。程序员只是使用这些cpu支持的汇编指令而已

使用特权

评论回复
8
mxzwt|  楼主 | 2016-1-19 21:46 | 只看该作者
dirtwillfly 发表于 2016-1-19 19:56
这个咱们设计不了,intel和amd设计cpu的时候就设计好的。程序员只是使用这些cpu支持的汇编指令 ...

人家就是想知道啊

使用特权

评论回复
9
tudou2048| | 2016-1-20 07:05 | 只看该作者
不太懂,我推荐两本书吧,《80X86汇编语言程序设计教程》和《windows环境下32位汇编语言程序设计》,MASM是支持32位的,只要版本不太低。编程序时用伪指令指示指令集,汇编器根据这个针对性汇编。机械码与操作系统无关,只要你高兴完全可以编写一个运行在裸机上的32位程序,而且采用汇编语言编写。

使用特权

评论回复
10
dirtwillfly| | 2016-1-20 19:41 | 只看该作者
tudou2048 发表于 2016-1-20 07:05
不太懂,我推荐两本书吧,《80X86汇编语言程序设计教程》和《windows环境下32位汇编语言程序设计》,MASM是 ...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

42

帖子

1

粉丝