PIC单片机实现双字节无符号数加减法

发布者:fuehrd努力的最新更新时间:2018-08-12 来源: eefocus关键字:PIC单片机  双字节无  符号数  加减法 手机看文章 扫描二维码
随时随地手机看文章

一、编写子程序 Add_16,实现双字节无符号数加法。要求在地址0x70~0x73定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。


ACCALO ;存放加数或减数低8位

ACCAHI ;存放加数或减数高8位

ACCBLO ;存放被加数或被减数低8位

ACCBHI 存放被加数或被减数高8位

list       p=16f877A   ; 标明所用的处理器类型

 #include    ; 调用头文件 

 

;***** 变量声明**************************************

 

ACCALO   EQU   0x70  ;存放加数低8位 

ACCAHI   EQU   0x71  ;存放加数高8位 

ACCBLO   EQU   0x72  ;存放被加数低8位 

ACCBHI   EQU   0x73  ;存放被加数高8位 

 

;----------------------------------------------------

    org         0x0000           ; 复位入口地址

;----------------------------------------------------

Main

       MOVLW   0X4B                

       MOVWF   ACCBLO              ;(ACCBLO)=0x4B

       MOVLW   0X4C

       MOVWF   ACCBHI              ;(ACCBHI)=0x4C

       MOVLW   0XD2                

       MOVWF   ACCALO              ;(ACCALO)=0xD2

       MOVLW   0X40

       MOVWF   ACCAHI              ;(ACCAHI)=0x40

       CALL    Add_16              ;调用子程序Add_16求和,结果应为0x8D1D 

       NOP

       GOTO $                      ;停机 

;--------------双字节无符号数加法子程序--------------------------------

Add_16

      MOVF   ACCALO,W    

      ADDWF  ACCBLO,F    ;ACCB和ACCA低8位相加

      BTFSC  STATUS,C    ;有进位否?

      INCF   ACCBHI      ;有进位,ACCB高8位加1

      MOVF   ACCAHI,W    

      ADDWF  ACCBHI,F    ;ACCB和ACCA高8位相加

      RETURN

;--------------------------------------------------------------

   END                  ;程序结束

二、编写子程序Sub_16,实现双字节无符号数减法。要求在地址0x20~0x23定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。


ACCALO ;存放加数或减数低8位

ACCAHI ;存放加数或减数高8位

ACCBLO ;存放被加数或被减数低8位

ACCBHI 存放被加数或被减数高8位

list       p=16f877A   ; 标明所用的处理器类型

 #include    ; 调用头文件 

 

;***** 变量声明***************************************

 

ACCALO   EQU   0x70  ;存放减数低8位 

ACCAHI   EQU   0x71  ;存放减数高8位 

ACCBLO   EQU   0x72  ;存放被减数低8位 

ACCBHI   EQU   0x73  ;存放被减数高8位 

 

;----------------------------------------—-----------

    org         0x0000           ; 复位入口地址

;----------------------------------------------------

Main

       MOVLW   0X4B              ;被减数0x4C4BH送ACCB

       MOVWF   ACCBLO

       MOVLW   0X4C

       MOVWF   ACCBHI

       MOVLW   0XD2              ;减数0x40D2送ACCA

       MOVWF   ACCALO

       MOVLW   0X40

       MOVWF   ACCAHI

       CALL    Sub_16            ;调用Sub_16,求差,结果为0x0B79 

       NOP

       GOTO $                    ;停机

;--------------双字节无符号数减法子程序-----------------------

Sub_16

      MOVF   ACCALO,W

      SUBWF  ACCBLO,F    ;ACCB、ACCA低8位相减

      BTFSS  STATUS,C    ;有借位否?

      DECF   ACCBHI      ;有,被减数高8位减1

      MOVF   ACCAHI,W     

      SUBWF  ACCBHI,F    ;ACCB、ACCA高8位相减

      RETURN

;-------------------------------------------------------------

   END                  ;程序结束


关键字:PIC单片机  双字节无  符号数  加减法 引用地址:PIC单片机实现双字节无符号数加减法

上一篇:PIC16F684各个引脚介绍及意义
下一篇:PIC单片机之第一个工程分析,点亮LED

推荐阅读最新更新时间:2024-03-16 16:10

pic单片机的各种汇编语言指令解析
pic 单片机为最常用单片机之一,许多程序均基于 pic 单片机进行开发。因此,熟练 pic 单片机编程尤为重要。为保证大家能准确、熟练掌握 pic 单片机的使用,本文特带来 pic 单片机的各种汇编语言指令的讲解上篇,下篇将在后期文章中予以讲解。如果你对本文即将讲解的内容充满兴趣,不妨继续往下阅读哦。 一、pic 的指令系统 pic8 位单片机共有三个级别,有相对应的指令集。基本级 pic 系列芯片共有指令 33 条,每条指令是 12 位字长;中级 pic 系列芯片共有指令 35 条,每条指令是 14 位字长;高级 pic 系列芯片共有指令 58 条,每条指令是 16 位字长。其指令向下兼容。 二、pic 汇编语言指令格
[单片机]
<font color='red'>pic单片机</font>的各种汇编语言指令解析
PIC单片机的四种振荡方式及设置
    P IC 单片机有四种振荡方式可供选择,振荡方式经配置寄存器CONFIG的F0SC1,F0SC0位加以选择,并在EPROM编程时写入。     晶体振荡器/陶瓷振荡器:     XT、LP、HS三种方式中,需一晶体或陶瓷谐振器连接到单片机的OSC1/CLKIN和OSC2/CLKOUT引脚上,以建立振荡,如图1所示。电阻RS常用来防止晶振被过分驱动。在晶体振荡下,电阻RF≈10MΩ。对于32KHz以上的晶体振荡器,当VDD 4.5V时,建议C1=C2≈30PF。(C1:相位调节电容;C2:增益调节电容。)   表1:振荡器类型选择 F0SC1 F0SC0 振荡方式 0 0 低功耗振荡LP(Low Pow
[单片机]
详解PIC单片机的应用设计技巧
  美国微芯公司(Microch{p Technology Inc.)开发的CM0S工艺PIC系列8位单片机(RISC微控制器),特别是采用内置第二代Flash存储器(40年存储寿命)的微控制器在快速应用方面具有独到之处。由于其易用性和高可靠性,该系列微控制器稳居8位单片机全球出货量之首。PIC系列单片机具有指令集简洁、简单易学、速度高、功能强、功耗低、价格低廉、体积小巧、适用性好及抗干扰能力强等特点,大量应用于汽车电气控制、电机控制、工业控制仪表和仪表、通信、家电、玩具、低功耗的测控应用等领域,在国内越来越受到广大设计者的欢迎,微芯公司的单片机已经成为目前单片机世界的主流产品。   PIC 8位单片机内已经包含运算器、存储器、
[单片机]
详解<font color='red'>PIC单片机</font>的应用设计技巧
基于PIC单片机的4×4行列式键盘工作原理简介
PIC单片机的4×4行列式键盘工作原理: (1)单片机系统键盘原理 行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图1所示。 图1 4×4行列式键盘的原理图 实际的工程中,可能会使用PIC16C5X这种通用的可编程的键盘、显示接口器件,使用PIC16C5X单片器件就能够完成键盘输入和显示控制两种功能。 行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描、自动消抖、自动识别按下的
[单片机]
基于<font color='red'>PIC单片机</font>的4×4行列式键盘工作原理简介
PIC单片机实现流水灯程序
#include pic.h //流水灯 #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void delay(uint x) { uint a,b; for(a=x;a 0;a--) for(b=110;b 0;b--); } void main() { uchar i,temp; TRISA=0x00; while(1) { temp=1; for(i=0;i 6;i++) { PORTA=~temp;// temp=temp 1;// delay(200); } } }
[单片机]
单片机的加减法原理
这是计算机组成原理的问题。计算机怎么表示负数。最高位为0,表示正数,最高位为1表示负数,例如 0b 0000 0011 表示 +3 0b 1111 1111 表示 -1 所以,那么数值的取值范围就是这么来的,一个字节有8位,如果是无符号数,那么就能表示 0~255 一共 256个数,但是如果是有符号数,也就是说这8位里面还需要表示一个符号,而且负号在最高位,那么数值只能是 bit0 ~ bit 7 表示,也就是说 -128 ~ 127 计算机里面做的运算都是补码运算,有符号数还是无符号数,计算机是不管的,其实这个只是写给编译器看的,由编译器去识别。并且生成相对应的代码。 原码,反码,补码的变换 原码,本来的数据叫原码,
[单片机]
PIC单片机的外接电压检测复位电路举例
  1.设计思路   有许多型号单片机的内部均不具备掉电复位功能,即使对于内部包含该功能的PIC单片机,其复位门槛电压值是固定不可更改的,有时不能满足用户的需求,因此,外加电压检测复位电路也是较常见的设计方案。   对于片内带有掉电复位功能BOR的PIC单片机,在使用外接电压检测复位电路时,就必须将内部BUR功能禁止,方法是将系统配置字的BUDEN位设置为0。   对于内部不带BOR功能的PIC单片机,其电源控制寄存器PCUN没有BOR标志位,无法准确识别由外接电压检测复位电路引起的单片机复位,因此在程序执行过程中在MCLR引脚施加了人工复位信号引起的复位。   与外接电压检测复位电路相关的单片机片内等效电路如图1所示,从
[单片机]
<font color='red'>PIC单片机</font>的外接电压检测复位电路举例
PIC单片机红外遥控编码与解码的问题分享
一般常用的红外遥控器编码规则都差不多,基本上都同6221原理一样 PIC单片机接收时: 如果用54,57这类片子做的话有一定的难度(假如要做成实时控制的;比如说你还要驱动显示,驱动步进电机,在加上几个按键)原因就是这类片子没有中断 例程如下(用来解6221;分频比为256) RF: BTFSC PORTB,2;;B2口用做接收口 GOTO RF1 BTFSS DOWNBIT;;检测下降沿标制 CLRF RTCCOUNT BSF DOWNBIT;制下降沿标制 BTFSS UPBIT;;检测上升沿标制 RETLW 0 BTFSC IDBIT;;检测码头标制 GOTO RF3 MOVLW 2AH SUBWF
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved