找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 211|回复: 7
打印 上一主题 下一主题
收起左侧

求指点下汇编语言程序,第四五六七行都报语法错误

[复制链接]
跳转到指定楼层
楼主
ID:1117375 发表于 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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2024-4-20 04:42 | 只看该作者
如果是8051的话,第四五六七行的指令根本不存在,你不可能随便捏造一些指令就让编译器去翻译。
回复

使用道具 举报

板凳
ID:73992 发表于 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
回复

使用道具 举报

地板
ID:883242 发表于 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
复制代码

回复

使用道具 举报

5#
ID:73992 发表于 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     
回复

使用道具 举报

6#
ID:195496 发表于 2024-4-24 18:11 | 只看该作者
我不记得有JG,只知道有JC,JE,JNE,好多年了,现在回顾一下,当时学的还是很用心的,就是后来用的少,改用C了
回复

使用道具 举报

7#
ID:155507 发表于 2024-4-25 09:30 | 只看该作者
他用的是8086汇编语言程序。

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

使用道具 举报

8#
ID:883242 发表于 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汇编都没学会,就不要发言了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表