首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025汽车电子峰会
2025 AI+IoT 生态大会
2025MCU及嵌入式论坛
直播:介电常数那些事儿
汽车全域ADAS方案
行业及技术活动
研华嵌入式论坛(深圳 武汉 苏州)
嵌入式设计资源库
杂志免费订阅
EE直播间
白皮书
小测验
在线研讨会
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户119066
修改
文章:
47
阅读:
130603
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
130603
评论
7
赞
206
原创
4
2007-11-21 21:14
3413
5
5
分类:
MCU/ 嵌入式
摘自“中原孔海洋”
计算机仿真对单片机指令系统的学习的帮助主要在于帮助理解,加强记忆,适当应用。能够在单片机指令系统学习中的软件主要是MedWin,因为其操作简单,而且可以直观地看到结果。
1.数据传送指令:
数据传送类指令主要包括:MOV、MOVX、MOVC、PUSH、POP、XCH等。
下面我们通过一个简单的汇编程序来学习这些指令。
例1.汇编语言源文件如下图所示:
在MedWin中编辑好源文件以后,以“.asm”为后缀保存为汇编源文件。然后进行编译、汇编并将代码装入内存进行仿真。由于本程序对寄存器、特殊功能寄存器、内部存储器、外部数据存储器都进行了操作,所以需要首先点击“查看”菜单下的相应子菜单打开相应的窗口,即寄存器、特殊功能寄存器、数据区IData、数据区XData,并可以根据需要点击“窗口”菜单下的选项来横向或纵向平铺窗口。
因为本程序需要一步一步地详细查看相应指令执行的结果,所以我们需要在执行指令时点击“指令跟踪(F7)”或“指令单步(F8)”按钮来单步执行。
指令执行中的一个画面如下图所示:
从图中我们能够清晰地观察到每一条指令执行的每一个结果,从而加深我们对这些指令的理解与记忆。
除以上实例程序中所书写的以外,我们还可以使用其他的指令书写程序并在MedWin中仿真,比如PUSH、POP、MOVC等,相信你会得到一个很好的结果,而且MedWin肯定会提高你学习指令的兴趣。
2.算术操作类指令
算术操作类指令主要有:ADD、ADDC、DA A、SUB、INC、DEC、MUL、DIV等。
算术操作类指令比较复杂,掌握起来比较困难,但在实际的单片机项目应用中很少涉及,尤其是MUL、DIV两条指令,在51系列单片机中更是被束之高阁,很少使用。
此处,我们不再像上节那样逐条书写并仿真课本上的程序,如果感兴趣,你可以仿照上节自己书写程序并进行仿真,观察并体会每一条指令执行的结果以及对系统的影响。这里我们通过一个比较实用的例子来演示仿真算术类指令的操作。
例2.两个压缩BCD码求和:将两个BCD码(每个占4位)分别放在一个字节的高4位和低4位即组成压缩BCD码。本例中有两个压缩BCD码数字,都是四位数,第一个数的高两位放在20H,低两位放在21H中;第二个高低位分别放在30H、31H中。要求所得结果放在40H、41H中。
汇编源程序如下图:
在MedWin中编辑好源文件后,以“.asm”为后缀将其保存为汇编文件,然后进行编译、汇编并将代码装入内存进行仿真。你可以像上例那样步进观察其详细执行过程,分析原因;当然也可以在“ljmp $”处设置断点,然后全速运行。需要注意程序中使用到了内部存储器,所以你需要将数据区“IData”窗口调出来进行观察。运行的最后结果如下图所示:
从图中我们能够很清楚地看到内部存储器相应单元的内容,进而观察到程序执行的结果,即:2097+4559=6656。
3.逻辑运算指令、控制转移类指令
逻辑运算指令,顾名思义,是用于逻辑运算的指令。主要包括:CLR、CPL、ANL、ORL、XRL等常用逻辑指令以及循环移位指令如:RL、RLC、RR、RRC等。
控制转移类指令是指在程序中根据具体的条件(或者没有条件)使程序转移到相应的入口的指令。它主要包括三类指令:一是无条件转移指令,比如:AJMP、SJMP、LJMP等;二是条件转移指令,比如:JZ、CJNE、DJNZ等;三是子程序调用返回指令,比如:ACALL、LCALL、RET、RETI等。
鉴于单独针对逻辑运算指令进行的仿真十分简单(事实上与数据传送类指令相同),可以很容易、很方便地自己针对相应的指令设计程序来观察结果,进行学习。所以此处不再针对逻辑运算指令举例仿真。而控制转移类指令又不可能单独使用,往往与其他指令结合使用来组成相应的程序,所以也无法单独进行仿真。所以下面我们就将逻辑运算类指令与控制转移类指令相结合来编写仿真程序,通过一个实例同时来仿真这两类指令的应用。
例3.十六进制整数转化为BCD码整数:4位十六进制整数高低位依次放在R3、R4中,要求转换后的BCD整数按高低位顺序放在R5、R6、R7中。
程序源文件如下图:
在MedWin中编辑好源文件以后,将其以“.asm”为后缀保存为汇编源文件,然后编译、汇编并将产生的代码装入内存进行仿真调试。仿真前需要注意首先输入R3、R4设置十六进制初始值,具体设置方法如下。首先调出寄存器窗口,然后在需要修改的寄存器名称或者数值上双击,这时其内容将变为可修改,我们在其中填入需要设置的数值(字母大小写均可)即可,如下图所示:
设置好初始值以后,你可以单步观察几步以便明白其原理,然后就可以设置一个断点全速运行了,最后就可以看到所得到的结果,比如我们输入8FD6,将得到结果:R5=03,R6=68,R7=22。
4.位操作指令
位操作比较简单,我们也不再写实例进行仿真,如果你感兴趣,可以自己写一些针对相应指令的小程序来仿真之。
这里我们主要说明一下仿真位操作指令与其他指令的不同及注意事项。
位操作指令是对单片机内部存储器的位地址空间进行的相应操作,所以我们查看相应结果时应该打开相应窗口。单片机的位地址空间可以这样来打开:点击“查看”菜单下面的“数据区 Bit”子菜单。位地址空间窗口如下图所示:
除此之外,在相应的位操作中如果我们需要查看各种位标志时,可以点击上图中下侧的“位”标签,将“字节”标签换过来进行查看。
写原创有奖励!2025面包板原创奖励正在进行中
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
点赞(
5
)
收藏
分享到:
上一篇:
5
下一篇:
3
PARTNER CONTENT
换一换>
更多>
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户119066
修改
文章:
47
阅读:
130603
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
130603
评论
7
赞
206
最新评论
更多
大师之作,写的好,学习和参考,晶圆切割是技术问题,处理不好,晶圆就废了
开发工匠 ...
评论博文
2025-7-15
基于浅切多道的晶圆切割 TTV 均匀性控制与 ...
诶?
琳
评论博文
2025-7-15
利润暴跌47%,拼多多慌不慌?
赞赞赞赞赞赞赞赞赞
琳
评论博文
2025-7-14
定制 Linux Kernel Driver 编译示例
最新
博文
基于浅切多道的晶圆切割 TTV 均匀性控 ...
白光干涉仪的光谱干涉模式原理 ...
《从磁能管理到开关电源设计》+认识电 ...
资料下载
本周热帖
常用电源电路设计及应用 (电子电路设 ...
稳压电源设计与技能实训教程 ...
电子元件FVT-7S-HP高精度VCTCXO参数详 ...
电子元件FVT-5S-HP高精度VCTCXO电气规 ...
电子学(第二版)
光刻工艺的未来:浸没式光刻技术的精 ...
永源微APJ14N65D-650V N-Channel增强 ...
【六岳微LY-F335开发板】开发资源详谈 ...
最新资讯
芯语最新
恩智浦“三箭齐发”:重新定义汽车智 ...
把量子计算机装进口袋,量子嵌入式系 ...
一个双向电流镜设计:灵感来自审讯室 ...
谈判失败!博通放弃西班牙10亿美元半 ...
新思科技350亿美元收购案获有条件批准 ...
这个失业潮中大家写简历一定要记得用A ...
洛克希德・马丁公司向日本交付宙斯盾 ...
单踏板被砍废!“刹车失灵”成为过去 ...
今日新闻丨新能源汽车保有量突破10%! ...
解禁的“特供”H20来了,但是AI算力芯 ...
EE直播间
更多
在线研讨会
更多
利用先进精密仪器仪表解决方案,优化研发并加快产品上市
在服务器电源中使用低压 eGaN FET 提升功率密度
安森美(onsemi)碳化硅产品的介绍和应用
探索适用于移动机器人的先进技术
热门
推荐
揭秘:新一代半导体器件如何提升测试电源的性能
深度剖析:测试电源与光伏储能背后的半导体奥秘
【技术前沿】Microchip最新嵌入式技术大揭秘!
超越单处理器嵌入式系统的演进
我要评论
0
5
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/5
报名:2025国际AI+IoT生态发展大会/MCU及嵌入式技术论坛
7月24日,深圳。年度 AIoT 专业盛会:深耕可穿戴、智能家居、机器人等场景的 AI 应用,链接产业链上下游资源。 MCU及嵌入式技术论坛:共同探讨MCU的最新技术、市场趋势和应用前景; 国际电机驱动与控制论坛:探讨电机驱动与控制技术的最新进展及其在多个领域的应用。
正在接受预约❗Arm@2025 世界人工智能大会:定义AI计算的千亿未来 ...
全球3000亿颗芯片的生态霸主Arm,如何定义AI计算未来?世界人工智能大会(WAIC 2025)是全球 AI 领域最具影响力的行业盛会之一,Arm 作为业界领先的低功耗、高性能计算平台,在 7 月 27 日大会期间,Arm 将带来以“AI 无处不在:从云到边尽在 Arm”为主题的技术论坛,与产业生态共探 AI 未来,共创智能科技新篇章。
【2025面包板社区内容狂欢节】发帖/回帖赢25万E币!
活动时间:即日起——2025年全年(发完20万E币为止!)
E币兑换「你的愿望清单,社区来买单!」
为了把E币兑换变成更懂你们的“小确幸”,我们决定开启「社区心愿兑换」计划! 简单来说:你留言想要什么礼品,直接告诉我们,我们整理后纳入兑换;
【2025第1期拆解活动】拆解——洞见电子产品设计智慧!
本期活动已结束,数据暂未统计完毕,请耐心等待。新一期活动正在准备中...
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025汽车电子峰会
2025 AI+IoT 生态大会
2025MCU及嵌入式论坛
直播:介电常数那些事儿
汽车全域ADAS方案
行业及技术活动
研华嵌入式论坛(深圳 武汉 苏州)
嵌入式设计资源库
杂志免费订阅
EE直播间
白皮书
小测验
在线研讨会
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论