鱼C论坛

 找回密码
 立即注册
查看: 2921|回复: 9

[已解决]对于赋值有些迷糊

[复制链接]
发表于 2020-4-4 17:07:21 | 显示全部楼层 |阅读模式

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

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

x
数值是随机的,想问一下在masm中
mov  bx ,6h  
mov  ax  [bx]

mov bx 6h
mov ah,0
mov al,[bx]
这两个代码给ax赋值后是不同的吗
最佳答案
2020-4-9 10:01:26
当然不同啦
mov ax, [bx]   是字操作,一次操作两个内存单元,会把(7H)赋给ah, (6h)赋给al。
mov al, [bx]    是字节操作,一次操作一个内存单元, 会把(6h)赋值给al
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-8 14:17:57 | 显示全部楼层
结果ax可能不同,虽然两种方法都会把内存中ds:[bx]的低位值赋给al,但:
第一种执行后,[bx]会把高位值赋给ah,这个值可能不为0,所以最后ah可能不为0
第二种执行后,[bx]不会把高位值赋给ah,最后ah值肯定是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-4 17:09:29 | 显示全部楼层
是一样的,但是下面的高位还可以存放其他数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-4 17:15:01 | 显示全部楼层
BngThea 发表于 2020-4-4 17:09
是一样的,但是下面的高位还可以存放其他数据

就是意思如果不分开写,会默认前面是零,分开写高八位还可以自己定义数值吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 17:27:39 | 显示全部楼层
因为赋值之后 高位都是0,所以赋值到低位是一样的
第一种赋值 其实也是在给低位赋值 高位也都是为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:15:25 | 显示全部楼层
第一种bx的取值范围是0h-ffh
第二种bx的取值范围是0h-ffffh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 10:14:55 | 显示全部楼层
就是要努力呀 发表于 2020-4-4 21:15
第一种bx的取值范围是0h-ffh
第二种bx的取值范围是0h-ffffh

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 17:21:45 | 显示全部楼层
韩菜菜 发表于 2020-4-4 17:27
因为赋值之后 高位都是0,所以赋值到低位是一样的
第一种赋值 其实也是在给低位赋值 高位也都是为0

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 19:42:23 | 显示全部楼层
bx是一个字,等于两个字节,bh,bl分别为bx高字节和低字节.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 10:01:26 | 显示全部楼层    本楼为最佳答案   
当然不同啦
mov ax, [bx]   是字操作,一次操作两个内存单元,会把(7H)赋给ah, (6h)赋给al。
mov al, [bx]    是字节操作,一次操作一个内存单元, 会把(6h)赋值给al
MKGVYY{(R~%DXQS9H]]9AKS.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 09:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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