找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1105|回复: 2
收起左侧

单片机汇编程序在运行的时候跳到另一个程序

[复制链接]
ID:841426 发表于 2020-11-10 11:16 | 显示全部楼层 |阅读模式
这是程序1:
org 0050h
        main:


                mov dptr,#mystr
                mov r0,#50h
        lhh:
                mov a,#0
                movc a,@a+dptr
                mov @r0,a
                inc r0
                cjne a,#0,notzero
                sjmp $
        notzero:
                        inc dptr
                         ljmp lhh
        mystr:
        db 'hello 2020',0
                end
这是程序2
org 8000hljmp mainorg 0050h        main:        mov a,#55h        mov r0,#50h        mov b,#16        mylp:        mov @r0,a        inc r0        djnz b,mylp        sjmp $                end
我把两个程序放在了同一个项目里,在运行程序1的时候,运行到ljmp lhh的时候会自动跳转到程序2的 mov b,#16,然后运行一次之后又会跳转到程序1的inc dptr,是为什么呢?他俩地址好像相同。
回复

使用道具 举报

ID:235200 发表于 2020-11-10 19:48 | 显示全部楼层
单片机程序是从地址0000H开始执行的,第1个程序放在0050H,第2个程序也放在0050H(实际编译后可能覆盖),实际上编译后程序就是一个无序的,乱跳转,你描述的现象就不足为奇了
回复

使用道具 举报

ID:809671 发表于 2020-11-12 14:17 | 显示全部楼层
两个程序是分別用两个單片機嗎?
否則同一个程序是不允許有2个 "end" .
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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