[实验]Keil 4下仿真三星2440A芯片的汇编及CPIO控制实验

一、安装Keil uVision4

(详细安装过程忽略)

点击finish完成安装

二、新建项目,导入项目文件

选择对应的芯片,此处我们选择三星的S3C2440A,点击OK

在Source Group 1处右键,点击Add Files to "Sourcce Group 1'...将下图款选的文件添加,然后点击Buil

运行后,再点击魔法棒,勾选Create HEX.File,,再点击Buil运行 ,底部会提示creating hex file... .,没有报错的话就ok了

三、实验任务

任务1、修改x,y参数

此时可看到x,y的值在此处定义,调用add1函数,进行x+y的运算

点击Strat/Stop Debug Session进入调试界面

点击左上角红框的Run按键 ,执行代码

此时观察右边Symbols框 x的地址,通过右下角的Memory1框 输入x的地址发现x的16进制值为1,对应代码中的x=1

同理y的16进制值查询为02,对应代码中的y=2

z的结果为16进制03,对应代码z的值z=1+2=3

此时修改x,y的参数,观察寄存器地址16进制值是否对应改变
①退出调试模式(点击图中按钮)
②更改你想要的参数,此处我将x改为16,y改为2,点击Buil,再进入调试模式
③再点击Run,查看Symbols框的x,y,z的值,发现都对应



至此完成参数的修改

任务2、改add算法

初始add的算法如下(算法解释在注释处)

观察C的代码可知其运算过程↓

进入调试界面检查结果是否一致,发现e的16进制值为4,与c代码运算结果符合

此时修改add.s的算法

①修改结果如图所示(可根据自己需要修改),修改完点击Buil
②根据c代码可推出结果应为e=5
打开调试界面,查看结果是否符合
结果符合,修改add算法完成

任务3、修改add10.s的连加次数,根据学号修改

add10代码如下,累加10次,结果为55

打开调试窗口查看g的10进制值是否为55,查看发现与10累加的值55符合

此时修改add的累加次数,例如学号尾号为14,那么修改如下,点金Buil运行

14的累加值为105,打开调试窗口查看结果是否符合

结果符合,实验完成!

相关推荐
qq_401700413 小时前
嵌入式用Unix时间的优势及其C语言转换
服务器·c语言·unix
bai5459368 小时前
STM32 PWM驱动LED呼吸灯
stm32·单片机·嵌入式硬件
智者知已应修善业8 小时前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
晚风(●•σ )8 小时前
C++语言程序设计——11 C语言风格输入/输出函数
c语言·开发语言·c++
X***48969 小时前
C源代码生成器
c语言·开发语言
合作小小程序员小小店11 小时前
桌面安全开发,桌面二进制%恶意行为拦截查杀%系统安全开发3.0,基于c/c++语言,mfc,win32,ring3,dll,hook,inject,无数据库
c语言·开发语言·c++·安全·系统安全
oioihoii13 小时前
C++语言演进之路:从“C with Classes”到现代编程基石
java·c语言·c++
btzhy14 小时前
STM32单片机:基本定时器应用:单脉冲模式(STM32L4xx)
stm32·单片机·嵌入式硬件·基本定时器应用:单脉冲模式
文sir.15 小时前
温湿度采集系统(stm32+mqtt+Onenet云平台+esp8266)
stm32·单片机·嵌入式硬件·mqtt·onenet·云平台·esp8266
DIY机器人工房15 小时前
嵌入式面试题:你有没有用过直接基于TCP协议,不借助HTTP、MQTT这类上层协议的项目经历?
stm32·单片机·嵌入式硬件·面试题·diy机器人工房