[問題] 關於變數的運算

看板ASM (組合語言)作者 (Louis Kao)時間11年前 (2013/08/25 10:21), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
各位好: 我撰寫的程式是給keil C作編譯的 裡面有負責需要做四則運算的部分 內容大概如下: unsigned char min=5,min1=1; unsigned char cal1,cal2,cal3,cal4; cal1=min+min1; cal2=min*min1; cal3=min-min1; cal4=min/min1; 其中,cal1=6 cal2=5 計算結果正常 cal3=0xFFFC 非0x04 很奇怪 請問各位有誰知道原因嗎? 我該如何處理 將計算結果恢復正常呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.166.31

08/25 11:01, , 1F
正常來說,你的計算會在編譯時被最佳化掉,給他volatile吧
08/25 11:01, 1F

08/25 13:18, , 2F
你碰到騙人布了,char哪來0xfffc
08/25 13:18, 2F

08/30 01:08, , 3F
用keil的debug模式trace一下很快就可看出問題在那了
08/30 01:08, 3F

08/30 01:12, , 4F
我的意思是用keil的debug mode模擬跑一下就知道了
08/30 01:12, 4F

08/30 01:12, , 5F
不需要8051硬體, 還可配合ASM code一起看
08/30 01:12, 5F
文章代碼(AID): #1I6MeGPT (ASM)
文章代碼(AID): #1I6MeGPT (ASM)