鱼C论坛

 找回密码
 立即注册
查看: 1951|回复: 2

为什么现在的32位寄存器还可以写16位汇编指令呢?

[复制链接]
发表于 2012-7-4 20:12:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在电脑的寄存器是32位的了,那为什么汇编程序里面不写 mov eax,1 呢,而写mov ax,1又是怎样在32位cpu中执行的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-5 14:30:06 | 显示全部楼层
这个就是你还没有正确理解寄存器。。。16位寄存器ax是在8位寄存器al上扩展了8位,原来的还在哪里叫al,扩展的那8位叫ah,32位寄存器eax,也是在ax的基础上扩展了16位,原来的ax还在哪里。。。就像盖楼房一样,你先盖了一层,然后嫌少了再在上面加了一层,最后又嫌少又在上面加了一层,所以这三层里面都还能住人,都有效,只是起了不同的名字al,ax,eax,当你要在一层住人的时候,就告诉CPU,al,。。要在一层和二层都住人的时候,告诉CPU,ax,  。。。inter造CPU,是兼容,是扩展,没有废弃前面的任何东西。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-5 21:39:59 | 显示全部楼层
呵呵呵。懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 06:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表