编程7ch
1. 单片机中位地址7CH与字节地址7CH具体如何区分
答:字节地址是片内RAM的单元地址,而位地址是片内RAM单元的某一位。 7CH字节地址RAM的7CH单元,而7CH位地址是RAM 2FH单元中的D4位
2. 单片机中位地址7ch与字节地址7ch有什么区别
虽然地址相同,但是读写的对象是不同的,而且这是用汇编语言写程序才有地址的。先说字节地址,是指向一个单元的,内部存放8个位的,读写时必须是同时对一个字节操作的,如MOV 7CH,#20H,是把8位的立即数送到7CH这个单元内。
而位地址是指向一个位的,读写操作时仅仅是对一个位操作的,而且指令是不同的,如
SETB 7CH,是将位地址是7CH的这一个位置1,具体这一个位是在内部RAM的2FH单元内的,是2F.4位。只是对这一位操作,而其余位是不变的。因此,从这个意义上说是有区别的。
如果用C语言写程序,就不必考虑这些问题了。
3. 位地址7CH与字节地址7CH如何区别位地址7CH具体在片内RAM中什么位置
位地址和字节地址的区别在于使用不同的寻址方式,位地址使用位寻址,字节地址
使用直接寻址或间接寻址。位地址7CH在片内RAM中字节地址为2FH的第4位。

拓展知识
二进制
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号"0''.''1''的某种代数演算,二进制是逢2进位的进位制。0、1是基本算符。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。
4. 位地址7CH和字节地址7CH有什么区别位地址7CH具体在内存中什么位置
字节地址7CH是片内数据存储器中的一个地址单元,这个地址单元中可以存放8位二进制数;位地址是内部数据存储器中位寻址区中的一位,这个地址单元中可以存放1位二进制数。
位地址7CH在片内数据存储器字节地址为2FH中的第4位
5. 电脑的编程码
(1)机器语言与汇编语言
计算机中CPU 的功能很强,但它只认识由二进制数字构成的机器码指令(机器语言),可以直接执行。例如,某条简单的机器码加法指令为0000010001111100B。人工对这种指令很难看出它的含义。若由人工编写程序,其过程无疑极其烦琐,且难于理解、编制和调试。因而只有在早期的计算机中才用过机器码指令。如果将上述指令写成“ADD AL,7CH”,专业人员即可看出是将A寄存器中低八位的数据和十六进制数7CH相加,并且将结果仍存放于A寄存器的低八位中。这种指令和机器码指令一一对应,但意义明显多了。因而对程序的理解、编制和调试要方便多了。这种以字符形式代替机器码的指令称为汇编指令,其指令集合称为汇编语言。为了加强汇编语言的能力,加入了一些不是机器码指令的语句,这种汇编语言称为宏汇编语言。虽然使用宏汇编语言比使用机器码方便多了,但是利用汇编语言进行编程依然是非常辛苦的。
由汇编语言写成的程序是一个文本文件(由ASCII 表示,人是可以看懂的),称为汇编语言源程序。CPU不认识这种程序(它只认机器码指令),所以执行之前要先由计算机将其转化为由机器码指令构成的目的程序,这个过程叫汇编。由机器码指令转化为汇编语言程序的过程叫反汇编。汇编语言要将程序中的每一步CPU的动作指明,仍极烦琐。但由汇编语言编制的程序运行效率高,故在专业人员中仍得到广泛的应用。如果说机器码指令是第一代计算机语言,汇编语言则是第二代语言。
(2)高级语言与编译系统
为了提高编制程序的效率,也为了使一般用户能够掌握编制程序的能力,计算机语言发展了第三代语言,即高级语言。高级语言的表达方式近似于自然语言,易于理解和检查。有了高级语言,一般用户才开始进入了计算机的应用领域。使用高级语言编制的源程序依然是文本文件,计算机仍然不能直接执行,也要转化为机器码指令的目的程序才能执行。
转化的方法有解释和编译两种。
解释的方法是对源程序中的每一句命令都先把它翻译成为可以执行的用二进制数表示的目的代码予以执行,执行完毕后再解释、执行下一句。这样的好处是对于调试程序非常方便,哪一句出了问题就可以直接地显示和修改。缺点是速度太慢。就像我们以零售方式去买大量的货物一样不合适。
编译的方法是首先对源程序从头到尾进行扫描,找出所有可以识别出来的语法错误和一些逻辑错误,并要求用户对源程序再次编辑改正,直到再次编译时不再发现错误。编译程序对源程序再次扫描进行优化后,得出由机器码指令构成的工作文件,此时编译过程完毕。由于高级语言将不少功能作为函数提供给用户使用,而用户程序中仅仅给出了函数名并没有完成函数功能的程序。所以要从编译系统提供的库文件中找出相应的函数程序和工作文件,合成为可以执行的目的程序。这个过程叫做链接。所以,一个高级语言源程序的执行要经过编辑、编译、链接、执行等几个过程。由于一些软件公司提供了集成化环境(如Turbo C,Turbo Pascal),用户不必自己直接一步一步地执行这些过程,而是由集成化环境软件代替人工执行了,但是实际工作并没有消失。
软件系统中,提供编辑源程序功能的编辑程序、解释功能的程序、编译功能的程序和链接的程序组成编译系统。
为了方便用户编辑文本文件(包括源程序或称源文件及各种文书文件),系统软件提供了多种编辑工具。如早期的行编辑(EDLIN.COM)及以后的全屏幕编辑(EDIT.COM,WORDSTAR等)。为方便中文的编辑,我国的计算机工作者开发了CCED,WPS 等编辑软件。解释和编译程序并不通用,不同的高级语言各自具有不同的编译程序。近来为方便用户,计算机软件生产厂家提供了一体化的编译环境,将各个有关功能都集成于一体,为程序的编辑、运行、调试提供了方便。
(3)常用的高级语言和第四代语言
常用的高级语言
① FORTRAN:第一个高级语言是FORTRAN 语言,它是公式翻译的意思(Formula Translation中的For 和Tran的组合),目的是用于科学计算。其特点是数学函数丰富、计算速度快,目前新的版本努力弥补其在字符和图形处理方面的不足。它经历了FORTRANII,FORTRANIV,FORTRAN77,FORTRAN5等重要的发展阶段,曾几次列为美国国家标准。其影响力至今不衰。
② BASIC:BASIC语言由FORTRAN 语言脱胎而来,意义是初学者通用指令代码(Beginner’s All-purpose Symbolic Instruction Code)。它原意是为初学FORTRAN的人提供入门的训练。它易学易用,适于初学者学习使用,因而受到广泛的欢迎。正因如此,各个厂家开发了约几百种版本,影响广泛,但也互不统一,使得交流移植不便。一个相当长的时期内,有的人认为BASIC 将被淘汰。事实上,BASIC 不仅没有灭绝,而且有长足的发展,显示了强大的生命力。在IBM PC机的随机DOS 系统盘中都提供了BASIC 的软件。早期提供的是BASIC 和BASICA。它们都是解释型的高级语言,运行速度慢,且没有集成环境的支持。现在提供的是Visual BASIC,既可解释执行,也可以编译执行,功能很强,适合于各种用户的要求。
③ Pascal:Pascal语言是由ALGOL 60发展而来的一种结构化的高级语言。其结构严谨、数据类型丰富,深得专业计算机工作者的重视,曾经成为计算机教育的标准语言。现在发展为Delphi语言,功能同样很强,也适合于各种应用。
④ COBOL:通用商用语言(common business-oriented language)。这是一种描述性很强的语言,非常适合于描述现实世界的数据结构。虽然它的运算能力并不强(可以满足商业应用的需要),但程序的书写和英语非常近似,会英语的人非常容易掌握。所以在美国近一半以上的用户曾经使用的是COBOL 语言。美国现在运行的一些程序仍然是COBOL程序。
⑤ C:C 语言是一种高效、强有力的语言,既具有结构化高级语言的特点,又具有像汇编语言一样的处理低级操作(直接指挥计算机的硬件系统)的功能。所以有人将它称为中级语言。在专业计算机工作者之中曾经广泛应用它编制各种应用程序和系统程序,如UNIX操作系统的内核就是用C语言重新写过的。现在虽然发展成为C++、Visual C++、C#,其在教学中依然得到广泛的应用。
Visual C++,Delphi,Visual BASIC 是目前应用最广的、所谓“面向对象”的三门高级语言。
第四代语言
人们称高级语言是第三代语言,其特点是面向过程。所谓面向过程,是指用户在程序中不但要说明解决什么问题,还要告诉计算机如何去解决,即详细地告诉计算机解决问题的每一个步骤。有人称此时的计算机是“勤快的笨蛋”。计算机技术的发展为适应用户的要求,只需描述要解决的问题,这就要求计算机具有一定的智能。目前称具有这种功能的语言为第四代语言(4GL)。但完全具有这种功能不是一件容易的事。一些称为4GL 的编程语言只能在一个小范围内使用。现实离人们对于第四代语言的期待还相差很远。
