作者initial1635 (SurprisingTW)
看板ASM
标题[问题] 32位元比较大小
时间Thu Apr 12 09:47:00 2012
我想写个程式
当使用者输入'+'时跳出
但我发现只有使用8位元来存input的时候才会成功
例如:cmp al, '+'
使用16位元和32位元的时候都会侦测不到
例如:cmp ax, '+' ; cmp eax, '+'
然後我用writebin来检查 发现'+'在8位元下是
0000 0000 0000 0000 0000 0000 0010 1011
16位元下是
0000 0000 0000 0000 0000 0000 0010 1011
32位元下是
0000 0000 0000 1011 0000 0000 0010 1011
所以发现cmp eax, '+'是不能用的
但是不解的是为什麽16位元也不能用
当我写cmp ax, '+' 的时候完全不鸟我
je Quit
又因为这个程式需要用到push pop所以资料型态要设定成16位元以上
该怎麽办呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.184.150
1F:推 TaiwanXDman:永昇难忘的作业吧(咦 04/12 17:59
2F:推 TaiwanXDman:你input是用Irvine的ReadChar吗? 04/12 18:14
3F:→ TaiwanXDman:ReadChar AH会放键盘扫描码 AL放该字元 所以跟 04/12 18:15
4F:→ TaiwanXDman:或EAX比自然会错 还是你是用别的input方法? 04/12 18:15
5F:→ TaiwanXDman:讲错了囧 别理我- - 04/12 18:16