作者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