学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

新手的一个简单问题

新手的一个简单问题

MOV AL,5
CBW      ;执行结果为(AX)=0005H
MOV AL,98h
CBW      ;执行结果为(AX)=0FF98

现在我要问的是,为什么第二行执行了CBW后,(AH)=00,而第四行执行CBW后,(AH)=0FF,这是为什么啊?

TOP

CBW指令是将AL的最高位的二进制数扩展到AH上去,所以AH中是00H还是0FFH,取决于AL的最高位,第一种情况AL的最高位是0,所以AH是00H,第二种情况AL的最高位是1,所以AH中为0FFH

TOP

回复 1# 的帖子

2楼正解。

TOP

我想问的是  0FF98H
其中0 存放在哪里  AX不是放不下吗?

TOP

在书写时,为了区别,在数据后面紧跟一个字母H。当十六进制数的第一个字符是字母时,在第一个字符之前必须添加一个‘0’。如:100H、56EFH、0FFH、0ABCDH等都是十六进制数。其中的0只是一个标号本身并没有什么意义
实力铸就经典!
成功绝非偶然!

TOP

呵呵,知道点常识了,我说怎么有些十六进制数的前面老有0呢,原来是这样

学习,学习

TOP

发新话题