汇编中16进制问题,求救求解啊!!!

qq363466330 2011-05-05 07:11:22
这样的:
mov al , 45h ;al=45h 恩 对这个我没有疑问,我的疑问在下面
and al , 31h ;al=01h 我晕了,为什么等于01h了 怎么回事 能不能给我个解答啊大哥们!!!

程序在 IA-32 机器下的
...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq363466330 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 va_zaixuexi 的回复:]

1. 不管你是不是业余的,劝你还是不要学程序了
2. 计算如下(8421你都不知道么?)
45h -> 0100 0101(b)
31h -> 0011 0001(b)
----------------------- and(有0必0,全1才1)
0000 0001(b) = 01h
3. DEBUG

C:\>debug
-a 0100
1800:0100 m……
[/Quote]
呵呵,你说对了,本来就不是专业些程序的,我也没那个必要,就你说到点子上了,其他人都不说and逻辑运算的规则,最后还是自己去找书看到了,逢0毕0,早前还以为是 算术+运算呢
StillMiss 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 va_zaixuexi 的回复:]

1. 不管你是不是业余的,劝你还是不要学程序了
2. 计算如下(8421你都不知道么?)
45h -> 0100 0101(b)
31h -> 0011 0001(b)
----------------------- and(有0必0,全1才1)
0000 0001(b) = 01h
3. DEBUG

C:\>debug
-a 0100
1800:0100 m……
[/Quote]

呵呵
va_zaixuexi 2011-05-06
  • 打赏
  • 举报
回复
1. 不管你是不是业余的,劝你还是不要学程序了
2. 计算如下(8421你都不知道么?)
45h -> 0100 0101(b)
31h -> 0011 0001(b)
----------------------- and(有0必0,全1才1)
0000 0001(b) = 01h
3. DEBUG

C:\>debug
-a 0100
1800:0100 mov al,45
1800:0102 and al,31
1800:0104
-t

AX=0045 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1800 ES=1800 SS=1800 CS=1800 IP=0102 NV UP EI PL NZ NA PO NC
1800:0102 2431 AND AL,31
-t

AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 ;AL的值
DS=1800 ES=1800 SS=1800 CS=1800 IP=0104 NV UP EI PL NZ NA PO NC
StillMiss 2011-05-06
  • 打赏
  • 举报
回复
and 可以将对应位变0,其他位不变。
45H ---> 0100 0101
31H ---> 0011 0001
______________________
0000 0001 --->
aiwnx同志已经给出了答案啦。


aiwnx 2011-05-06
  • 打赏
  • 举报
回复
是我写错了,45h -> 01001001
但是不影响结果
楼主好好补习一下最基本的常识吧,真的不用多做解释了
DLINKSERVICE 2011-05-06
  • 打赏
  • 举报
回复
路过,楼主找到解决方法了吗
qq363466330 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aiwnx 的回复:]

45h -> 10001001
31h -> 00110001
二者做“与”操作,结果为 00000001 -> 01h
有什么问题吗?
[/Quote]
当然有问题了,你的16进制转二进制错了吧,再说了,我知道是“与”操作,“与”操作的定义不是 * 嘛? 可是怎么算也算不到结果为00000001啊? 怎么回事? 能不能详细解释一下啊、
谢谢了 大哥!!!
lr2131 2011-05-05
  • 打赏
  • 举报
回复
路过,不需要解释了
aiwnx 2011-05-05
  • 打赏
  • 举报
回复
45h -> 10001001
31h -> 00110001
二者做“与”操作,结果为 00000001 -> 01h
有什么问题吗?

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧