CCS C-COMPILER を始めましたが
CCS C-COMPILER をかじり始めたのですが かなり苦労しています
どなたか教えてください。
演算子の動きをデバック機能によって勉強しています。
確認を watch によって x と y を step モードでどう変化するかを見るのですが何度やっても途中から x=y ではなくなります
実際の結果を書きますと(x,y)が(1,1)(2,2)(3,3)(4,4)。。。。。(63,63)(0,64)(2,65)。。。。(62,126)(63,127)(0,128)(2,129)。。。のように変化します
複雑な式ではないのにどうしてこんな結果になるかわからず困っています おそらく基本的なところで間違っていると思っています
ソースファイルとリストは下記の通りです よろしくお願いします
<<ソースファイル>>
#include <16f84a.h>
#fuses HS, NOWDT, PUT, NOPROTECT
int x=0x01;
int y=1;
int b=1;
main()
{
while(1)
{
x+=b;
y+=b;
}
}
<<リスト>>
CCS PCM C Compiler, Version 4.110, 53639 06-2-12 16:52
Filename: C:\Program Files\MPLAB IDE\projects\gokan_ccs_c\ccs_c_16f84_20120206_1.lst
ROM used: 17 words (2%)
Largest free fragment is 1007
RAM used: 7 (10%) at main() level
7 (10%) worst case
Stack: 0 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 004
0003: NOP
.................... #include <16f84a.h>
.................... //////// Standard Header file for the PIC16F84A device ////////////////
.................... #device PIC16F84A
.................... #list
....................
.................... #fuses HS, NOWDT, PUT, NOPROTECT
....................
.................... int x=0x01;
.................... int y=1;
.................... int b=1;
.................... main()
.................... {
0004: CLRF 04
0005: MOVLW 1F
0006: ANDWF 03,F
0007: MOVLW 01
0008: MOVWF 10
0009: MOVWF 11
000A: MOVWF 12
.................... while(1)
.................... {
.................... x+=b;
000B: MOVF 12,W
000C: ADDWF 10,F
.................... y+=b;
000D: MOVF 12,W
000E: ADDWF 11,F
.................... }
000F: GOTO 00B
.................... }
....................
0010: SLEEP
Configuration Fuses:
Word 1: 3FF2 HS NOWDT PUT NOPROTECT
お礼
回答ありがとうございます。 参考にします。