文档库 最新最全的文档下载
当前位置:文档库 › 移位指令运用教案

移位指令运用教案

移位指令运用教案
移位指令运用教案

湖南省技工学校

理论教学教案

教师姓名:

注:教案首页,教案用纸由学校另行准备湖南省劳动厅编制

2014-2015学年上学期第周第课时

益阳高级技工学校

2014-2015学年上学期第周第课时

端口分配

PLC端子)电气符号(面板端子)

X00 SD

X01 RS

X02 ME

Y00 A

Y01 B

Y02 C

Y03 D

Y04 E

2014-2015学年上学期第周第课时

益阳高级技工学校

数据传送指令及算术逻辑运算和移位指令的使用

实验报告 1.数据传送指令的使用 一,实验目的; 把数据、地址或立即数传送到寄存器、存储单元以及I/O端口,或从内存单元、I/O端口中读取数据。 1. 通用传送指令:MOV,PUSH,POP,XCHG,XLAT 2. 输入输出指令指令: IN,OUT 3. 目的地址传送指令: LEA,LDS,LES 4. 标志位传送指令: LAHF,SAHF,PUSHF,POPF 二,实验步骤; 1. 传送指令 1)用A命令在内存100H处键入下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,35 MOV AL,48 MOV DX,75AB XCHG AX,DX 2)用U命令检查键入的程序并记录,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。

2. 改变标志寄存器psw中tf标志的状态(0——1或1——0),其余位保持不变。 3. 设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下使用A 命令送入下面程序,并用单步T命令执行的方法,分析每条指令源地址的形成过程?当数据传送每完成一次,试分析AX寄存器中的内容是什么? 程序清单如下: MOV AX,BX MOV AX,0304H MOV AX,[0304H] MOV AX,[BX] MOV AX,0001[BX] MOV AX,[BX][SI] HLT

4. 使用标志位传送指令,编程序段将标志位寄存器的低八位的值存入内存单元DS:1000H 中或堆栈中,然后将标志位寄存器的低八位置位为10101010。 2.算术逻辑运算和移位指令的使用 一,实验目的; 使用算术逻辑运算和移位指令,可以实现对二进制数据的加、减、乘、除等四则运算,与、或、非、异或等逻辑运算,以及移位运算和代码转换运算 1,算术运算:加法指令、减法指令,乘法指令、除法指令以及转换指令; 2. 逻辑运算指令:AND,TEST,OR,XOR,NOT 3. 移位指令: 移位运算可以分为算术逻辑移位和循环移位两类。 (1)算术逻辑移位指令:SHL,SHR,SAL,SAR (2)循环移位指令:ROL,ROR,RCL,RCR 二,实验步骤; 1. 已知程序段定义如下: MOV AX,1234 MOV CL,4 SHL AX,CL INC AX DEC CL ROR AX,CL MOV BX,4 MUL BX

移位与循环移位指令--习题

课堂练习: 22.设AX=3762H,CL=5,执行“SHR AX,CL”后,AX=()。 A.0376H B.01BBH C.01BB D.0376 28.执行“DIV BX”指令后,()寄存器中存放商。 A.AL B.AH C.AX D.DX 24.若移位指令的移位位数大于1时,其移位位数必须放在中。 25.如果AL=85H,CL=4,执行“SAR AL,CL”时,AL= ,CF= 。 6.设BX=8234H,请说明下列两条指令的区别,执行下列各指令后BX中的内容是什么? SHR BX,1 SAR BX,1 6.现有程序段如下: MOV BL,AL MOV CL,4 SHR BL,CL MOV A,BL AND AL,0FH MOV B,AL 请回答:(1)该程序段完成的功能是什么? (2)如果AL的初值为56H,则A= ,B= 。 8.现有程序段如下: MOV AX,M MOV DX,N SHR DX,1 RCR AX,1 请回答:(1)该程序段完成的功能是什么? (2)若M=1234H,N=5678H,程序运行后DX= ,AX= 。

9.现有程序段如下: XOR AX,AX MOV AX,6342H MOV CX,0404H ROL AH,CL XCHG CH,CL ROR AL,CL 请回答:(1)该程序段执行后AX= 。 (2)CF= 。 11.现有程序段如下: MOV CX,16 MOV BX,0 MOV DX,1 L:MOV AX,9AB8H AND AX,DX JZ N INC BX N:SHL DX,1 LOOP L MOV M,BX 请回答:(1)该程序段完成的功能是什么? (2)该程序段执行完后(M)= 。 14.现有程序段如下: MOV AL,0 MOV BL,1 MOV CX,10 L:ADD AL,BL

练习(算术运算及逻辑移位指令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。

实验二算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作 一、实验目的 1.熟悉算术逻辑运算指令和移位指令的功能。 2.了解标志寄存器各标志位的意义和指令执行对它的影响。 二、实验预习要求 1.复习8086指令系统中的算术逻辑类指令和移位指令。2.按照题目要求在实验前编写好实验中的程序段。 三、实验任务 1.实验程序段及结果表格如表: 表

2.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存入(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和放在 单元中,再求出这三个数之积,积放0014单元中。写出完成此功能的程

3 后结果(AX)= (1) 传送15H 到AL 寄存器; (2) 再将AL 的内容乘以2 ; (3) 接着传送15H 到BL 寄存器; (4) 最后把AL 的内容乘以BL 的内容。 4商= (1) 传送数据2058H 到DS:1000H 单元中,数据12H 到DS:1002H 单元中; (2) 把 DS:1000H 单元中的数据传送到AX 寄存器; (3) 把AX 寄存器的内容算术右移二位; (4) 再把AX 寄存器的内容除以DS:1002H 字节单元中的数; (5) 最后把商存入字节单元DS:1003H 中。 5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12元的内容(即将零送到这些存储单元中去)。 (1) 将第4条比较指令语句填写完整(划线处)。 MOV SI ,0010H NEXT: MOV WORD PTR[SI],0 ADD SI ,2 CMP SI ,答案 22H (或者20H ) JNE NEXT HLT (2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开始),则上述程序段应如何修改 上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。 6. 输入并运行表中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。

s7-200_传送及移位指令(MOV_SHL)

案例7相关背景知识 关于:数据处理指令 一、传送类指令 传送类指令用于在各个编程元件之间进行数据传送。根据每次传送数据的数量,可分为单个传送指令和块传送指令。 1.单个传送指令MOVB,BIR,BIW,MOVW,MOVD,MOVR 单个传送指令每次传送l个数据,传送数据的类型分为字节传送、字传送、双字传送和实数传送。 (1)字节传送指令MOVB,BIR,BlW 字节传送指令可分为周期性字节传送指令和立即字节传送指令。 ①周期性字节传送指令MOVB。 在梯形图中,周期性字节传送指令以功能框的形式编程,指令名称为MOV_B。当允 许输入EN有效时,将一个无符号的单字节数据IN传送到0UT中。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时问),0006(问接寻址)。 在语句表中,周期性字节传送指令MOVB的指令格式为:MOVB IN,OUT。IN和0UT的寻址范围。 操作数类型寻址范围 IN BYTE VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数 OUT BYTE VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD ②立即字节传送指令BIR,BIW。 立即读字节传送指令BIR:当允许输入EN有效时,BIR指令立即读取(不考 虑扫描周期)当前输入继电器区中由IN指定的字节,并传送到OUT。在梯形图 中,立即读字节传送指令以功能框的形式编程,指令名称为:MOV_BIR。 当允许输入EN有效时,将1个无符号的单字节数据IN传送到0UT中。 在语句表中,立即读字节传送指令BIR的指令格式为: BIR IN,OUT。 IN和0UT的寻址范围如下表所示. 操作数类型寻址范围 IN BYTE IB OUT BYTE VB,IB,QB,MB,SB,SMB,LB,AC,。VD,8AC,。LD (2)字传送指令MOVW 字传送指令MOVW将1个字长的有符号整数数据IN传送到OUT。在梯形图中,字传送指令以功能框的形式编程,当允许输入EN有效时,将1个无符号的单字长数据IN传送到0UT中。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时间),0006(间接寻 址)。在语句表中,字传送指令MOVW的指令格式为MOVW IN,OUT。IN和0UT的 寻址范围. 操作数类型寻址范围 IN WORD VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD和常数 OUT WORD VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD (3)双字传送指令MOVD 双字传送指令MOVD将1个双字长的有符号整数数据IN传送到0UT。 在梯形图中,双字传送指令以功能框的形式编程,指令名称为:MOV_DW。 当允许输入EN有效时,将1个有符号的双字长数据IN传送到0UT中。 影响允许输出EN0正常工作的出错条件为SM4.3(运行时间),0006(问接 寻址)。在语句表中,双字传送指令MOVD的指令格式为:MOVD IN,OUT。 IN和0UT的寻址范围如下表所示。 操作数类型寻址范围 IN DWORD VD,ID,QD,MD,SMD,LD,AC,HC,*VD,*AC,*LD和常数 OUT DWORD VD,ID,QD,MD,SMD,LD,AC,*VD,*AC,*LD (4)实数传送指令MOVR

第九讲 逻辑操作类指令

教学方法:讲授法 教学时数:2学时 教学目的: 1、了解控制转移类指令的作用 2、掌握无条件转移指令的应用 3、掌握有条件转移指令的用法 教学重点: 无条件转移指令的应用 教学难点: 转移地址的确定 复习:111条指令,共分几大类?数据传送类指令又分成多少类? §3-4 逻辑操作类指令 共分两大类:单字节逻辑操作,双字节逻辑操作,共24条。 一、单字节逻辑操作指令 CLR A ;(A)0 CPL A A中8位按位求反。 循环左移、右移指令: RL A RLC A RR A RRC A 注:左移一位相当于乘2;右移一位相当于除2。 二、双字节逻辑操作指令 “与操作”: ANL A,Rn ;(A)(A)∧(Rn),以下类同。 ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data 例1、(P1)= 35H,使其高4位输出0,低4位不变。 解;ANL P1,#0FH 此做法称为“屏蔽”位。 “或操作”:

ORL A,Rn ;(A) (A)∨(Rn),以下类同。 ORL A,direct ORL A,@Ri ORL A,#data ORL direct,A ORL direct,#data 例2、将A中的低3位送入P1中,并且保持P1中高5位不变。 ANL A,#07H ANL P1,#0F8H ORL P1,A ;(P1)= P17P16P15P14P13A2A1A0 这称为“数位组合”。 “异或操作”: XRL A,Rn ;(A )(A)⊕(Rn),以下类同。 XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data 例3、设(P1)= 0B4H = 10110100B,执行: XRL P1,#00110001B 结果按# 0 0 1 1 0 0 0 1 取反,即: (P1)= 1 0 0 0 0 1 0 1 B = 85H 这称为“指定位取反”。在上述ANL、ORL、XRL操作中,用于端口操作时,无论P0 ~ P3是第一,还是第二操作数,都遵循“读—修改—写”端口锁存器的操作。小结: 1、逻辑操作分为哪两类操作? 2、循环移位指令每执行一次,移几位? 3、ANL、ORL、XRL指令有哪些使用技巧?版书设计

实验二 算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作 一.实验任务 1.实验程序段及结果表格如表:

分析: 程序段1: MOV AX, 1018H ;AX←1018H MOV SI, 230AH ;SI←230AH ADD AX, SI ;AX=3322H,低8位为00100010B,1的个数 ;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFH ADD AX,BX ;AX=3352H, MOV [20H], 1000H ;[20H]←1000H ADD [20H], AX ;[20H]=4352H PUSH AX ; POP BX ;BX=3352H 程序段2: MOV AX, 0A0AH ;AX←0A0AH ADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的

;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00H ADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个 ;数为偶数PF=1 SUB AX, AX ;AX=0,运算结果为零ZF=1 INC AX ;AX=1H OR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的 ;个数为偶数PF=1 AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1 MOV [10H], CX ;[10H]←0F0FH 程序段3: MOV BL, 25H ;BL←25H MOV BYTE PTR[10H], 4 ;[10H]←04H MOV AL, [10H] ;AL←04H MUL BL ;AL=94H 程序段4: MOV WORD PTR[10H],80H ;[10H]←0080H MOV BL, 4 ;BL←04H MOV AX, [10H] ;AX←0080H DIV BL ;AX=0020H 程序段5: MOV AX, 0 ;AX←0000H DEC AX ;AX=0FFFFH,最高位为1,SF=1,低8 ;位1的个数为偶数PF=1,最高位向前、 ;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1 ;D3向D4有进位,AF=1 NOT AX ;AX=8003H SUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1

逻辑移位和算术移位

逻辑移位和算术移位 主要是位运算中的右移会有这样的问题 比如: 11110000右移一位,前面补0还是补1? 所以就有了逻辑右移和算术右移,而左移统一补0. 逻辑右移:不管最左边一位是0还是1,都补0. 算术右移:右移是按最左边(高位)来补的(即如果是1就补1,如果是0就补0,不改变该位的值) ●算术左移SLA、算术右移SRA:把操作数看成带符号数。对寄存器操作数进行移位(要移动数 的第0 位——符号位不变。右移时空出的其余位补与第0 位相同的 1 或0 ; 左移时空出的位补0 ),位数由有效地址决定。 ●逻辑左移SLL、逻辑右移SRL:把操作数看成无符号数。对寄存器操作数进行移位(不管左右 移,要移动数空出的位补0 ),位数由有效地址决定。 算术与逻辑左移的操作完全相同,但逻辑右移的目标操作数的左端移入0,而算术右移则保持目标操作数的符号位(即最高有效位)不变。 循环指令有不通过进位位与通过进位位的循环指令,通过进位位的循环指令把CF标志作为目标操作数的扩展,参与循环操作。和移位指令不同之处是:循环移位时移出的目标操作数位并不丢失,而是循环送回目标操作数的另一端。 1.汇编语言中的逻辑右移(SHR)是将各位依次右移指定位数,然后在左侧补0,算术右移(SAR)是将各位依次右移指定位数,然后在左侧用原符号位补齐。 2.高级语言右移运算符(>>)是将一个数的二进位全部右移若干位,低位移出部分舍弃,左补0。 3.高级语言右移和汇编语言中的逻辑右移功能一样,但不同于算术右移 逻辑移位(不管是左移位还是右移位)都是空缺处补0 例如:mov ax , 1100_0111_0110_1000B mov cl , 3 shl ax , cl ; 结果ax = 0011_1011_0100_0000 mov ax , 1100_0111_0110_1000B mov cl , 3 shr ax , cl ; 结果ax = 0001_1000_1110_1101

实验二 算术逻辑运算及移位操作复习进程

实验二算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作 一、实验目的 1.熟悉算术逻辑运算指令和移位指令的功能。 2.了解标志寄存器各标志位的意义和指令执行对它的影响。 二、实验预习要求 1.复习8086指令系统中的算术逻辑类指令和移位指令。2.按照题目要求在实验前编写好实验中的程序段。 三、实验任务 1.实验程序段及结果表格如表1.2: 表1.2

2.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和0013H 单元中,再求出这三个数之积,积放0014单元中。写出完成此功 3.写出完成下述功能的程序段。上机验证你写出的程序段,程序运行的最(AX)=?

5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12个字存储单元的内容(即将零送到这些存储单元中去)。 (1) 将第4条比较指令语句填写完整(划线处)。 MOV SI ,0010H NEXT : MOV WORD PTR[SI],0 ADD SI ,2 CMP SI ,答案 22H (或者20H ) JNE NEXT HLT (2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开 始),则上述程序段应如何修改? 上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改 变。 6. 输入并运行表1.3中的程序段,把结果填入表右边的空格中,并 分析结果,说明本程序段的功能是什么。

精品资料 表1.3 四、实验报告要求 1.整理出完整的实验程序段和运行结果。 2.回答题目中的问题。 3.简要说明ADD、SUB、AND、OR指令对标志位的影响。 4.简要说明一般移位指令与循环移位指令之间的主要区别。

相关文档