標題: 求指點下匯編語言程序,第四五六七行都報語法錯誤 [打印本頁]

作者: pnxzxmm    時間: 2024-4-19 19:18
標題: 求指點下匯編語言程序,第四五六七行都報語法錯誤
ORG 1000H
START:  
        MOV A, #15
        CMP A, #20
                JG greater20         
                CMP A, #10
                JGE greater10
                MOV B, #-1
greater20:
                MOV B, #1
greater10:
                MOV B, #0
END        START


作者: Hephaestus    時間: 2024-4-20 04:42
如果是8051的話,第四五六七行的指令根本不存在,你不可能隨便捏造一些指令就讓編譯器去翻譯。
作者: lyonkon    時間: 2024-4-20 17:00
51單片機數(shù)值比較:
  ORG 0000H
  LJMP        MAIN


MAIN:
  MOV        A,#0X21
  CJNE        A,#0X20,LOOP_0
  SETB        P1.1                         ;A = #0X20則        P1.1 設(shè)置為1
  LJMP         LOOP_END

LOOP_0:
  JC         LOOP_1                         ;A > #0X20則        P1.2 設(shè)置為1
  SETB        P1.2
  LJMP         LOOP_END

LOOP_1:
  JNC        LOOP_END
  SETB        P1.3                         ;A < #0X20則        P1.3 設(shè)置為1
  LJMP         LOOP_END

LOOP_END:

  LJMP        MAIN

END
作者: Hephaestus    時間: 2024-4-21 20:26
lyonkon 發(fā)表于 2024-4-20 17:00
51單片機數(shù)值比較:
  ORG 0000H
  LJMP        MAIN

看得懂就回復(fù),看不懂就別說了。人家的JGE是Jump if Greater and Equal,JG是Jump if Greater,你看你都寫了些啥玩意兒

  1.         MOV          A,#0AH
  2.         SETB         C
  3.         SUBB         A,#014H
  4.         JC           ?C0001
  5.         MOV          A,#0AH
  6.         CLR          C
  7.         SUBB         A,#0AH
  8.         JC           ?C0002
  9.         MOV     B,#0FFH
  10. ?C0001:
  11.         MOV     B,#01H
  12. ?C0002:
  13.         MOV     B,#0H
復(fù)制代碼


作者: lyonkon    時間: 2024-4-24 01:52
Hephaestus 發(fā)表于 2024-4-21 20:26
看得懂就回復(fù),看不懂就別說了。人家的JGE是Jump if Greater and Equal,JG是Jump if Greater,你看你都 ...

上面的例程是cjne 指令代替 cmp指令的示例, 給樓主測試用的。不是按樓主程序?qū)懙摹?br /> ORG 0000H
START:  
                MOV A,#0X30
                CJNE        A,#0X14,ST
ST:                JNC        greater20
                CJNE        A,#0X10,greater10
                JNC        greater10
                MOV B, #-1
greater20:
                MOV B, #1
greater10:
                MOV B, #0
END     

作者: 大漠落日    時間: 2024-4-24 18:11
我不記得有JG,只知道有JC,JE,JNE,好多年了,現(xiàn)在回顧一下,當時學(xué)的還是很用心的,就是后來用的少,改用C了
作者: angmall    時間: 2024-4-25 09:30
他用的是8086匯編語言程序。

要是他用8051,不可能從這里開始 ORG 1000H

作者: Hephaestus    時間: 2024-4-25 14:13
angmall 發(fā)表于 2024-4-25 09:30
他用的是8086匯編語言程序。

要是他用8051,不可能從這里開始 ORG 1000H

DOS程序一個segment前256個字節(jié)是程序段前綴PSP,所以要ORG 100H不是1000H。Windows程序是32位線性地址沒有這個要求。x86的寄存器是AX、BX,高低8位分別是AH、AL、BH、BL,樓主寫的是A、B。

所以你的51匯編和86匯編都沒學(xué)會,就不要發(fā)言了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1