标题: 用EdSim51仿真软件练习使用8051的汇编语言指令 [打印本页]

作者: cedtek    时间: 2024-1-21 23:01
标题: 用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 单元的内容进行了交换。
作者: mick32    时间: 2024-2-3 04:31
is download link available  - thanks
作者: mick32    时间: 2024-2-3 04:33
EdSim51DITM Simulator now, FREE!
      
作者: pq1972    时间: 2024-2-7 11:04
占位收藏,汇编太难,以后慢慢学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1