找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2438|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

51單片機中匯編語言IF語句怎么理解?很多沒有介紹

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:748096 發(fā)表于 2022-9-21 21:22 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題 謝謝大家
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:121859 發(fā)表于 2022-9-22 08:35 | 只看該作者
親,51單片機匯編語言中是沒有IF語句的。
回復(fù)

使用道具 舉報

板凳
ID:123289 發(fā)表于 2022-9-22 08:54 | 只看該作者
請先閱讀完51的指令系統(tǒng),讀完自然就會了。
回復(fù)

使用道具 舉報

地板
ID:155507 發(fā)表于 2022-9-22 09:12 | 只看該作者
請先閱讀完51的指令系統(tǒng),特別是程序分支指令。
JNZ JZ CJNE DJNZ
跳轉(zhuǎn)指令。
JB JNB JC JNC JBC
回復(fù)

使用道具 舉報

5#
ID:748096 發(fā)表于 2022-9-22 12:32 來自手機 | 只看該作者
匯編預(yù)處理指令,我認(rèn)為是給編譯器看的,如果條件滿足就編譯
回復(fù)

使用道具 舉報

6#
ID:748096 發(fā)表于 2022-9-22 12:33 來自手機 | 只看該作者
zhxiufan 發(fā)表于 2022-9-22 08:35
親,51單片機匯編語言中是沒有IF語句的。

碰到過,3000多行代碼,出現(xiàn)多次
回復(fù)

使用道具 舉報

7#
ID:155507 發(fā)表于 2022-9-22 13:15 | 只看該作者
滄興電子 發(fā)表于 2022-9-22 12:32
匯編預(yù)處理指令,我認(rèn)為是給編譯器看的,如果條件滿足就編譯

不要將 IF 指令與 IF 語句混淆。 它們不是等效的,并且不能與相同的符號一起使用。

IF 指令開始一個用于條件程序匯編的 IF-ELSE-ENDIF 結(jié)構(gòu)。 對指定的表達(dá)式求值,如果值為非零 (TRUE),則匯編 IF 塊內(nèi)的代碼。 如果表達(dá)式為零 (FALSE),則不組裝 IF 塊,并評估構(gòu)造的后續(xù)塊。

IF 塊由 ELSEIF、ELSE 或 ENDIF 指令終止。

IF-ELSE-ENDIF 塊最多可以嵌套 10 層。

  1. $IF (SWITCH = 1)
  2. .
  3. .
  4. .
  5. $ELSEIF (SWITCH = 2)
  6. .
  7. .
  8. .
  9. $ELSE
  10. .
  11. .
  12. .
  13. $ENDIF
復(fù)制代碼


回復(fù)

使用道具 舉報

8#
ID:155507 發(fā)表于 2022-9-22 13:18 | 只看該作者
滄興電子 發(fā)表于 2022-9-22 12:33
碰到過,3000多行代碼,出現(xiàn)多次

Ax51 匯編器提供了許多可用于控制源文件匯編的指令。 指令由一個或多個字母或數(shù)字組成,除非另有說明,否則可以在命令行上的文件名之后或在源文件中以美元符號 ('$') 開頭時指定。 例如:

  1. A51 SAMPLE.A51 SYMBOLS DEBUG
  2. or

  3. $SYMBOLS DEBUG
  4. or

  5. $SYMBOLS
  6. $DEBUG
復(fù)制代碼
回復(fù)

使用道具 舉報

9#
ID:1034262 發(fā)表于 2022-9-22 14:27 | 只看該作者
樓主你問問題最好貼一句例子。
匯編IF一般是用于條件編譯,跟C語言的#if一個意思,而51的111條指令是沒有IF的,判斷指令是JNB、JBC、JZ、JNZ、CJNE等等。
回復(fù)

使用道具 舉報

10#
ID:748096 發(fā)表于 2022-9-22 21:58 來自手機 | 只看該作者
感謝各位答復(fù)
回復(fù)

使用道具 舉報

11#
ID:624769 發(fā)表于 2022-9-23 12:20 | 只看該作者
滄興電子 發(fā)表于 2022-9-22 12:32
匯編預(yù)處理指令,我認(rèn)為是給編譯器看的,如果條件滿足就編譯

對的,就是這個意思。
所以,不是匯編語言, 是 編譯標(biāo)記。
分  if  和  $if  兩種,一個是 文件層面的,一個是編譯器層面的,
相對應(yīng)的  也分, else   和  $else,  兩者互不干涉,要分清。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表