找回密码
 立即注册

QQ登录

只需一步,快速开始

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

学习51单片机汇编,一个编译错误,求指正

[复制链接]
跳转到指定楼层
楼主
ID:237218 发表于 2020-6-28 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
把demo.asm最后定义表的指令注释可以编译链接,
打开注释可以编译,链接有错误,不清楚哪里问题,设置已经是最大内存程序空间模型了,
哪位有空帮看下。。。
  1. $include (delay.inc)
  2. org 0x00
  3. ajmp start

  4. org 0x0b
  5. ajmp time0_isr

  6. org 0x30
  7. ;********************************main****************************************
  8. start:
  9.         mov 30h,#0h
  10.     acall time0_init
  11.         
  12.         acall uart_init
  13.         
  14. loop:nop
  15.         ajmp loop
  16. ;****************************************************************************
  17.         
  18.         
  19.         
  20.         
  21.         
  22. ;*****************************************
  23. ;funtion name: time0_isr
  24. ;describe:
  25. ;*****************************************
  26. time0_isr:
  27.         push acc
  28.         push psw
  29.         inc 30h
  30.         mov a,30h
  31.         cjne a,#20,t0_ret
  32.         cpl p1.0
  33.         mov sbuf,#0xaa    ;----------tx 0xaa
  34.         mov 30h,#0h
  35.         t0_ret:        
  36.             mov th0,#0x3c
  37.                 mov tl0,#0xb0
  38.                 pop psw
  39.                 pop acc
  40.         reti
  41.         

  42.         
  43. ;*****************************************
  44. ;funtion name: uart_init
  45. ;describe:
  46. ;*****************************************
  47. uart_init:    ;4800 ;boud = t1/32
  48.     mov scon,#0x50  ;uart mode:01
  49.         anl tmod,#0x0f
  50.         orl tmod,#0x20  ;t1 mode2
  51.         mov pcon,#0x80  ;double boud
  52.         mov th1,#0xf3   ;8bits auto load
  53.         mov tl1,#0xf3
  54.         clr es
  55.         setb ea
  56.         setb tr1
  57.         ret
  58. org 0xc800 ;50k start
  59. db  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71        

  60. end
复制代码

5_查表-编译有错误.rar

21.38 KB, 下载次数: 4

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

使用道具 举报

沙发
ID:235200 发表于 2020-6-29 07:39 | 只看该作者
org 0xc800 ;50k start  与选择的单片机有关,最大存储器是多大,8K地址是0x1FFF,DB所定义的是显示段码,贴出来的程序未看到用到,若真要用,只需在DB前加一个标号就可以了,应用时直接用标号地址,不必固定定义到C800H地址
回复

使用道具 举报

板凳
ID:235200 发表于 2020-6-29 07:41 | 只看该作者
实际其原因是所定义的地址超过了ROM的最大地址
回复

使用道具 举报

地板
ID:237218 发表于 2020-6-29 11:28 | 只看该作者
csmyldl 发表于 2020-6-29 07:39
org 0xc800 ;50k start  与选择的单片机有关,最大存储器是多大,8K地址是0x1FFF,DB所定义的是显示段码,贴 ...

单片机stc89c816,程序空间62k,嗯,那个是段码,我试着点数码管的,但发现org定义在2k后面就会报错,不知道是我设置不对还是代码不对
回复

使用道具 举报

5#
ID:237218 发表于 2020-6-29 11:29 | 只看该作者
csmyldl 发表于 2020-6-29 07:41
实际其原因是所定义的地址超过了ROM的最大地址

我猜也是这个原因,但是不知道怎么改
回复

使用道具 举报

6#
ID:237218 发表于 2020-6-29 11:42 | 只看该作者
holikey 发表于 2020-6-29 11:28
单片机stc89c816,程序空间62k,嗯,那个是段码,我试着点数码管的,但发现org定义在2k后面就会报错,不知 ...

stc89c516,打错了,额
回复

使用道具 举报

7#
ID:519089 发表于 2020-6-30 13:44 | 只看该作者
编译器没有和谐,代码限制2K
回复

使用道具 举报

8#
ID:237218 发表于 2020-7-1 10:01 | 只看该作者
找到原因了,设置偏上rom到0x7fff的选项不能打钩,只选最大64krom模型就行了
回复

使用道具 举报

9#
ID:744327 发表于 2020-7-1 10:14 | 只看该作者
哦!在设置偏上rom到0x7fff的选项不能选上,只要选最大64krom模型就行了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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