前面给出了一个实现加法的小程序,但是如果要求变得更复杂、步骤变得更繁琐,这时又该怎么办呢??我们可以使用子程序来解决这个问题,这里给个例子:若字变量Data1和Data2分别存放着两个16位无符号数,编写求两个数之和的子程序,并将和存放到Sum字节存储空间中。代码如下:
org $0070
data1 ds.b 2
data2 ds.b 2
sum ds.b 3
org $1860
Add_Pro: clc ;清空进位标志位
clrx
clrh
clra
mov #$00,data1
mov #$04,data1+1
mov #$00,data2
mov #$28,data2+1
lda data1+1
add data2+1
sta sum+2
lda data1
adc data2
sta sum+1
rola ;得到第17为,主要操作是:将寄存器a中数据向做移一位并把进位标志位放入寄存器a中的第一位
and #01H
sta sum
rts ;子程序返回指令
main:
clra
clrx
bsr Add_Pro ;子程序调用,直接进入子程序中,执行子程序中的程序。
again:
nop
jmp again
org $fffe
dc.w main
分析:两个16位无符号数相加,和为17位,至少需要3B的存储空间。又因为MC9S08AW60的存储方式是大端方式:低地址存放最高有效字节。所以对两个数的低位数相加时是使用Data1+1、Data2+1。
关键字:Freescale MC9S08AW60 汇编
引用地址:
Freescale MC9S08AW60汇编学习笔记(三)
推荐阅读最新更新时间:2024-11-07 14:55
智能汽车演进从飞思卡尔车窗升降参考设计开始
智能汽车演进从车窗开始 当整个汽车产业都在热衷于无人驾驶汽车的时候,我们不能避免一个尴尬的事实:目前还没有办法做到,而且未来十几年也未必能做好。但是从各种无人驾驶概念车的演示中不难发现,无人驾驶最重要的因素之一是关键部件能 自发地 工作。 兵马未动,粮草先行 是个不错的主意,与其激进地从头到尾重新定义无人汽车,不如先让一些部件智能起来,例如动力总成、车载信息娱乐系统、仪表板、安全和车身应用等汽车电子系统。而车身电子作为汽车的电子框架,可以作为智能汽车演进的起点。 车身电子系统涉及驾驶舱内部的多种应用,涵盖了舒适性、安全和安防功能以及高性能计算与车内网络等功能。飞思卡尔半导体(Freescale)丰富的
[汽车电子]
飞思卡尔新CEO立志:市场份额增长
当飞思卡尔新任CEO Gregg Lowe接过FTF讲台上的话筒那天,距离他继任刚刚过去13个昼夜。 后来,当问到飞思卡尔的强项和弱项时,Lowe简短解释说,因为他刚继任不就,还没有资格就此问题做出回答。 但是Lowe,这个6月5日继任为飞思卡尔新任CEO的人,让所有人都明白了一件比任何都重要的事情。他多次强调,他的首要任务是改善飞思卡尔的市场份额,并使公司的增长速度高于整个半导体产业。 “经过这十几天我还并不能讲出哪点具体的弱项,” Lowe表示。“我想告诉你们的是公司的员工们都认为自己有能力将工作做得更好,来为公司的增长和增加市场而出力。” Lowe强调,他现在还不能一一列出飞思卡尔在哪些产品领域拥有最好的机遇去打造更
[半导体设计/制造]
基于Android的ARM汇编语言系列之四:ARM处理器的寻址方式
章节列表 之一:ARM汇编语言开篇 之二:C/C++程序生成ARM汇编程序的过程分析 之三:ARM汇编语言程序结构 之四:ARM处理器的寻址方式 之五:ARM指令集与Thumb指令集 之六:NEON指令集与VFP指令集 处理器的寻址方式是通过指令给出的地址码字段来寻找真实操作数地址的方式,ARM处理器支持9中寻址方式。 一 立即寻址 立即寻址指令后面的地址码部分为立即数(常量或常数),立即寻址多用于给寄存器赋值。 举例 MOV RO, #1234 指令执行后,R0=1234。 二 寄存器寻址 寄存器寻址中,操作数在寄存器中,指令执行时直接从寄存器中取值进行操作。 举例 MOV R0, R1 指令执行后
[单片机]
研华发布搭载飞思卡尔i.MX6模块电脑
2014年9月4日、台湾台北市 - 研华科技(2395.TW),作为全球嵌入式计算领域的领导厂商,于近日发布全系搭载Freescale ARM® Cortex™-A9 i.MX6高性能处理器和基于RISC的模块化电脑开发套件(EVK)。研华科技为客户提供多样化的EVK评估包,可适用于各种基于RISC的模块化电脑(COM)硬件平台(包括Qseven、SMARC和RTX 2.0),因此客户无需购买其它任何产品即可享受无忧评估。 专为研华RISC模块打造的优化设计 研华全系模块化电脑EVK评估包专为功能评估、性能验证、硬件设计和应用开发而设计。其中,每块载板都提供一个支持全部功能的参考设计,可作为用户设计的基础;集成I/O
[工业控制]
STC单片机串口发送数据汇编程序
本段程序是在STC官方程序的基础上精简而成,只保留了串口单向发送,使用串口助手可以接收到数据。 本段代代码目的是为了调试的方便,单片机内部一些工作状态和数据可以通过串口发送出来,比如AD采集到的数据等,对调试程序会起到事半功倍的效果。以下为asm格式汇编代码: ; --- 使用伟福6000编译,STC15W401AS 实测通过------------ ;-----定时器2用作串口1的波特率发生器------- ;在Keil开发环境下请选择Intel的8058芯片型号进行编译 ;工作频率为11.0592MHz ;----------------------------------------- AUXR EQU 08EH
[单片机]
MCS-51单片机汇编中的“指针”
111条单片机指令中让我想起高级语言中的指针的功能。 数据传送类指令中的 指针 1)MOV A,@Ri 2)MOV direct,@Ri 3)MOV @Ri,A MOV @Ri,direct MOV @Ri,#data8 4)MOVX A,@Ri MOV A,@DPTR 5)MOVX @Ri,A 6)MOVX @DPTR,A @:指向的意思。
[单片机]
ARM汇编语言(4) 指令、伪操作、伪指令学习
LDR指令与LDR伪指令的4种形式: LDR R0, :指令,将R1指向的内存地址存放的内容加载到R0中; LDR R0,LABEL:指令,将标号LABEL所代表的内存地址处存放的内容加载到R0中; LDR R0,=10000:伪指令,将常熟10000赋予R0,采用LDR指令+文字池的方式实现; LDR R0,=LABEL:伪指令,将标号LABEL所代表的内存地址赋予R0; 指令部分: 伪操作部分: 符号定义伪操作:定义变量,对变量进行赋值,定义寄存器名称 GBLA:全局的算术变量,初始化为0; GBLL:全局的逻辑变量,初始化为{FALSE}; GBLS:全局的串变量,初始化为 ; LCLA:局部的
[单片机]
飞思卡尔系列芯片:让家电线缆永远消失
当我们日益习惯和享受电子时代带来的方便、快捷的环境时,却难免对不断增加的电子设备和杂乱的导线充斥我们并不宽裕的私宅,而陡生“福兮祸所伏”的烦恼。而随着美国飞思卡尔公司推出名为“MC1323x”系列电子器件后,似乎让人们看到了解决这个添堵多年难题的希望。
总部设在德州奥斯丁的飞思卡尔是全球最大的半导体生产企业之一,已为全球提供了180亿枚半导体芯片。该企业日前在上海举行的“飞思卡尔2010技术论坛”上,向与会者介绍了其最新研发的上述电子产品。
业内人士指出,飞思卡尔的MC1323x系列器件提供了一个综合的高度集成解决方案,其内含一个8位HCS08微控制器、一个完全符合IEEE 802.15.4(局域网标准委员会)
[家用电子]