算术运算指令

算术运算指令
算术运算指令

◆算数类指令经常会影响标志位,搞清楚以下两个概念:

?对标志没有定义:指令执行后这些标志是任意的、不可预测(就是谁也不知道是0还是1)

?对标志没有影响:指令执行不改变标志状态

◆注意有符号数进行计算是用其补码进行计算的,有符号数在计算机里是以补码的形式

进行存储的!!!!!

◆使用内存地址为寻址方式时,一定要用伪指令指明操作数类型。

?加法类(带符号数相加要考虑溢出):

1.加法指令ADD(ADD 目的操作数,源操作数;将源与目的操作数相加,结果送到目的操

作数)

目的操作数:reg,mem

源操作数:imm,reg,mem

注意:

1.存储器之间不能相加。

2.根据结果对相应的标志位作出改变,即,影响标志位!!!

2.带进位加法指令ADC(ADD 目的操作数,源操作数;将源、目的操作数与CF标志位相加,结果送到目的操作数)

目的操作数:reg,mem

源操作数:imm,reg,mem

注意:

1. 存储器之间不能相加。

2. 根据结果对相应的标志位作出改变,即,影响标志位!!!

3. ADC指令主要与ADD配合,实现多精度加法运算。

4. CF是本指令执行前的状态

?多精度加法运算示例

mov ax,4652h ;ax=4652h

add ax,0f0f0h ;ax=3742h,CF=1

mov dx,0234h ;dx=0234h

adc dx,0f0f0h ;dx=f325h,CF=0

;DX.AX=0234 4652H

+F0F0 F0F0H

=F325 3742H

3.增量指令INC(increment;INC指令对操作数加1(增量);INC reg/mem)

操作数:reg/mem

注意:

1.不影响进位CF标志,按定义设置其他状态标志。(仅不影响CF,还会影响其他)

2.主要用于对计数器和地址指针的调整,而不用来做单纯的算术计算。

3.当使用存储器操作数时,不得出现二义性。

?减法类:

4.减法指令SUB(目的操作数减去源操作数,结果送到目的操作数;sub 目的操作数,源

操作数)

目的操作数:reg,mem

源操作数:imm,reg,mem

注意:

1. 存储器之间不能相减。

2. 根据结果对相应的标志位作出改变,即,影响标志位!!!

3.看清谁是减数,谁是被减数。

5.带借位减法指令SBB(将目的操作数减去源操作数,再减去借位CF(进位),结果送到目的操作数,)

目的操作数:reg,mem

源操作数:imm,reg,mem

注意:

1. 存储器之间不能相减。

2. 根据结果对相应的标志位作出改变,即,影响标志位!!!

3. 看清谁是减数,谁是被减数。

4. SBB指令主要与SUB配合,实现多精度减法运算

5. CF是本指令执行前的状态

?多精度减法运算示例

mov ax,4652h ;ax=4652h

sub ax,0f0f0h ;ax=5562h,CF=1

mov dx,0234h ;dx=0234h

sbb dx,0f0f0h ;dx=1143h,CF=1

;DX.AX=0234 4652H

-F0F0 F0F0H

=1143 5562H

6.减量指令DEC(decrement;)

操作数:reg/mem

注意:

1. 不影响进位CF标志,按定义设置其他状态标志。(仅不影响CF,还会影响其他)

2. 主要用于对计数器和地址指针的调整,而不用来做单纯的算术计算。

3. 当使用存储器操作数时,不得出现二义性。

7.求补指令NEG(negative;用零减去操作数,然后结果返回该操作数)

操作数:reg,mem

注意:

1.也可以表达成:将操作数按位取反后加1。

2.NEG指令对标志的影响与用零作减法的SUB指令一样,影响标志位!!!

?课本P49页两种求补方式!!

8.比较指令CMP(compare;CMP指令将目的操作数减去源操作数,按照定义相应设置状态标志,结果不回送目的操作数)

目的操作数:reg,mem

源操作数:imm,reg,mem

注意:

1. 存储器之间不能相减。

2. 根据结果对相应的标志位作出改变,即,影响标志位!!!

3. 看清谁是减数,谁是被减数。

4. 不更改目的操作数!!!!!!

?十进制调整指令(重要)

十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果

分成压缩BCD码和非压缩BCD码调整(BCD码在计算机中仍以十六进制表示,但是认为是十进制数)

压缩BCD码

压缩BCD码就是通常的8421码;它用4个二进制位表示一个十进制位,一个字节可以表示两个十进制位,即00~99

非压缩BCD码

非压缩BCD码用8个二进制位表示一个十进制位,只用低4个二进制位表示一个十进制位0~9,高4位任意,通常默认为0

?示例:

二进制编码的十进制数:一位十进制数用4位二进制编码来表示

8086支持压缩BCD码和非压缩BCD码的调整运算

真值8 64

二进制编码08H 40H

压缩BCD码08H 64H

非压缩BCD码08H 0604H

●压缩BCD码加(DAA)、减(DAS)调整指令

操作数隐含,为寄存器AL

(ADD AL,i8/r8/m8)

(ADC AL,i8/r8/m8)

DAA(注意课本P47例题!!两条件都满足的情况。)

使用条件:

1.当AF标志位为0;或AL寄存器的低4位超出BCD数的计数符号<0AH-0FH>,

则AL寄存器的内容加06F,且将AF置1;

2.当CF标志位为1,或AL 寄存器的高四位超出BCD数的计数符号<0AH-0FH>,

则AL寄存器的内容加60H,且将CF置1.

;AL←将AL的加和调整为压缩BCD码

(SUB AL,i8/r8/m8)

(SBB AL,i8/r8/m8)

DAS

使用条件:

1. 当AF标志位为1;或AL寄存器的低4位超出BCD数的计数符号<0AH-0FH>,

则AL寄存器的内容减06F,且将AF置1;

2. 当CF标志位为1,或AL 寄存器的高四位超出BCD数的计数符号<0AH-0FH>,

则AL寄存器的内容减60H,且将CF置1.

;AL←将AL的减差调整为压缩BCD码

注意:

1.使用DAA或DAS指令前,应先执行以AL为目的操作数的加法或减法指令;

2.DAA和DAS指令对OF标志无定义,按结果影响其他标志,例如CF反映压缩BCD

码相加或减的进位或借位状态.

?乘法类

乘法指令

1.无符号乘法

MUL r8/m8;无符号字节乘法,AX←AL×r8/m8

MUL r16/m16;无符号字乘法;DX.AX←AX×r16/m16

操作数:

◆目的操作数隐含,为AX、AL;

◆源操作数为imm8,reg8或imm16,reg16

2.有符号乘法

I MUL r8/m8;有符号字节乘法,AX←AL×r8/m8

IMUL r16/m16;有符号字乘法,DX.AX←AX×r16/m16

注意:

1.立即数不能作操作数:MUL 3是错的;

2.分清楚是有符号乘法还是无符号乘法;

3.影响标志位。

对标志位的影响:

乘法指令如下影响OF和CF标志:

?MUL指令——若乘积的高一半(AH或DX)为0,则OF=CF=0;否则OF=CF=1

?IMUL指令——若乘积的高一半是低一半的符号扩展,则OF=CF=0;否则均1

乘法指令对其他状态标志没有定义

标识为影响示例:

mov al,0b4h ;al=b4h=180

mov bl,11h ;bl=11h=17

mulbl ;ax=Obf4h=3060

;OF=CF=1,AX高8位不为0

mov al,0b4h ;al=b4h=-76

mov bl,11h ;bl=11h=17

imulbl ;ax=faf4h=-1292

;OF=CF=1,AX高8位含有效数字

?除法类

除法指令

1. 无符号除法

DIV r8/m8 ;无符号字节除法:AL←AX÷r8/m8的商,Ah←AX÷r8/m8的余数

DIV r16/m16 ;无符号字除法:AX←DX.AX÷r16/m16的商,DX←DX.AX÷r16/m16的余数

操作数:

目的操作数隐含,为AX或DX;

源操作数为imm8,reg8或imm16,reg16

2.有符号除法

I DIV r8/m8 ;有符号字节除法:AL←AX÷r8/m8的商,Ah←AX÷r8/m8的余数

I DIV r16/m16 ;有符号字除法:AX←DX.AX÷r16/m16的商,DX←DX.AX÷r16/m16的

余数

注意:

1.立即数不能作操作数:DIV 3是错的;

2.分清楚是有符号乘法还是无符号乘法;

3. 除法指令对标志没有定义;

4. 除法指令会产生结果溢出。

●溢出:

当被除数远大于除数时,所得的商就有可能超出它所能表达的范围。如果存放商

的寄存器AL/AX不能表达,便产生溢出,8086CPU中就产生编号为0的内部中断

——除法错中断

?对DIV指令,除数为0,或者在字节除时商超过8位,或者在字除时商超过16位,则发生除法溢出

?对IDIV指令,除数为0,或者在字节除时商不在-128~127范围内,或者在字除时商不在-32768~32767范围内,则发生除法溢出

除法指令示例(算对商和余数,并放对寄存器):

mov ax,0400h ;ax=400h=1024

mov bl,0b4h ;bl=b4h=180

div bl ;商al=05h=5

;余数ah=7ch=124

mov ax,0400h ;ax=400h=1024

mov bl,0b4h ;bl=b4h=-76

idivbl ;商al=f3h=-13

;余数ah=24h=36

3算术运算指令实验

2.3 算术运算指令实验 一、实验目的 ·掌握单字节的加减法指令的使用。 ·掌握单字节的乘除法指令的使用。 ·掌握用Keil调试汇编源程序的方法。 ·掌握用Proteus调试汇编源程序的方法。 二、实验预备知识 算术运算指令对程序状态寄存器PSW中的相关位会产生不同的影响。具体如下:◇执行加法指令时,当和的第3位或第7位有进位时,分别将AC、CY标志位置1;否则为O。如果第6位向第7位有进位而第7位没有向前进位,或者如果第7位向前有进位而第6位没有向第7位进位,OV=1,否则OV-O。该操作也影响标志位P。 ◇执行减法指令时,如果第7位有借位,则CY置1,否则清O。若第3位有借位,则 AC置1;否则清O。两个带符号数相减,还要考查OV标志,若OV为1,表示差数溢出,即破坏了正确结果的符号位。该操作也影响标志位P。 ◇执行乘法指令时,若乘积大子OFFH,则OV置1,否则清o(此时B的内容为0)。 CY总是被清O。该操作也影响标志位p。 ◇执行除法指令时,若除数(B) -OOH.则结果无法确定,OV置l。CY总是被清O。该操作也影响标志位P。 三、实验内容 将算术运算指令分成两类,分别编写两个小程序,以完成数据的加减法、乘除法运算。 1.参考程序i-hn减法运算 (1)将立即数# B5H、#36H、#89H分别传送至内部RAM区40H、R2、A中。 (2)将内部RAM区40H中的内容与A中的内容相加,然后再与R2中的内容相加,结果存放至内部RAM区50H中。 (3)将A中的内容与内部RAM区40H中的内容相减,结果存放至内部RAM区60H中。 2.参考程序2——乘除法运算 (1>将立即数#75H、#31H分别传送至内部RAM区15H、33H中。 (2)将内部RAM区15H单元的内容与33H单元的内容相乘。 (3)将乘积的高8位和低8位分别传送至内部RAM区31H、30H中。 (4)将内部RAM区15H单元的内容除以33H单元的内容。 (5)将商和余数分别传送至内部RAM区41H、40H中。四、实验参考程序

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:(1)一个8bit CPU是微处理器的核心,是运算和逻辑计算的中心。 (2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 (3)4K ROM程序存贮器:存贮程序及常用表格。 (4)128B RAM 数据存贮器:存贮一些中间变量和常数等。 (5)两个16bit定时器/计数器:完全硬件定时器 (6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。 (7)一个可编程全双工串行口。 (8)五个中断源。 2、什么是指令?什么是程序? 答:指令是规定计算机执行某种操作的命令。 程序是根据任务要求有序编排指令的集合。 3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间? 答:89S51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 4、开机复位后,CPU使用的是哪组工作寄存器?他们的地址是多少?CPU如何确定

和改变当前工作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。 5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操作中要使用两组工作寄存器,SP应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH 为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。 6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz 时,一个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8MHz,则一个机器周期=1/8×12μs=μs 7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么? 答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下: ):进位标志位。 (C y (AC):辅助进位标志位,又称为半进位标志位。

实验二 算术运算实验

实验二算术运算实验 一、实验目的 1、掌握MASM for Windows 环境下的汇编语言编程环境使用; 2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式; 3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志 位的影响及测试方法; 4、掌握无符号数和有符号数运算区别及编程方法; 5、掌握BCD 码调整指令的使用方法 二、软硬件实验环境 1、硬件环境:惠普64 位一体化计算机及局域网; 2、软件环境:windows 8,红蜘蛛管理系统,MASM for Windows。 三、实验基本原理 算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。 1) 标志位 在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。 表1标志名和状态符号的对照表参照表 2) 加减法指令 ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。 3) 乘除法指令

MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV 表示带符号数除法指令。 4) 符号位扩展指令 CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。 5) BCD码的调整指令 在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。 组合的BCD码加法调整指令DAA; 组合的BCD码减法调整指令DAS; 非组合的BCD码加法调整指令AAA; 非组合的BCD码减法调整指令AAS; 乘法的非组合BCD码调整指令AAM; 除法的非组合BCD码调整指令AAD。 8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。 表2数据类型的数据运算表 四、实验步骤与内容 1)对于表格中三组无符号数,试编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响: ①实验分析 本实验要求简单,仅对指定三组数进行基本运算。只需使用ADD、SUB、MUL、DIV四个运算命令,并以MOV命令作为数值转移的手段即可。运算结果和状态标志的情况可以通过debug调试中的T命令进行逐步查看。 需要注意的主要有以下几点: 1.在进行加法和乘法运算时,会出现对高位的进位扩展。因此,在记录结

第八讲 算术运算类指令

第八讲算术运算类指令 教学方法:讲授法 教学目的: 1、熟悉数据运算类指令的操作方式特点 2、理解二-十进制调整指令的含义 3、熟练掌握加法指令 教学重点、难点: 加法、减法指令、二-十进制调整指令 无条件转移指令的应用 主要教学内容(提纲): 一、数据运算类指令的操作方式特点 二、算术运算类指令 三、逻辑运算类指令 复习: direct、@Ri、@DPTR、Rn、#data、(x)、((x))的含义? 讲授要点 §3-3 算术运算类指令 包括:加、减、乘、除;加一、减一。 一、加法指令 ADD A,Rn ;(A)(A)+ (Rn)以下类同。 ADD A,direct ADD A,@Ri ADD A,#data 无符号数相加时:若C = 1,说明有溢出(其值> 255)。 带符号数相加时:若OV = D7c⊕D6c = 1,说明有溢出。 ADDC A,Rn ;(A)(A)+(Rn)+(C),以下类同。ADDC A,direct ADDC A,@Ri ADDC A,#data 上述四条指令多用于多字节数相加。 INC A ;(A)(A)+1 ,以下类同。 INC Rn INC direct INC @Ri INC DPTR 例1、设(R0)= 7FH;(7EH)= 40H

执行:INC @R0 INC R0 INC @R0 后, (R0)= 7FH; (7EH)= 00H; (7FH)= 41H. DA A ;二——十进制调整指令。 执行过程中,CPU能根据加法运算后,累加器中的值和PSW中的AC及C标志位的状况自动选择一个修正值(00H、06H、60H、66H)与原运算结果相加,进行二——十进制调整。 选择修正值的规则: (A3 ~ 0)> 9时或(AC)= 1时,(A3 ~ 0)(A3 ~ 0)+6 (A7 ~ 4)> 9 或(C) = 1时,(A7 ~ 4)(A7 ~ 4)+ 6 例2、设(A)= 56H 为56的压缩的BCD码数,(R3)= 67H,(CY)=1 执行ADDC A,R3 DA A 结果为:124 注意:1)DA指令只能跟在加法指令后面使用; 2)调整前参与运算的两数是BCD码数; 3)DA指令不能与减法指令配对使用,但可以实现对A中压缩BCD 减一操作。 例3、设(A)=30H(压缩BCD码数),执行: ADD A,#99H DA A 后,便实现了30 -1 = 29的操作。 例4、两个4位BCD码相加,一个存放在(31H)(30H);另一个存放在 (33H)(32H);和数拟回存在(31H)(30H)中,试编程实现之。 解:MOV R0,#30H MOV R1,#32H MOV A,@R0 ADD A,@R1 DA A MOV @R0,A INC R0 INC R1 MOV A,@R0 ADDC A,@R1 DA A MOV @R0,A 二、减法指令 SUBB A,Rn ;(A)(A)-(Rn)-(C),以下类同。 SUBB A,direct SUBB A,@Ri SUBB A,#data

基于51单片机的简易计算器制作

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

算术运算符练习题2 阅读程序写结果

算术运算符练习题2 阅读程序写结果 题1: #include using namespace std; int main() { int x; cin>>x; cout<<"10x="<<10*x< using namespace std; int main() { int x; scanf("%d",&x); printf("8x=%d\n",8*x); return 0; } 输入:4 输出: 题3: #include using namespace std; int main() { int x; cin>>x; y=13*x; cout<<"y="< using namespace std; int main() { int a,b,c; scanf("%d%d",&a,&b); c=2*a+3*b; printf("c=%d",c); return 0; } 输入:2 3 输出: 题5: #include using namespace std; int main() { int m,n; m=7775; n=m%100; cout< using namespace std; int main() { int m,n; m=567; n=m/10%10; printf("%d",n); return 0; } 输出:

练习(算术运算及逻辑移位指令3题目)

练习 算术运算与逻辑移位指令 1、若AX=0ABCDH,BX=7F8FH,CF=1。分别执行0886 CPU指令 (1)ADD AX,BX (2)ADC AX,BX (3)SBB AX,BX (3)NEG AX (5)AND AX,BX (6)OR AX,BX (7)XOR AX,BX (8)IMUL BL 后,AX寄存器中的内容,并指出标志寄存器SF、ZF、AF、PF、CF及OF的状态。 2、若CX=6700H,DX=78FFH,CF=1,求分别执行指令 (1)ADD CX,DX (2)ADC CX,DX (3)SUB CX,DX (4)SBB CX,DX (5)AND CX,DX (6)OR CX,DX (7)XOR CX,DX 后,CX和DX中的内容。并指出标志寄存器SF、ZF、AF、PF、CF和OF的状态。 3、X,Y分别为下列各组数,当它们分别进行加、减、AND、OR、XOR运算后,其标志位,SF、OF、CF、PF、ZF的状态如何? (1)X=21H;Y=43H (2)X=9AH;Y=0BCH (3)X=48H;Y=8DH (2)X=54H;Y=54H 4、若AX=98ABH,BX=A8BCH,求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF、ZF、AF、PF、CF和OF的状态。 5、针对下列各条指令执行后的结果,填入目的操作数的值及标志位的状态。 6、若AX=FFF8H,BX=FFFAH,求执行IMUL BX后,DX与AX中的内容,并指出标

志位OF与CF的状态。 7、若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。指出标志位OF与CF的状态。 8、设AL=85H,BL=2AH,均为带符号数,求指令 IMUL BL的执行结果。 9、若AL=78H,BL=87H, (1)求执行指令 ADD AL,BL DAA 之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。 (2)若执行指令SUB AL,BL与DAS后,情况又如何? 10、若AL=75H,BL=48, (1)求执行指令 ADD AL,BL DAA 之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。 (2)若执行指令SUB AL,BL与DAS后,情况又如何? 11、若有一个4字节数,放在寄存器BX间址的内存中(低地址对应低字节),要求这个4字节整数整个左移一位如何实现?右移一位又如何实现? 12、若有一个四字节数,放在寄存器DX与AX中(DX放高16位),要求这个四字节数整个左移一位如何实现?右移一位又如何实现? 13、分别编写一程序使 (1)AX寄存器高3位清0; (2)BX寄存器高3位置1; (3)CX寄存器高4位取反; (4)DX寄存器高3位不变,其余位清0。

熟悉并使用算术逻辑操作类指令

微处理器原理课实验日志 一、实验题目:熟悉并使用算术逻辑操作类指令 二、实验结果 本次实验的目的是为了让我们熟悉算术运算类指令,熟悉逻辑运算类指令,掌握算术运算类指令对标志位的影响。本次实验分为验证性和操作性,对于验证性实验要求在自己理解程序的基础上去运行程序,查看运行结果。操作性实验要求自己编写程序实现相关要求,最后运行查看结果。 第一个程序是验证性(加法减法指令),代码为: MOV A,#12H MOV R0,#24H MOV 21H,#56H ADD A,#12H MOV DPTR,#4316H ADD A,DPH ADD A,R0 CLR C SUBB A,DPL SUBB A,#25H INC A SETB C ADDC A,21H

INC R0 SUBB A,R0 MOV 24H,#16H CLR C ADD A,@R0 此程序的功能为:熟悉加法减法指令,尤其是ADD与ADDC、还有就是在SUBB中注意什么时候Cy标志位清零的运用;DPH、DPL 的运用等。最后在没有运行程序之前对程序进行简单的运算,累加器A中的数据是0xE0=#83H,程序运算结果如下: 按照实验要求第二个程序代码为: MOV 30H,#34H MOV 31H,#2AH MOV 32H,#0FAH MOV 33H,#48H MOV R0,#30H MOV A,@R0 INC R0 MOV B,@R0 MUL AB MOV R1,A MOV R2,B MOV A,@R0 INC R0 MOV B,@R0 DIV AB MOV R3,A MOV R4,B

本程序的重点是分析乘法中高八位存在B寄存器中和低八位存在累加器A中,除法运算A累加器中存放的是商,B寄存器中存放的余数。所以,分析得到乘法运算中A累加器中存放的是88H,B寄存器中存放是08H;除法运算中A累加器存放的是00H,B寄存器中存放的是2AH.程序运算的结果如下: 按照第三个程序是移位指令代码为: MOV A,#39H CPL A RL A CLR C RRC A SETB C RLC A SWAP A 此程序的运行结果应该是:0C6H、8DH、46H、8DH、D8H。 操作性实验,按照要求书写代码如下:

第三章 单片机运算符及表达式

第三章运算符及表达式 说明:Cx51的运算符与普通C语言的几乎完全一样,带复习性质,重点介绍在单片机中应用的特点。 一、运算符及表达式 运算符:完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为单目运算符,双目运算符和三目运算符。单目就是指需要有一个运算对象,双目就要求有两个运算对象,三目则要三个运算对象。 运算对象:在程序运行时,有数值或有数值传递给它。 表达式:表达式则是由运算符及运算对象所组成的具有特定含义的式子。C是一种表达式语言,表达式后面加";"号就构成了一个表达式语句。 例:x=a*(b+c-a); 子表达式:成对的括号以及在它们之间的全部符号组成的表达式。上例中 (b+c-a)就是子表达式。 二、运算符 1、赋值运算符

1) 赋值运算符 赋值符号“=”完成的操作即为赋值运算,它是右结合性,且优先级最低。 2) 赋值表达式 将一个变量与表达式用赋值号连接起来就构成赋值表达式。形式如下: 变量名=表达式 赋值表达式中的表达式包括变量、算术运算表达式、关系运算表达式、逻辑运算表达式等,甚至可以是另一个赋值表达式。赋值过程是将“=”右边表达式的值赋给“=”左边的一个变量,赋值表达式的值就是被赋值变量的值。 例如: a=(b=4)+(c=6);,该表达式的值为10,变量a 的值为10。 3) 赋值的类型转换规则 在赋值运算中,当“=”两侧的类型不一致时,要将数据转换成同一数据类型,转换的方式有两种,一种是系统自动转换,一种是强制转换。 (1)系统自动转换

编译时,将右边表达式的值转换成左侧变量的类型,再赋给该变量。转换规则如下: ①实型数据赋给整型变量时,舍弃小数部分。 ②整型数据赋给实型变量时,数值不变,但以IEEE 浮点数形式存储在变量中。 ③长字节整型数据赋给短字节整型变量时,实行截断处理。如将long 型数据赋给int型变量时,将long 型数据的低两字节数据赋给int 型变量,而将long 型数据的高两字节的数据丢弃。 ④短字节整型数据赋给长字节整型变量时,进行符号扩展。如将int 型数据赋给long型变量时,将int 型数据赋给long 型变量的低两字节,而将long 型变量的高两字节的每一位都设为int 型数据的符号值。 (2)强制转换 使用强制类型转换运算符转换: (类型名) (表达式); 将表达式的数据类型转换为前面要求的类型名。 例1:x=(float)a; y=(int)(x+y);

单片机试题及答案

单片机原理与接口技术习题答案 习题与思考题1 1-1 微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序和数据;输入/输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 1-2 单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 1-3 简述计算机的工作过程。 答:计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程。 1-4 单片机的几个重要指标的定义。 答:单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。 1-5 单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 1-6 为什么说单片微型计算机有较高的性能价格比和抗干扰能力? 答:因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具备较高的性能、价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较高的抗干扰能力。 1-7 简述单片机嵌入式系统的定义和特点。 答:单片机嵌入式系统是嵌入到对象体系中的专用计算机系统;其特点是面向特定应用、与各个行业的具体应用相结合、硬件和软件高效率、软件固化在存储器芯片或单片机本身和不具备自举开发能力。 习题与思考题2 2-1 MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O口和中断控制等基本功能部件。 单片机的核心部分是CPU,CPU是单片机的大脑和心脏。 程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 I/O接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外设状态)和发布命令等。 中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。 2-2 MCS-51单片机的核心器件是什么?它由哪些部分组成?各部分的主要功能是什么? 答:单片机的核心部分是CPU,可以说CPU是单片机的大脑和心脏。它由运算器、控制器和布尔(位)处理器组成。 运算器是用于对数据进行算术运算和逻辑操作的执行部件。

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支持

所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的A T89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

《计算机基础》练习及答案

《计算机基础》练习及答案 一、单选题 1.能够准确反映现代计算机的主要功能是 B 。 A.计算机可以实现高速运算 B.计算机是一种信息处理机 C.计算机可以存储大量信息 D.计算机可以代替人的脑力劳动 2.按照计算机的用途分类,可将计算机分为 D 。 A.通用计算机、个人计算机 B.数字计算机、模拟计算机 C.巨型计算机、微型计算机 D.通用计算机、专用计算机 3.工业上的自动机床属于 C 。 A.科学计算方面的计算机应用 B.数据处理方面的计算机应用 C.过程控制方面的计算机应用 D.人工智能方面的计算机应用 4.如果(52)(2A)16,则x为 B 。

A.2 B.8 C.10 D.16 5.下列数中最大的数是 D 。 A.(1000101)2 B.(107)8 C.(73)10 D.(4B)16 6.已知:3×4=14,则4×5= A 。 A.24 B.26 C.30 D.36 7.字节是数据处理的基本单位,1= C 。 A.1 B.4 C.8 D.16 8.存储器容量大小是以字节数来度量,1= B 。 A.1000B B.1024B C.1024× 1024B D.1048576B 9.假设某计算机的字长为8位,则十进制数(-66)10的反码表示 为 C 。 A.01000010 B.11000010

C.10111101 D.10111110 10.假设某计算机的字长为8位,则十进制数(+75)10的补码表示为 A 。 A.01001011 B.11001011 C.10110100 D.10110101 11.假设某计算机的字长为8位,则十进制数(-75)10的补码表示为 D 。 A.01001011 B.11001011 C.10110100 D.10110101 12.我国信息交换用汉字编码字符集-基本集是 C 。 5 2312 13.在下面关于字符之间大小关系的说法中,正确的是 B 。 A.6>b>B B.6>B>b >B>6 >b>6 14.已知:“B”的码值是66,则码值为1000100的字符为 B 。

基于加减法单片机

常熟理工学院 电气与自动化工程学院 《微机原理与接口技术》课程设计 题目:基于1602加减法 计数系统的设计 姓名: 学号: 班级: 指导教师: 起止日期:2015.7.6—2015.7.10

目录 第1章引言 (1) 1.1设计任务与要求 (1) 1.2作品设计思路及方案 (2) 第2章硬件设计 (2) 2.1 单片机功能的介绍 (2) 2.2 proteus 介绍 (3) 2.3 电路原理图 (4) 2.3.1复位电路 (4) 2.3.2晶振电路 (5) 2.3.3 指示灯电路设计 (5) 2.3.4 AT89C51单片机 (6) 2.3.5 74LS48 芯片介绍 (7) 2.3.6 七段数码管 (8) 第3章软件设计 (9) 3.1 软件主程序设计 (9) 3.2 软件设计的流程图 (9) 3.3 软件代码 (10) 第4章系统调试 (14) 总结 (17) 参考文献 (18)

第1章引言 抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合中,它能迅速、客观地分辨出最先获得发言权的选手。本课题是利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器原理,将软、硬件结合起来,使得系统能够正确的进行计时,数码管可以正确的显示时间和选手号码。同时系统能后实现:在抢答过程中只有在主持人按下开始抢答键开始之后5秒以内抢答才被认为抢答有效,如果在开始抢答之前抢答则被视为犯规(抢答无效)。在抢答成功之后相应的发光二极管会点亮,数码管也会显示选手的号码。同时还有主持人控制的系统复位键,以实现系统的复位。还有按键锁定,在第一个选手抢答成功或者犯规状态下其他按键均无效。 1.1设计任务与要求 1、抢答器同时供4名选手比赛,分别用4个按键S0~S3表示。 2、设置一个系统复位和抢答控制按键S,该按键由主持人控制的。 3、抢答器具有数码显示功能。即选手按动按钮,锁存相应的编号,并在LED 数码管上显示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人讲系统复位为止。 4、参赛选手在规定时间内抢答,则抢答有效,定时器停止工作,显示器上显 示选手的编号并保持到支持人将系统清除位置。 5、若再规定时间内没有人抢答,则数码管关闭,违规灯亮,那主持人则按复 位按键,跳至下一题。

单片机习题集及答案

1.在MCS-51中,有7种寻址方式,它们分别为立即数寻、寄存器寻址、直接寻址、寄存器间接寻址、相对寻址、变址寻址和位寻址。 2.汇编语言的指令格式为标号:操作码操作数注释。 3.数据传送类指令执行完毕,源操作数的内容不会(会/不会)丢失。 4.8051内部RAM从20H至2FH既可位寻址,又可间接寻址,位地址空间从00H到7FH。5.MCS-51单片机指令系统中,指令长度有一字节、二字节和(三)字节,指令执行时间有一个机器周期、两个机器周期和四机器周期,乘法指令需四机器周期。6.MOV A,20H中,20H的寻址方式称之为_直接___; SETB 20H的寻址方式为位寻址。7.关于堆栈类操作的两条指令分别是_PUSH(入栈)指令_ 、POP(出栈)指令;堆栈操作只能是寄存器间接寻址寻址。 8.访问8031片外数据存储器MOVX指令采用的是寄存器间接寻址寻址方式。访问片外序存储器MOVC指令采用的是变址寻址方式。 9.设(A)=55H,(R5)=AAH,则执行ANL A,R5指令后的结果是(A)=00H,(R5)= AAH;则执行ORL A,R5指令后的结果是(A)= FFH ,(R5)= AAF; 则执行XRL A,R5指令后的结果是(A)= FFH,(R5)= AAH 。 10.伪指令不产生 (产生/不产生)可执行目标代码。汇编语言程序结束的指令为END。11.DA指令跟在ADD,ADDC指令的后面,用与二进制数与BCD码的调整。若 (A)=0AH ,执行DA A指令后,(A)= 15。 单项选择题 跳转范围是:(D. -128~127B) 2.MCS—51系列单片机最长的一条指令需 B. 4个机器周期。 3.MOV A,@R0这条指令中@R0的寻址方式称为:(B. 寄存器间接寻址) 4.在CPU内部,反映程序运行状态或反映运算结果的特征寄存器是:B. PSW 5.下列指令中正确的是:B. JBC TF0,L1 6.下列指令中错误的是:A. SETB 7.将累加器的值压入堆栈的正确指令是:B. PUSH A 8.下列那条减法指令是错误的:C. SUBBC 9. 指令CJNE A ,#00H ,LOOP 影响PSW的哪一位: 10. 在MUL AB指令中,若积超过255,则C. OV=1 11.在相对寻址方式中,寻址的结果体现在中 12.在相对寻址方式中,"相对"两字是指相对于 C.当前指令的末地址 13.在寄存器间接寻址方式中,指定寄存器中存放的是B.操作数地址 14.对程序存储器的读操作,只能使用D.MOVC指令 15.必须进行十进制调整的十进制运算C.只有加法

单片机C语言编程中多位乘法运算问题探讨

第23卷第4期 2006年12月广东工业大学学报Journa l of Guangdong Un i versity of Technology Vol .23 No .4Dece mber 2006 收稿日期:2005212212 项目基金:广东省科技计划项目(2003C102022) 作者简介:严克剑(19822),男,硕士研究生,主要研究方向为控制网络集成. 单片机C 语言编程中多位乘法运算问题探讨 严克剑,张 淼,黄先伟 (广东工业大学自动化学院,广东广州510090) 摘要:本文指出了人们运用C51实现多字节乘法运算时可能忽视的一个问题.通过分析该问题出现的原因,提出了中间变量法、分步运算法和强制数据类型转换法等3种解决方法,实验表明这些方法是可行的. 关键词:C51;单片机;乘法运算 中图分类号:TP332.3 文献标识码:A 文章编号:100727162(2006)0420023204 C 语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作[1].Keil C51是德国Keil Soft w are 公司出品的51系列兼容单片机C 语言软件开发系统.与汇编相比,C 语言在功能、结构性、可读性、可维护性上有明显的优势,因而易学易用.Keil C51继承了C 语言对数据有很强的表达能力的优点,具有丰富的运算符,在算术运算和逻辑运算上更体现了汇编不可比拟的优点.由于C5l 语言具有强大的数据处理能力和数学运算库函数,当涉及到复杂的数学运算,使用C51语言往往会比较方便.在一般情况下,由C51编译生成的代码不论长度还是程序运行速度均能适应程序要求.利用C51开发单片机系统,不但可以使编程工作量大为减少,而且使软件维护、修改亦变得非常方便[2]. 1 问题提出 在Keil C51中,bit 和unsigned char 型变量是机器语言直接支持的,因此两个unsigned char 类型的数据相乘恰好与汇编指令中的“MUL AB ”相符.使用Keil C51做乘法运算编程,往往只需要利用乘法表达式来编译,只要编译通过Keil C51就会自动地寻找寄存器把运行结果存放在里面.因此,在运用C51来完成乘法运算的时候,编程员通常就是编写一个乘法表达式和把乘积结果赋值给一个存储单元就可以了.而如果乘法运算中的乘数不是unsigned char 型变量,就算是简单的一个乘法表达式也需要调用C51中的库函数;如果乘数是大于255的常量,C51自动地把这个乘数以相应的类型储存起来,由于unsigned char 是8位的,大于255的常量和其他类型的变量一样也需要调用库函数.因此,如果在这些情况下还仅仅是用乘法表达式来编译的话,得到的结果就可能与实际结果不相等.笔者在编程的时候曾经遇上上述情况. 例如以下有一段程序,运行之后所得结果gg 的值不等于9310000所得的结果. #include main ()

数学四则运算练习题

数学四则运算练习题 一、填空题 1、()—56+72= 2169 4 ()=108 54 () 5=135 2、将38+53=91,91 13=7,86+7=93这3个算式合并成一个综合算式是: 3、0在除法算式中不能为()。 二、判断题 1、算式180—(92+72)去掉小括号后,计算结果没有变化。() 2、甲数是72,比乙数的2倍少12,求乙数的算式是72。() 3、算式168—(68 2) 3中的.小括号可以省略。() 三、脱式计算 1、5600— 8168 78 20 2、46 (587+962 74) 3、84—4200 (850 17) 4、(765+274) 6—5894 5、613+764+387 6、33+58+77+42—164 四、解决问题 1、小刚和小强赛跑,两人同时起跑,6分钟后,小刚跑了1200米,小强跑了1188米,平均每分钟小刚比小强多跑了多少米?(用两种方法解答) 2、小丽敲一份稿子,前6分钟每分钟敲80个字,由于赶时间,她加快了 速度,后四分钟共敲了400个字,这份稿子她平均每分钟敲多少个字? 3、某机械厂要加工一批小零件,计划每天加工180个,15天完工。为了 提前完成任务,实际每天比计划多加工90个,可以提前几天完成任务? 4、老师让同学们10人一排站队,可同学们错站成了11人一排,结果站了 18排还多了2人。如果按老师的指令站,应站几排? 5、李伯伯从商店购买了20袋饲料,共用了820元,他上网查,这种产品到厂家直接购买每袋32元。李伯伯购买这些饲料比从网上购买多花了多少钱?

6、某摩托车厂9月份生产了570辆摩托车,其中有10辆不合格。合格的产品用大卡车运往各销售网点。一辆大卡车一次可以运35辆,需要运费485元。这些摩托车需要多少辆大卡车才能运完?共需要多少运费? 感谢您的阅读,祝您生活愉快。

Maple 常用计算命令

Maple 常用计算命令 《Maple 指令》7.0版本 第1章章数 1.1 复数 Re,Im - 返回复数型表达式的实部/虚部 abs - 绝对值函数 argument - 复数的幅角函数 conjugate - 返回共轭复数 csgn - 实数和复数表达式的符号函数 signum - 实数和复数表达式的sign 函数5 1.2 MAPLE 常数 已知的变量名称 指数常数(以自然对数为底) I - x^2 = -1 的根 infinity 无穷大 1.3 整数函数 ! - 阶乘函数 irem, iquo - 整数的余数/商 isprime - 素数测试 isqrfree - 无整数平方的因数分解 max, min - 数的最大值/最小值 mod, modp, mods - 计算对 m 的整数模 rand - 随机数生成器 randomize - 重置随机数生成器 1.4 素数 Randpoly, Randprime - 有限域的随机多项式/首一素数多项式ithprime - 确定第i个素数 nextprime, prevprime - 确定下一个最大/最小素数 1.5 数的进制转换 convert/base - 基数之间的转换 convert/binary - 转换为二进制形式 convert/decimal - 转换为 10 进制 convert/double - 将双精度浮点数由一种形式转换为另一种形式convert/float - 转换为浮点数 convert/hex - 转换为十六进制形式 convert/metric - 转换为公制单位 convert/octal - 转换为八进制形式 1.6 数的类型检查 type - 数的类型检查函数 第2章初等数学 2.1 初等函数 product - 确定乘积求和不确定乘积 exp - 指数函数

单片机练习题答案

单片机练习题答案 一、填空题 1、若单片机振荡脉冲频率为6MHz时,一个机器周期为______2μs________。 2、AT89C51单片机的XTAL1和XTAL2引脚是___外接晶振或时钟__引脚。 3、定时器/计数器的工作方式3是指的将定时器/计数器T0 拆成两个独立的8位计数器。 4、若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为__08~0FH____。 5、写出完成相应功能的汇编指令:将立即数11H送到R2____ MOV R2,#11H ____、使ACC.2置位____ SETB ACC.2__、使累加器的最低2位清零___ ANL A,#0FCH ___。 6、A/D转换的作用是将__模拟____量转为数字量。ADC0809是__8___位的A/D转换芯片。 7、8051的堆栈区一般开辟在用户RAM区的地址为30H~7FH。 8、所谓寻址,其实质就是__如何确定操作数的单元地址问题_。 9、若单片机振荡脉冲频率为12MHz时,一个机器周期为____1μs ______。 10、定时器中断请求发生在__计数溢出的时候_____。 11、中断响应时间是指__从中断请求发生直到被响应去执行中断服务程序所需的时间____。 12、通过CPU对I/O状态的测试,只有I/O已准备好时才能进行I/O传送,这种传送方 式称为____程序查询方式___。 13、在中断服务程序中现场保护和现场恢复期间,中断系统应处在__关中断__状态。 14、8051单片机的内部硬件结构包括了:中央处理器(CPU)、数据存储器(RAM)、程序存储器、和2个16位定时/计数器以及并行I/O口、串行口、中断控制系统、时钟电路、 位处理器等部件,这些部件通过内部总线相连接。 15、MCS-51的堆栈只可设置在RAM的地址为30H~7FH,堆栈寄存器sp是8位寄存器。 16、MCS-51单片机的P0~P4口均是并行I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的数据总线和地址总线,在P0~P4口中,P0为真正的双相口,P1—P3为准双向口;P3口具有第二引脚功能。 17、若LED为共阳极接法(即负逻辑控制),则字符3的八段代码值(a->dot)应当为__0D__H。 18、MCS-51片内20H~2FH范围内的数据存储器,既可以__字节__寻址又可以位寻址。 19、AT89C51单片机有___2___级中断,___5___个中断源。 20、MCS-51系列单片机的典型芯片型号分别为_____8031或8051_____、_____ AT89C 51或AT89C52_____、_____ AT89S51或AT89S52____。

相关文档
最新文档