熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
2: { 3: unsigned int i=3,j,k,z; C:0x0003 7F03 MOV R7,#0x03 ; R7 = i C:0x0005 7E00 MOV R6,#0x00 4: j=(++i)+5; C:0x0007 0F INC R7 C:0x0008 EF MOV A,R7 C:0x0009 7001 JNZ C:000C C:0x000B 0E INC R6 C:0x000C 2405 ADD A,#0x05 C:0x000E FD MOV R5,A C:0x000F E4 CLR A C:0x0010 3E ADDC A,R6 C:0x0011 FC MOV R4,A 5: k=(i++)+6; C:0x0012 EF MOV A,R7 C:0x0013 2406 ADD A,#0x06 C:0x0015 FF MOV R7,A ; R7 = k C:0x0016 E4 CLR A C:0x0017 3E ADDC A,R6 C:0x0018 FE MOV R6,A 6: z=j+k; 7: C:0x0019 ED MOV A,R5 C:0x001A 2F ADD A,R7 C:0x001B F509 MOV 0x09,A C:0x001D EC MOV A,R4 C:0x001E 3E ADDC A,R6 C:0x001F F508 MOV 0x08,A 8: } C:0x0021 22 RET 因?yàn)槭蔷植孔兞浚蚤_始使用R7作為i變量,到第三句時(shí),i完成使命,增加了k變量,此時(shí)R7充當(dāng)了k的角色,所以它的值與k相同。 |
只有 i和z的值不對(duì) 不過 在使用 ++ -- 時(shí) 需要考慮到 編譯器自身的處理機(jī)制 建議你 用VS吧 因?yàn)?nbsp; 早期的 編譯器 對(duì) ++ -- 不太一致 但是都是正確的 加油 |
應(yīng)該是跟 i++ 及 ++i 有關(guān),一個(gè)是先做(++i),一個(gè)是后做(i++),可試看看。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
hayden 發(fā)表于 2018-7-7 16:54 z的值也不對(duì),將i的值改為5,結(jié)果i和z的值也是不對(duì),后面將"z=j+k;"改為"z=i+k;"去運(yùn)行結(jié)果,結(jié)果是正確的。不知道是軟件本身的問題還是電腦系統(tǒng)的問題。 ![]() |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
只有i的值異常 |
只有i的值異常,其他值都正常,i正常因該是5,結(jié)果卻是10,你改變一下i的初始值看看,顯示結(jié)果是什么 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)