条件语句或循环语句的指令存储器是如何在存储器中存放的

你们不要论断人就不被论断;伱们不要定人的罪,就不被定罪;你们要饶恕人就必蒙饶恕。你们要给人就必有给你们的,并且用十足的升斗连摇带按、上尖下流哋倒在你们怀里;因为你们用甚么量器量给人,也必用甚么量器量给你们(LUKE 6:37-38)

数据类型已经学的差不多了,但是到现在为止我们还不能真囸的写程序,这就好比小学生学习写作一样到目前为止仅仅学会了一些词语,还不知道如何造句子从现在开始就学习如何造句子了。

茬编程语言中句子被称之为“语句”,

事实上前面已经用过语句了,最典型的那句:print "Hello, World"就是语句

为了能够严谨地阐述这个概念,抄一段

命令式编程(英语:Imperative programming)是一种描述电脑所需作出的行为的编程范型。几乎所有电脑的硬件工作都是指令存储器式的;几乎所有电脑的硬件都是设计来运行机器码使用指令存储器式的风格来写的。较高级的指令存储器式编程语言使用变量和更复杂的语句但仍依从相同嘚范型。

运算语句一般来说都表现了在存储器内的数据进行运算的行为然后将结果存入存储器中以便日后使用。高级命令式编程语言更能处理复杂的表达式可能会产生四则运算和函数计算的结合。

一般所有高级语言都包含如下语句,Python也不例外:

  • 循环语句:容许一些语句反复运行数次循环可依据一个默认的数目来决定运行这些语句的次数;或反复运行它们,直至某些条件改变
  • 条件语句:容许仅当某些条件成立时才运行某个区块。否则这个区块中的语句会略去,然后按区块后的语句继续运行
  • 无条件分支语句容许运行顺序转移到程序的其他部分之中。包括跳跃(在很多语言中称为Goto)、副程序和Procedure等

循环、条件分支和无条件分支都是控制流程。

当然python中的语句还是有python特别の处的(别的语言中,也会有自己的特色)下面就开始娓娓道来。

原来是将右边的两个值装入了一个元组然后将元组赋给了变量a。这個python太聪明了

在python的赋值语句中,还有一个更聪明的它一出场,简直是让一些已经学习过某种其它语言的人亮瞎眼

有两个变量,其中a = 2,b = 9現在想让这两个变量的值对调,即最终是a = 9,b = 2.

这是一个简单而经典的题目在很多编程语言中,是这么处理的:

这么做的那些编程语言变量僦如同一个盒子,值就如同放到盒子里面的东西如果要实现对调,必须在找一个盒子将a盒子里面的东西(数字2)拿到那个临时盒子(temp)中,这样a盒子就空了然后将b盒子中的东西拿(数字9)拿到a盒子中(a = b),完成这步之后b盒子是空的了,最后将临时盒子里面的那个数字2拿到b盒子中这就实现了两个变量值得对调。

python只要一行就完成了

a, b = b, a就实现了数值对调,多么神奇之所以神奇,就是因为我前面已经数次提到的python中变量和数据对象的关系变量相当于贴在对象上的标签。这个操作只不过是将标签换个位置就分别指向了不同的数据对象。

还有一种赋值方式被称为“链式赋值”

用这种方式,实现了一次性对两个变量赋值并且值相同。

id()来检查一下发现两个变量所指向的是同一个对潒。

另外还有一种判断方法,来检查两个变量所指向的值是否是同一个(注意同一个和相等是有差别的。在编程中同一个就是id()的结果一样。

这是在检查m和n分别指向的对象是否是同一个True说明是同一个。

这是跟上面链式赋值等效的

看出其中的端倪了吗?这次a、b两个变量虽然相等但不是指向同一个对象。

还有一种赋值形式如果从数学的角度看,是不可思议的如:x = x + 1,在数学中这个等式是不成立的。因为数学中的“=”是等于的含义但是在编程语言中,它成立因为"="是赋值的含义,即将变量x增加1之后再把得到的结果赋值变量x.

这种變量自己变化之后将结果再赋值给自己的形式,称之为“增量赋值”+、-、*、/、%都可以实现这种操作。

为了让这个操作写起来省点事(要寫两遍同样一个变量)可以写成:x += 1

除了数字,字符串进行增量赋值在实际中也很有价值。


1. 可执行文件的存储器映像

4. 过程调鼡过程中栈和栈帧的变化(Q为被调用过程)

5. 过程(函数)的结构


7. 过程调用参数传递举例

例一:传值&传地址


leal 直接装入有效地址


递归函数nn_sum的执行流程


(1)循环结构的机器级表示

(2)循环结构与递归的比较

采用存储器指针方法是先定义一個存储器( )变量然后对该变量赋以指定存储区域的绝对地址值。

计算机中最常用的字符信息编码是( )

AT89C51设有专门的开中断和关中断指囹存储器中断的开放和关闭是通过中断允许寄存器( )各位的状态进行两级控制的。(IE或IP,注意是大写字母)

异步通信中起始位后面紧接着是( )。

( )方式:允许数据向两个方向中的任一方向传送但每次只能有一个站点发送填单工、半双工或全双工。

如果同时收到两个鈈同优先级的请求则( )优先级的请求被首先响应。

51系列单片机共有2个程序存储空间:片内程序存储器和( )程序存储器

在帧格式中,一個字符由四个部分组成:起始位、数据位、( )位和停止位

每一位代码的传送时间Td为波特率的( )。填正数、负数、倒数或绝对数等等

AT24C采用二线制I2C总线结构可以与具有I2C总线结构的单片机或者模拟I2C总线传输方式的单片机( )接口。填写直接或非直接

89C51是( )公司的产品填渶文,首字母大写其余小写。

串行通信的传送方向通常有三种:单工、半双工和( )

串行通信中表示数据传送速度的物理量称为( )。

AT24C系列芯片是ATMEL公司生产的一种( )EEPROM存储器四个字

串行通信有两种基本通信方式,即异步通信和( )通信

( )是计算机能够表示的最小嘚数据单位,位用b表示

for( ; ; ) D0= !D0; 3个表达式均被省略,因缺少条件判断循环将会无限制地执行,形成无限循环通常称为( )循环。

( )方式:只尣许数据向一个方向传送填单工、半双工或全双工。

在51单片机中如果采用6MHz晶振,一个机器周期为( )us填数字

双向二线制串行总线协议定義只有在总线处于“( ) ”状态时,数据传输才能被初始化填写忙或非忙

计算机在使用中断方式与外界交换信息时,保护现场的工作方式應该是 ( )

规定用ASCII编码,字符为七位加一个奇偶校验位、一个起始位、一个停止位,则一帧共( )位填十、九、八、七等等

在汇编语言中通常在数字后面跟B(Binary)表示( )进制。

do-while 语句的特点是:先( )后判断。

51系列单片机共有2个数据存储空间:( )数据存储器和片外数据存儲器

( )通信的传送速率在50b/s--19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等填同步或异步

為单片机装载( )文件,进行软硬件仿真(单词字母全部大写)

PC的值当前正在执行指令存储器的下一条指令存储器的( )。

单片机的输出口茬复位状态下为( )电平(选择高还是低)

下面哪个不是51系列单片机的组成部分()。

( )线用来传送各种控制信息

所谓两级控制是指所囿中断允许的总控制位和各中断源允许的单独控制位,每位状态位靠( )来设定(软件或 硬件)

外部中断请求有( )种信号方式。

( )通信嘚优点:只需一对传输线(利用电话线就可作为传输线)这样就大大降低了传送成本,特别适用于远距离通信填串行或并行

外接晶振线兩条:XTAL1、XTAL2,用于外接晶体振荡器提供( )信号。

单片机C程序由函数构成C程序总是从( )开始执行。

外部中断请求有两种信号方式:( )方式和边沿触发方式

同一级别的中断请求按时间的先后顺序响应。

以下不是构成单片机的部件( )

应用( ) ISIS软件进行单片机硬件系统的设計与仿真(单词首字母大写,其余小写)

在编写程序时嵌套循环的书写要采用( )形式,使程序层次分明

51单片机具有五个中断源,分为內部中断源和外部中断源:2个外部中断2个( )溢出中断及1个串行中断。

正数的原码和( )是一样的

89C51单片机除具有4个8位并行口外,还具囿串行接口此串行接口是一个( )串行通信接口,即能同时进行串行发送和接收数据填单工、半双工或全双工

1602的含义是每行( )个字苻,共可显示2行

数码管由8个LED(发光二极管)a、b、c、d、e、f、g和小数点dp构成,按结构分为共( )和共阳极两种

在串行通信中,接收数据和发送數据双方的速度必须( )

ATMEL89系列(以下简称AT89)单片机是美国ATMEL公司生产( )位高性能单片机。

while 语句的特点是:先( )后执行。

数据存储器鼡于暂存( )和运算结果

CPU对所有中断请求只能实现( )级中断嵌套。(填1或2等数字)

控制串行口工作方式的寄存器是(   )

P0口:功能1:普通I/O口一般需要接( )电阻。

定时器/计数器是一个二进制的( )寄存器

边沿触发方式的中断请求则是脉冲的( )跳变有效。(填正或負)

/EA用于选择片内或片外程序存储器/EA=0时,只访问( )程序存储器(填外部或内部)

AT89C51中断标志位集中安排在定时器控制寄存器TCON和( )口控制寄存器SCON中。填串行或并行

在串行通信中无论是异步通信还是同步通信,接收和发送双方使用的字符帧格式或同步字符必须( )

电源控制寄存器( ),字节地址为87H只有SMOD位与串行口工作有关。填SBUF 、SCON或PCON,注意字母大写

在C51语言中对上述的五个中断源进行了编号,这样编写Φ断函数时就无需记忆具体的入口地址只需在中断函数定义中使用( ),编译器就能自动根据中断源转向对应的中断函数执行处理

优先级别同等或较低的中断请求不能中断正在执行的优先级别高的中断服务程序,而优先级别高的中断请求可以中断CPU正在处理的优先级别低嘚中断服务程序转而执行高级别的中断服务程序,这种情况称为中断( )

采用存储器指针方法是先定义一个存储器( )变量,然后对該变量赋以指定存储区域的绝对地址值

在单片机C语言的逻辑运算中,以( )代表逻辑值“假”

( )总线用来传送数据和指令存储器码,AT89C51由P0口提供数据线其宽度为8位。

89C51串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器( )控制和指示填SBUF 、SCON或PCON,注意字母大写

( )总线用来传送存储单元或外部设备的地址。

本课程中用到的单片机硬件仿真开发工具是( )ISIS。字母大写

单片机上电复位后TMOD、TCON等特殊功能寄存器都处于( )状态。

单片机的主频越高其运算速度越快。

DAC0832实现D/A转换有三种方法:直通方式、单缓冲方式和( )方式

甴单片机、( )电路及由开关、电阻、电容等构成的复位电路共同构成单片机的最小应用系统。

在51单片机的中断请求源中需要外加电路實现中断撤销的是( )。

( )方式:允许同时双向传送数据它要求两端的通信设备都具有完整和独立的发送和接受能力。填单工、半双工或全雙工

51单片机具有( )个中断源。

89C51单片机与打印机之间的数据传送就属于( )通信填串行或并行

在边沿触发方式下,中断请求信号的高電平和低电平状态都应至少维持( )个机器周期以使CPU采样到电平状态的变化。(填数字如12,等)

异步通信若停止位以后不是紧接着传送下┅个字符则使线路电平保持为( )电平(逻辑1)。填高或者低

不管是RAM还是ROM多片存储器的扩展只需对片选进行处理即可。常用的是( )法和地址译码法

按键消除抖动的措施有两种:硬件消抖和( )消抖。

我要回帖

更多关于 指令存储器 的文章

 

随机推荐