18272826399 发表于 2020-4-4 17:07:21

对于赋值有些迷糊

数值是随机的,想问一下在masm中
movbx ,6h
movax

mov bx 6h
mov ah,0
mov al,
这两个代码给ax赋值后是不同的吗

流风逸雪 发表于 2020-4-8 14:17:57

结果ax可能不同,虽然两种方法都会把内存中ds:的低位值赋给al,但:
第一种执行后,会把高位值赋给ah,这个值可能不为0,所以最后ah可能不为0
第二种执行后,不会把高位值赋给ah,最后ah值肯定是0

BngThea 发表于 2020-4-4 17:09:29

是一样的,但是下面的高位还可以存放其他数据

18272826399 发表于 2020-4-4 17:15:01

BngThea 发表于 2020-4-4 17:09
是一样的,但是下面的高位还可以存放其他数据

就是意思如果不分开写,会默认前面是零,分开写高八位还可以自己定义数值吗

韩菜菜 发表于 2020-4-4 17:27:39

因为赋值之后 高位都是0,所以赋值到低位是一样的
第一种赋值 其实也是在给低位赋值 高位也都是为0

就是要努力呀 发表于 2020-4-4 21:15:25

第一种bx的取值范围是0h-ffh
第二种bx的取值范围是0h-ffffh

18272826399 发表于 2020-4-5 10:14:55

就是要努力呀 发表于 2020-4-4 21:15
第一种bx的取值范围是0h-ffh
第二种bx的取值范围是0h-ffffh

谢谢

18272826399 发表于 2020-4-5 17:21:45

韩菜菜 发表于 2020-4-4 17:27
因为赋值之后 高位都是0,所以赋值到低位是一样的
第一种赋值 其实也是在给低位赋值 高位也都是为0

谢谢

wh82325 发表于 2020-4-7 19:42:23

bx是一个字,等于两个字节,bh,bl分别为bx高字节和低字节.

百里狂生 发表于 2020-4-9 10:01:26

当然不同啦
mov ax,    是字操作,一次操作两个内存单元,会把(7H)赋给ah, (6h)赋给al。
mov al,     是字节操作,一次操作一个内存单元, 会把(6h)赋值给al
页: [1]
查看完整版本: 对于赋值有些迷糊