单片机c语言 右移,单片机C语言左移和右移漫谈
#define uchar unsigned char
#define uint unsigned int
void main(void)
{
uchar a;
a=0x01;
a=a<<1;
}
在这段程序中,看起来没有什么问题,但是编译后不能生成代码本文引用地址:http://www.eepw.com.cn/article/201611/315811.htm
#include#define uchar unsigned char
#define uint unsigned int
void main(void)
{
volatile uchar a;
a=0x01;
a=a<<1;
}
改成这样后就能生成代码,但是生成的代码为
MOV 08H,#01H
MOV A,08H
ADD A,A
MOV 08H,A
这里我本来想象中应该有RL A这条指令的,但是没有。
当程序改成下面的时
#include#define uchar unsigned char
#define uint unsigned int
void main(void)
{
volatile uchar a;
a=0x01;
a=a<<2;
}
生成的代码是
MOV 08H,#01H
MOV A,08H
ADD A,A
ADD A,A
MOV 08H,A
改成a=a<<3;时
MOV 08H,#01H
MOV A,08H
RLC A
RLC A
RLC A
ANL A,#0F8
MOV 08H,A
这里有点搞不懂了,“<>”,到底是否带进位移动。
再来看看这个
#include#define uchar unsigned char
#define uint unsigned int
void main(void)
{
volatile uchar a;
a=0x01;
CY=1;
a=a>>1;
}
生成的代码是
MOV 08H,#01H
MOV A,08H
CLR C
RRC A
MOV 08H,A
从这里看来,“<>”应该是带进位的。但是不能把C里原来的值移进去。而且移到C里的数会丢掉,这里千万小心,例如a=0x80; a=a<<1;现在这里a=0x00了,1被移到C里丢掉。
再来看看_crol_和_cror_,这里要程序开头要包含#include#include#include#define uchar unsigned char
#define uint unsigned int
void main(void)
{
volatile uchar a;
a=0x01;
a=_crol_(a,1);
}
生成的代码为
MOV 08H,#01H
MOV R7,08H
MOV R0,#01H
MOV A,R7
INC R0
SJMP L1
L1:RL A
DJMZ R0,L1
MOV 08H,A
这里可以看出_crol_和_cror_是不带C移动的,_iror_和_irol_是一样的。
单片机c语言 右移,单片机C语言左移和右移漫谈相关推荐
- 单片机跑马灯程序c语言,MCS-51单片机控制跑马灯的三种方法
描述 在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的.在并行端口的编程学习中,"跑马灯"是单片机并行端口输出控制的典型实例.所谓跑马灯,是 ...
- c语言位运算负数的实例_负数位运算的右移操作-C语言基础
这一篇探讨的是"负数位运算的右移操作",涉及到数据的源码.反码.补码的转换操作.属于C语言基础篇. 先看例子 #include int main(void) { //正数的位右移 ...
- 【STM32】位操作、按位与、按位或、按位异或、取反、左移、右移等基础 C 语言知识补充
文章目录 1 位操作 1.1 按位与 1.2 按位或 1.3 按位异或 1.4 取反 1.5 左移 1.6 右移 2 单片机中常用操作 2.1 不改变其他位时,对某几个位设定值 2.2 移位操作提高代 ...
- avr单片机流水灯程序c语言,AVR单片机学习C语言的流水灯验证
AVR 的IO口简介与寄存器的概念 一.何谓"寄存器" 寄存器就是RAM中的一些特殊单元,映射片上外设的特殊功能 二.何谓"IO口" 可以将"0&qu ...
- c语言单片机求最小公倍数,单片机常用的14个C语言算法,要熟记在心哦!
原标题:单片机常用的14个C语言算法,要熟记在心哦! 算法(Algorithm):计算机解题的基本思想方法和步骤. 算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么 ...
- 单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...
<基于单片机出租车计价器课题设计(c语言编写).doc>由会员分享,可免费在线阅读全文,更多与<基于单片机出租车计价器课题设计(c语言编写)>相关文档资源请在帮帮文库(www. ...
- 点亮第一盏灯的c语言编程,单片机点亮第一盏灯实验详细教程
第一个实验:keil软件使用与点亮人生的第一只发光二极管 1.001.jpg (23.15 KB, 下载次数: 78) 2017-5-20 17:27 上传 本章详细介绍单片机程序常用编译软件 Kei ...
- 单片机发射红外c语言程序,单片机模拟红外发射源程序IR-send
单片机模拟红外遥控器发射的C语言程序 //********************************************单片机红外发射**************************** ...
- 学单片机之前要学什么?C语言和单片机有什么关系?
学习单片机之前要学什么?提起这个就想起我当年开始学习单片机的血泪史了. 08年我加入学校的电子实验室,为08年的全国电子大赛做准备. 08年的电子大赛分类3类,硬件设计类.单片机软件类.产品的调试动手 ...
- 学单片机需要多少C语言基础,C语言单片机编程教程
很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...
最新文章
- [PKUWC2018]随机算法
- 设计模式(2)工厂方法模式(Factory Method)
- 开源的Blink和Spark3.0,谁将称霸大数据领域?
- 数据库基础笔记(MySQL)5 —— 基础索引
- (AI、Artificial Intelligence)人工智能概述及分类
- 郑捷《机器学习算法原理与编程实践》学习笔记(第七章 预测技术与哲学)7.1 线性系统的预测...
- Python Numba实现GPU加速
- java元婴期(25)----java进阶(mybatis(4)---高级映射查询缓存)
- JWT(Json web token)认证详解
- java 饥饿现象,Java单例模式、饥饿模式代码实例
- 2021年衢州高考的成绩查询,2021年衢州高考状元是谁分数多少分,历年衢州高考状元名单...
- 2821: 作诗(Poetize)
- 一个带自动询问和保存功能的python下载图片的脚本
- java 正则表达式的包_用于Java包名称的Python正则表达式
- 远程部署SEP 11.RU5 安装包到 Windows 7 客户端提示“访问被拒”
- ZOJ 3983 2017CCPC秦皇岛 C:Crusaders Quest
- java视频教程免费下载
- 已知平面上两点坐标及半径,求过两点圆弧的圆心坐标
- 分类问题-决策树模型
- android客户端与pc服务器实现socket通信(wifi),Android客户端与PC服务器实现Socket通信(wifi)...
热门文章
- JAVA SAX解析XML文件
- 选项卡jacascript
- java 0xf0_用java做一个最小的操作系统内核
- 【面试】场景 智力题
- c语言语法sc,适合于嵌入式系统的C语言单元测试框架:SCUNIT
- 软件测试薪资标准新鲜出炉,你达标了吗?
- ❤️今天,该让 python 上个热门❤️
- 关闭自动降频 linux,在Deepin系统下CPU不能自主降频的两种解决方法
- 《Netty权威指南》第1章 Java的I/O演进之路
- linux打印显示etc中的文件,Linux命令之文件内容查看(cat、tac、nl、more、less、head、tail)...