逻辑及布尔指令和控制转移类指令练习
微机原理 逻辑运算与位移类指令

和PF,对AF未定义。NOT指令不影响状态标志位。
[例] MOV AL,75H AND AL,32H OR AL,71H XOR AL,0F1H NOT AL
;AL75H ;AL30H,CF=OF=0、SF=0、ZF=0、PF=1 ;AL71H,CF=OF=0、SF=0、ZF=0、PF=1 ;AL80H,CF=OF=0、SF=1、ZF=0、PF=0 ;AL7FH,不改变状态标志位
Jcc LABEL
;条件满足,发生转移:
;IPIP+8位的位移量;
;否则,顺序执行。
注意:
① 条件转移指令Jcc只支持段内短转移的寻址方式,只能实 现段内-128~127个单元范围的跳转,其间共有多少条指令是不 确定的。
② 条件转移指令不影响标志,但利用状态标志作为控制转 移的条件。Jcc中的cc表示利用标志判断的条件。同一条指令可 能有多个助记符形式,这只是为了利于记忆,方便使用。
➢逻辑运算与移位类指令
当需要对字节或字数据中的各个二进制位进行操作时,可
以考虑采用逻辑运算与移位类指令。
ADD、ADC、SUB、SBB、CMP和AND、OR、XOR、TEST具有相同
的指令格式:
运算指令助记符
reg,imm/reg/mem
运算指令助记符
mem,imm/reg
以上格式表明了操作数的寻址方式。也可统一表示为:
……
JMP指令
JMP执行后 IP =
代码段
Disp=08H
EBH 0100H 08H 0101H
0102H
...... Disp=08H
MOV指令
B0H 010AH(HELLO) 新的IP
03H 010BH
2)段内直接近转移
MCS-51指令系统

4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,
单片机原理及应用第6讲逻辑运算指令及移位、转移指令

• (2)带进位加法指令 • ADDC A,Rn • ADDC A, #data • ADDC A, direct • ADDC A, @Ri • 注意:影响PSW寄存器中的Cy 、AC、 OV、P标志位
• (3)加1指令 • INC A;只有它影响PSW,其余四个指 令不 影响 INC Rn INC direct INC @Ri INC DPTR
• • • •
4、累加器清零和取反指令 CLR A CPL A 用于对某个存储单元或累加器A中的数进 行清零和取反
• 例: • 1、内部数据存储单元30H有一个数,试 编程保留其低4位,高4位变为0 • 2、试编程把累加器A的低四位送入P1口 低四位, P1口高四位不变 • 3、外部RAM30H中有一个数,试编程把 它的低四位取反 • 4、内部RAM 30H中有一负数x,试编程 求x的补码
单片机原理及应用课后习题答案

单片机原理及应用课后习题答案课后思考题级习题答案思考题与习题1一、填空1.单片机按照用途通常分为 通用型 和 专用型 。
2.单片机也称为 微控制器 和 单片微型计算机 。
二、简答1.什么是单片机?答:单片机也称微控制器,它是将中央处理器、程序处理器、数据处理器、输入/输出接口、定时/计数器串行口、系统总线等集成在一个半导体芯片上的微计算机,因此又称为单片微型计算机,简称为单片机。
2.简述单片机的特点和应用领域。
答:(1)单片机体积小,应用系统结构简单,能满足很多应用领域对硬件功能的要求。
(2)单片机的可靠性高。
(3)单片机的指令系统简单,易学易用。
(4)单片机的发展迅速,特别是最近几年,单片机的内部结构越来越完善。
3.写出AT89S51与AT89S52芯片的主要区别。
内部程序存储区容量不同,52的程序存储空间为8K ,内部数据存储空间为256B ,中断源8个,定时器/计数器有3个,而51的程序存储空间为4K ,内部数据存储空间为128B ,中断源5个,定时器/计数器有2个。
思考题与习题2一、填空题1.如果(PSW )=10H, 则内部RAM 工作寄存器区的当前寄存器是第二 组寄存器,8个寄存器的单元地址为 10H ~ 17H 。
2.为寻址程序状态字F0位,可使用的地址和符号有 PSW.5 、 0D0H.5 、 F0 和 0D5H 。
3.单片机复位后,(SP )= 07H ,P0~P3= FFH ,PC= 0000H ,PSW= 00H A= 00H 。
4.AT89S51单片机的程序存储器的寻址范围是由 PC 决定的,由于AT89S51单片机的PC 是 16 位的,所以最大寻址范围为 64KB 。
5.写出位地址为20H 所在的位,字节地址 24H.0 。
6.写出字节地址为20H 的单元最高位的位地址为 07H ,最低位的位地址为 00H 。
7.如果晶振频率MHz 6OSC f ,则一个时钟周期为1.66667E-7,一个机器周期为2us 。
plc实验1基本指令的编程练习

实验一基本指令的编程练习一、实验目的1、熟悉西门子PLC实验装置。
2、掌握S7-200型PLC的输入输出配置及外围设备的连接方法。
3、练习掌握STEP7 Micro WIN V4.0编程软件的使用方法。
4、掌握梯形图、指令表等编程语言的转换。
5、掌握与、或、非基本逻辑指令及定时器、计数器的使用。
二、实验设备1、PLC实验台(西门子S7-200)1台。
2、安装了STEP7 Micro WIN V4.0软件的计算机一台。
3、PC/PPI编程电缆一根。
4、导线若干。
三、实验接线图和I/O分配表3.1实验接线图I/O分配表编地址说明功能号1 I0.0 按钮1 系统启动2 I0.1 按钮2 系统停止3 I0.2 按钮34 I0.3 按钮45 Q0.0 灯1 指示灯6 Q0.1 灯2 指示灯7 Q0.2 接触器1 控制电动机8 Q0.3 接触器2 控制电动机四、实验步骤1、电源断电,按图接线将AC220V电源通过单极空气开关接至PLC主机电源,按纽SB1、SB2、SB3、SB4分别接至PLC输入点I0.0、I0.1、I0.2,I0.3指示灯L1、L2、KM1、KM2分别接至Q0.0、Q0.1、Q0.2、Q0.3。
用编程电缆连接PLC的PORT1和计算机的COM端。
2、接通电源,打开计算机,进入PLC编程界面,检查计算机与PLC主机通信是否正常。
3、新建文件,保存,将程序逐条输入,检查无误后,将PLC设为停止状态,STOP指示灯亮,将程序下载至PLC后,再将PLC设为运行状态,RUN指示灯亮。
4、按下按钮SB1、SB2、SB3或SB4观察输出指示灯的状态是否符合程序的运行结果。
五、基本指令练习程序1、与、或、非逻辑功能实验通过程序判断Q0.0、Q0.1、Q0.2的输出状态,然后输入并运行程序加以验证。
参考程序:(1)梯形图根据输出结果,绘制时序图(2)语句表2、电动机起动保持停止控制程序(1)梯形图(2)语句表LD I0.0O Q0.0AN I0.1= Q0.03、置位、复位指令练习(1)梯形图(2语句表)根据输出结果,绘制时序图根据输出结果,绘制时序图4、定时器功能的实验(1)得电延时定时电路语句表(2)断电延时定时电路(3) 掉电保护性接通延时定时器(保持定时器)电路根据输出结果,绘制时序图注意:PLC的定时器有一定的定时范围。
汇编语言程序设计习题集111

汇编语言程序设计习题集111《汇编语言程序设计》习题一、选择题1. 机器数为10000000B, 它代表-127D,则它是(C )。
A. 补码B. 原码C. 反码D. 原码或反码2.[x1]原=10111101B, [x2]反=10111101B, [x3]补=10111101B (C )。
A. x1最小B. x2最小C. x3最小D. x2=x1=x33.计算机的内存“溢出”是指其运算结果()。
A .为无穷大B .超出了计算机内存储单元所能存储的数值范围C .超出了该指令所指定的结果单元所能存储的数值范围D .超出了一个字所能表示数的范围4. [x1]原=11001010B, [x2]反=11001010B, [x3]补=11001010B ,那么它们的关系是()。
A. x3>x1>x2B. x2>x3>x1C. x3>x2>x1D. x2>x1>x35. 在计算机中表示地址时使用(A )。
A 无符号数B 原码C 反码D 以上都不对6. 下面说法错误的是(D )。
A 8位二进制无符号数表示的最大十进制数是255B 8位二进制带符号数表示的最大十进制数是127C 计算机中无符号数最常用于表示地址D 计算机中小数点隐含在符号位之后,占一位7. 只有当与非门的输入变量A 、B 的值为()时,其输出才为0。
A 0,0B 0,1C 1,0D 1,18. 只有当或非门的输入变量A 、B 的值为()时,其输出才为1。
A 0,0B 0,1C 1,0D 1,19. 若逻辑运算Y=A+B, 当A=B=1时,Y 为()。
A 0B 1C 10D 210. 若门电路的两个输入量为1、1,输出量为0,不可能完成此功能的是()。
A “异或”门B “与非”门C “或非”门D “与”门11. 下列不正确的是()A A AB A B +=+ B _____AB A B =+C AB B AB A B ++=+D A B A B +=12.已知V AR 为字节变量,下面是关于①MOV BX, OFFSET V AR 和②LEA BX, V AR 指令的说明,正确的是()。
控制转移类指令

控制转移类指令✧用于实现分支、循环、过程等程序结构,是仅次于传送指令的最常用指令.✧控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变说明✧只有中断返回指令(IRET)改变控制标志位✧许多转移指令受状态标志位的影响1.无条件转移指令(JMP 操作数;程序转向label标号指定的地址)◆寻址方式:直接寻址方式转移地址象立即数一样,直接在指令的机器代码中,就是直接寻址方式间接寻址方式转移地址在寄存器或主存单元中,就是通过寄存器或存储器的间接寻址方式◆目标地址范围✓段内(注意转移范围是+ -,即前后都可以转移!当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负)✡段内转移——近转移(near)⏹转移范围用二个字节表达,在当前代码段64KB范围内转移(±32KB范围)⏹不需要更改CS段地址,只要改变IP偏移地址,由16位带符号数给出。
✡段内转移——短转移(short)⏹转移范围用一个字节表达,在当前代码段256B范围内转移(-128~+127范围),只改变IP的值,由8位带符号数给出。
✓段间段间转移——远转移(far)从当前代码段跳转到另一个代码段,可以在1MB范围需要更改CS段地址和IP偏移地址目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址。
段间间接转移指令中,目的地址存放在连续4个存储单元字节中,低字节两个单元的内容代替IP,高字节两个单元的内容代替CS。
注:实际编程时,汇编程序会根据目标地址的距离,自动处理成短转移、近转移或远转移程序员可用操作符short、near ptr或far ptr强制.✌思考:如果转移超过16BIT,怎么办?答:变成段间转移。
JMP 1234H 这个指令对否?JMP 12345678H呢?2、条件转移指令(Jcclable;条件满足,发生转移:IP←IP+8位位移量;条件不满足,顺序执行)注意:1.Jcc本身不是一条指令,它是条件转移指令的统称。
指令练习(1)

MOV指令练习1.将1234H赋给CXMOV CX,1234H2.将BH的内容设置成和BL相同。
MOV BL,BH3.执行MOV AL,-5H后,AL里是什么内容?(二进制表示) 111110114.将DL里的内容存到1000H单元。
MOV [1000H],DL5.将地址为1000H的存储单元里的字节内容拷贝到地址为2000H单元。
MOV DH,[1000H]MOV [2000H],DH6.将地址为1000H的存储单元里的字内容拷贝到地址为2000H单元。
MOV SI,[1000H]MOV [2000H],SI7.将DS的值赋给ES。
MOV AX,DSMOV ES,AX8.将1234H赋给DS。
MOV BX,1234HMOV DS,BX9.将66H(字节)赋给地址为2000H的单元。
MOV BYTE PTR [2000H],66H10.将66H(字)赋给地址为3000H的单元。
MOV WORD PTR [3000H],66H二.堆栈指令练习PUSH POP1.将AX入栈。
PUSH AX2.将1000H单元里的内容入栈。
PUSH [1000H]3.将AL入栈。
PUSH AX4.将1234H入栈。
MOV AX,1234HPUSH AX5.将出栈数据存入BX。
POP BX6.将出栈数据存入20H单元。
POP [20H]7.用三种方法实现将AX、BX数据交换。
a. .MOV CX,AXMOV AX,BXMOV BX,CXb. PUSH AXPUSH BXPOP AXPOP BXc. XCHG AX,BX8.已知全班汇编语言成绩表存放在以mark为首地址的存储区内,根据学生编号(从0号开始)查询该生成绩。
算术运算类指令练习MOV BX,OFFSET MARK(在前面加offset意思是把分数取出)MOV AL,NUM(num是给学生编号)XLA T(查表指令)9.AX和内存单元Y相加,结果存于YADD Y,AX10.AH和AL相加,结果存于AHADD AH,AL11.内存单元X和内存单元Y相加,结果存于XMOV AX,YMOV X,AX12.求BX减100SUB BX,10013.求AX、SI、进位位之和,结果存于AXADC AX,SI14.求AX减SI,并减去借位位,结果存于AXSBB AX,SI15.将内存单元X加1,写出两种指令,有何异同?ADD X,1INC X(INC是只增指令,直接加1,不影响CF标志)16.将内存单元Y减1,写出两种指令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑及布尔指令和控制转移类指令练习
实验名称: 逻辑及布尔指令和控制转移类指令练习实验目的:1. 熟悉掌握逻
辑及布尔和控制转移指令的功能及编程;2. 熟悉单片机接口中各位信号的逻辑
操作3. 掌握字节数据的拼接、转换及组合。
实验要求:按照实验安排准时参
加实验,按照实验步骤操作,仔细观察及记录实验过程及结果,回答实验相关
问题,最终根据实验结果撰写实验指导书。
实验内容:1、从教材上任意选择一
程序,将之输入,练习程序调试的基本方法,体会STEP INTO,STEP OVER,运行到光标处,全部运行,设置断点,清除断点,等等基本的调试方
法。
2、将教材中关于逻辑操作与控制转移指令分别逐条进行实验,注意体会
指令语法要求以及所执行的操作。
3、30H,31H 单元用非压缩BCD 码表示两
位的十进制数,将其转换成十进制数存入32H 单元;将其转换成十六进制数存
入33H 单元。
(30H 为高位,31H 为低位)实验过程:1. 熟悉MOV 指令,在KEIL 软件里建立新工程并输入:ORG 0MOV A.#00110000BMOV B.#7FHMOV SP.#07HMOV DPTR.#010FHMOV R0.#A2HMOV A.@R0MOV B.@DPHMOV A.@DPLEND2. 分步运行,观察寄存器A,B,DPTR,堆栈指针SP 和程序计数器PC 的值。
3. 30H,31H 单元用非压缩BCD 码表示两位的十进制数,将其转换成十进制数存入32H 单元;将其转换成十六进制数存入33H
单元。
(30H 为高位,31H 为低位)输入:ORG 0MOV 30H,#00001000BMOV 31H,#00001001B;用非压缩的BCD 码在30H 和31H 里表示89DMOV A,30HRRC ARRC ARRC ARRC AMOV R2,30HADDC A,R2DA AMOV 33H,AENDtips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。