找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 762|回复: 3
收起左侧

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

[复制链接]
ID:866313 发表于 2024-1-21 23:01 | 显示全部楼层 |阅读模式
使用EdSim51仿真软件练习10课:单片机数据传送类指令
首先汇编后没有报告错误,如下图所示
20240121223019_bPGYFWFSQ96.png
然后执行下面这条指令:
  1. MOV 30H,#12
复制代码
将十进制数据 12,也就是十六进制的 0x0CH 送入到 RAM 中地址是 30H 的单元,结果如下图所示
20240121223137_qoPJuJ7M0D4.png
接着执行下面这条指令:
  1. MOV 31H,#23
复制代码
和第一条指令类似,将十进制数据 23,也就是十六进制的 0x17H 送入到 RAM 中地址是 31H 的单元,结果如下图所示
20240121223200_pLPvWqbCJD0.png
下一步执行下面这条指令:
  1. PUSH 30H
复制代码
完成第一次压栈操作,先将堆栈指针 SP——0x07H 进行加一操作,得到 0x08H,然后将 RAM 中地址是 30H 的单元的内容——0x0CH 推入以 SP 此时值——0x08H 为地址的 RAM 单元,结果如下图所示
20240121223258_bv1IjP7PAV1.png
紧接着执行下面这条指令:
  1. PUSH 31H
复制代码
完成第二次压栈操作,先将堆栈指针 SP——0x08H 进行加一操作,得到 0x09H,然后将 RAM 中地址是 31H 的单元的内容——0x17H 推入以 SP 此时值——0x09H 为地址的 RAM 单元,结果如下图所示
20240121223325_Svr0i3XcWX8.png
倒数第 2 条指令被执行:
  1. POP 30H
复制代码
开始进行出栈,先将以 SP 此时值——0x09H 为地址的 RAM 单元内容——0x17H 弹出到 RAM 中地址是 30H 的单元,然后堆栈指针 SP——0x09H 进行减一操作,得到 0x08H,结果如下图所示
20240121223417_wER9BqeAG76.png
最后一条指令被执行:
  1. POP 31H
复制代码
实现第二次出栈,先将以 SP 此时值——0x08H 为地址的 RAM 单元内容——0x0CH 弹出到 RAM 中地址是 31H 的单元,然后堆栈指针 SP——0x08H 进行减一操作,得到 0x07H,结果如下图所示

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

评分

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

查看全部评分

回复

使用道具 举报

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 单片机教程网

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