找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机汇编程序解读,一个下午没整明白

  [复制链接]
跳转到指定楼层
楼主
请大神帮忙解读下这三段程序,一条条解读,越详细越好。
一群人学了下下午没整明白。。。

QQ图片20181209181237.jpg (36.05 KB, 下载次数: 55)

QQ图片20181209181237.jpg

QQ图片20181209182402.jpg (39.12 KB, 下载次数: 56)

QQ图片20181209182402.jpg

QQ图片20181209182347.jpg (43.09 KB, 下载次数: 52)

QQ图片20181209182347.jpg

QQ图片20181209182355.jpg (33.34 KB, 下载次数: 49)

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

使用道具 举报

沙发
ID:396960 发表于 2018-12-10 09:20 | 只看该作者
不找书,不学习,直接问人什么意思???除非你是老板了。
回复

使用道具 举报

板凳
ID:401564 发表于 2018-12-10 11:49 | 只看该作者
一条条解读,越详细越好
这语气,神了你,在这的人不是说是为了服务你而来的,大家都是本着相互学习的态度来帮忙别人,同时也是在提高自己.
你知道一条条的去注释,这要多久吗?你也知道自己搞了一个下午.
你随便找一个STC的单片机的数据手册,点到指令集,然后对着指令后面,一条一条抄下来就可以了
回复

使用道具 举报

地板
ID:310519 发表于 2018-12-10 13:03 | 只看该作者
我第一个学习的就是汇编,用了好久。

后来发现C的好处后弃之。

但现在如果不是非必要,不会用汇编的。

回复

使用道具 举报

5#
ID:443246 发表于 2018-12-10 13:53 | 只看该作者
可以帮但没必要
回复

使用道具 举报

6#
ID:443261 发表于 2018-12-10 14:10 | 只看该作者
汇编语言比较基础,学好了  对C语言学习也是很有好处的
回复

使用道具 举报

7#
ID:443295 发表于 2018-12-10 14:36 | 只看该作者
加油   先记代码
回复

使用道具 举报

8#
ID:443305 发表于 2018-12-10 14:48 | 只看该作者
多看书啊,兄弟
回复

使用道具 举报

9#
ID:265687 发表于 2018-12-10 14:55 | 只看该作者
可以帮助!精神可嘉,都用c了,他还在弄汇编
回复

使用道具 举报

10#
ID:442940 发表于 2018-12-10 15:27 | 只看该作者
  不要这样直接看吧,写汇编最好找一个编译软件。 我最早做51就是用汇编的,用伟福什么的那个软件,一步一步去跑代码,看寄存器变化,就知道是什么意思了。学起来还是很快的。   
  如果是为了应付考试,那么还真别浪费这个时间了。
回复

使用道具 举报

11#
ID:387733 发表于 2018-12-10 15:57 | 只看该作者
学汇编不是为了用汇编编程。编程效率C远大于汇编,但是掌握了汇编,可以更好地运用C,更便于调试。有C基础的学习汇编时,可以看看每条C指令对应的汇编,对学习是有好处的
回复

使用道具 举报

12#
ID:155507 发表于 2018-12-11 00:15 | 只看该作者
我给你来个试试

  1. ;流水灯程序
  2. org         0000h       ;设置起始地址
  3.                 ajmp main   ;无条件跳转指令 跳到 main
  4. org         0100h       ;定位的伪指令 顺序放到从0100H开始的程序单元
  5. main:         mov r4,#04h ;向R4寄存器中载入十六进制数04H
  6. loop:         mov a,#01h  ;向A寄存器中载入十六进制数01H
  7. loop1:         mov P1,a    ;取出的值输出到P1端口
  8.                 acall delay ;调入延时程序
  9.                 rl a        ;  累加器A 循环左移
  10.                 djnz r4,loop1  ;检测R4是否为零,每次减1不为零就跳 否则跳到loop1处继续执行
  11.                 mov r4,#04h ;赋初值
  12.                 ajmp loop   ;无条件跳转指令 跳到loop
  13. delay:         mov r7,#64h ;   延时程序 ;向R7寄存器中载入十六进制数64H
  14. loop3:         mov r6,#0C8h ;向R6寄存器中载入十六进制数0C8H
  15. loop4:         nop         ;表示执行一条没有什么意义的空指令
  16.                 nop         ;表示执行一条没有什么意义的空指令
  17.                 nop         ;表示执行一条没有什么意义的空指令
  18.                 djnz r6,loop4  ;检测R6是否为零,每次减1不为零就跳 否则跳到loop4处继续执行
  19.                 djnz r7, loop3  ;检测R7是否为零,每次减1不为零就跳 否则跳到loop3处继续执行
  20.                 ret         ;返回指令
  21. End  ;程序结束
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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