找回密码
 立即注册

QQ登录

只需一步,快速开始

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

用EdSim51仿真软件练习使用8051的汇编语言指令

[复制链接]
跳转到指定楼层
楼主
使用EdSim51仿真软件练习10课:单片机数据传送类指令
首先汇编后没有报告错误,如下图所示

然后执行下面这条指令:
  1. MOV 30H,#12
复制代码
将十进制数据 12,也就是十六进制的 0x0CH 送入到 RAM 中地址是 30H 的单元,结果如下图所示

接着执行下面这条指令:
  1. MOV 31H,#23
复制代码
和第一条指令类似,将十进制数据 23,也就是十六进制的 0x17H 送入到 RAM 中地址是 31H 的单元,结果如下图所示

下一步执行下面这条指令:
  1. PUSH 30H
复制代码
完成第一次压栈操作,先将堆栈指针 SP——0x07H 进行加一操作,得到 0x08H,然后将 RAM 中地址是 30H 的单元的内容——0x0CH 推入以 SP 此时值——0x08H 为地址的 RAM 单元,结果如下图所示

紧接着执行下面这条指令:
  1. PUSH 31H
复制代码
完成第二次压栈操作,先将堆栈指针 SP——0x08H 进行加一操作,得到 0x09H,然后将 RAM 中地址是 31H 的单元的内容——0x17H 推入以 SP 此时值——0x09H 为地址的 RAM 单元,结果如下图所示

倒数第 2 条指令被执行:
  1. POP 30H
复制代码
开始进行出栈,先将以 SP 此时值——0x09H 为地址的 RAM 单元内容——0x17H 弹出到 RAM 中地址是 30H 的单元,然后堆栈指针 SP——0x09H 进行减一操作,得到 0x08H,结果如下图所示

最后一条指令被执行:
  1. POP 31H
复制代码
实现第二次出栈,先将以 SP 此时值——0x08H 为地址的 RAM 单元内容——0x0CH 弹出到 RAM 中地址是 31H 的单元,然后堆栈指针 SP——0x08H 进行减一操作,得到 0x07H,结果如下图所示


从上图中的“Data Memory”可以看到,最后 RAM 单元 30H 地址的内容是 0x17H——十进制的 23,RAM 单元 31H 地址的内容是 0x0CH——十进制的 12,也就是说执行完上面的 6 条指令,RAM中地址为 30H、31H 单元的内容进行了交换。

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:228452 发表于 2024-2-3 04:31 | 只看该作者
is download link available  - thanks
回复

使用道具 举报

板凳
ID:228452 发表于 2024-2-3 04:33 | 只看该作者
EdSim51DITM Simulator now, FREE!
      
回复

使用道具 举报

地板
ID:624685 发表于 2024-2-7 11:04 | 只看该作者
占位收藏,汇编太难,以后慢慢学习
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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