鱼C论坛

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

不明白的问题

[复制链接]
发表于 2012-2-21 06:48:23 | 显示全部楼层 |阅读模式

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

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

x
第二章我看到过有错误的指令  比如说8位和16位寄存器不能进行数据交换  可是为什么学到后边的时候  去有能进行了?    比如说第二章说mov bl,ax    mov ax,bh   都是错误的    可是为什么到后边可以自己定义数据的时候  去可以用 设置循环 来转换字母大小写 比如mov al,bx   我知道这个是编译器的可以写的指令   可是为什么没有错误    弄的我很模糊        那个大师告诉一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-21 15:00:05 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-2-21 15:17 编辑

应该是不可以的 你自己用编译器编译一下一定会报错的 我昨天写第10章的课程设计1 还用用过 mov dh,ax这样是不会通过编译的 你说的转换字母大小写那是用到and or 指令 而且也不会用到16位寄存器ax bx    标准指令是and al,11011111     后面的是八位 2进制码不是16位寄存器!
al ah bl bh 等等 都是8位寄存器     这些的范围是 00-ff     两个8位寄存器 一起才顶一个16位寄存器   11111111  这8条1的2进制数表示的范围最大就是ff
ax bx 等等都是16位寄存器  0000-ffff  这个范围是16条1   11111111  11111111     才是一个16位寄存器表示的范围
                                                                                  这8条1 相当于al    这8条相当于ah
                                                                               这两个合起来是一个完整的16位寄存器


所以你说   最大存8个1 的地方 去存16个1的 数据 存的下么? mov al,ax
或者说你用 存16个1的地方 给8个1的数据放进去  是往高八位上存还是往低八位上存 mov ax,al  


后面你学到的 mov al,[bx] 这是将DS数据段[bx]偏移地址处的数据 存进al    不是 mov al,bx
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-3 01:19:46 | 显示全部楼层
可能是编译器出问题了吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 20:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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