标题: 求指点下汇编语言程序,第四五六七行都报语法错误 [打印本页]

作者: 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单片机数值比较:
  ORG 0000H
  LJMP        MAIN


MAIN:
  MOV        A,#0X21
  CJNE        A,#0X20,LOOP_0
  SETB        P1.1                         ;A = #0X20则        P1.1 设置为1
  LJMP         LOOP_END

LOOP_0:
  JC         LOOP_1                         ;A > #0X20则        P1.2 设置为1
  SETB        P1.2
  LJMP         LOOP_END

LOOP_1:
  JNC        LOOP_END
  SETB        P1.3                         ;A < #0X20则        P1.3 设置为1
  LJMP         LOOP_END

LOOP_END:

  LJMP        MAIN

END
作者: Hephaestus    时间: 2024-4-21 20:26
lyonkon 发表于 2024-4-20 17:00
51单片机数值比较:
  ORG 0000H
  LJMP        MAIN

看得懂就回复,看不懂就别说了。人家的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
复制代码


作者: lyonkon    时间: 2024-4-24 01:52
Hephaestus 发表于 2024-4-21 20:26
看得懂就回复,看不懂就别说了。人家的JGE是Jump if Greater and Equal,JG是Jump if Greater,你看你都 ...

上面的例程是cjne 指令代替 cmp指令的示例, 给楼主测试用的。不是按楼主程序写的。
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,好多年了,现在回顾一下,当时学的还是很用心的,就是后来用的少,改用C了
作者: angmall    时间: 2024-4-25 09:30
他用的是8086汇编语言程序。

要是他用8051,不可能从这里开始 ORG 1000H

作者: Hephaestus    时间: 2024-4-25 14:13
angmall 发表于 2024-4-25 09:30
他用的是8086汇编语言程序。

要是他用8051,不可能从这里开始 ORG 1000H

DOS程序一个segment前256个字节是程序段前缀PSP,所以要ORG 100H不是1000H。Windows程序是32位线性地址没有这个要求。x86的寄存器是AX、BX,高低8位分别是AH、AL、BH、BL,楼主写的是A、B。

所以你的51汇编和86汇编都没学会,就不要发言了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1