step7寻址方式

step7寻址方式
step7寻址方式

完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A Q2.0 其中的A是指令符,Q2.0是A的操作数,也就是地址。这个地址由两部分组成:Q:指的是映像输出区2.0:就是这个映像输出区第二个字节的第0位。由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。DB X 200 . 0 其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。给定指令操作的地址方法,就是寻址方法。在谈间接寻址之前,我们简单的了解一下直接寻址。所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。这样看来,间接寻址就是间接的给出指令的确切操作数。对,就是这个概念。比如:A Q[MD100] ,A T[DBW100]。程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。间接由此得名。西门子的间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。【存储器间接寻址】存储器间接寻址的地址给定格式是:地址标识符+指针。指针所指示存储单元中所包含的数值,就是地址的确切数值单元。存储器间接寻址具有两个指针格式:单字和双字。单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。指针可以存放在M、DI、DB和L区域中,也就是说,可以用这些区域的内容来做指针。单字指针和双字指针在使用上有很大区别。下面举例说明:L DW#16#35 //将32位16进制数35存入ACC1 T MD2 //这个值再存入MD2,这是个32位的位存储区域L +10 //将16位整数10存入ACC1,32位16进制数35自动移动到ACC2 T MW100 //这个值再存入MW100,这是个16位的位存储区域OPN DBW[MW100] //打开DBW10。这里的[MW100]就是个单字指针,存放指针的区域是M区,MW100中的值10,就是指针间接指定的地址,它是个16位的值!-------- L L#+10 //以32位形式,把10放入ACC1,此时,ACC2中的内容为:16位整数10 T MD104 //这个值再存入MD104,这是个32位的位存储区域A I[MD104] //对I1.2进行与逻辑操作!=DIX[MD2] //赋值背景数据位DIX6.5!-------- A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态=Q[MD2] //赋值给Q6.5 -------- A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态=Q[MW100] //错误!!没有Q10这个元件--------------------------------------------------------------------------------------------------- 从上面系列举例我们至少看出来一点:单字指针只应用在地址标识符是非位的情况下。的确,单字指针前面描述过,它确定的数值是0-65535,而对于byte.bit这种具体位结构来说,只能用双字指针。这是它们的第一个区别,单字指针的另外一个限制就是,它只能对T、C、DB、FC 和FB进行寻址,通俗地说,单字指针只可以用来指代这些存储区域的编号。相对于单字指针,双字指针就没有这样的限制,它不仅可以对位地址进行寻址,还可以对BYTE、WORD、DWORD寻址,并且没有区域的限制。不过,有得必有失,在对非位的区域进行寻址时,

必须确保其0-2bit为全0!总结一下:单字指针的存储器间接寻址只能用在地址标识符是非位的场合;双字指针由于有位格式存在,所以对地址标识符没有限制。也正是由于双字指针是一个具有位的指针,因此,当对字节、字或者双字存储区地址进行寻址时,必须确保双字指针的内容是8或者8的倍数。现在,我们来分析一下上述例子中的A I[MD104] 为什么最后是对I1.2进行与逻辑操作。通过L L#+10 ,我们知道存放在MD104中的值应该是:MD104:0000 0000 0000 0000 0000 0000 0000 1010 当作为双字指针时,就应该按照3-18bit指定byte,0-2bit指定bit来确定最终指令要操作的地址,因此:0000 0000 0000 0000 0000 0000 0000 1010 = 1.2 【地址寄存器间接寻址】在先前所说的存储器间接寻址中,间接指针用M、DB、DI和L直接指定,就是说,指针指向的存储区内容就是指令要执行的确切地址数值单元。但在寄存器间接寻址中,指令要执行的确切地址数值单元,并非寄存器指向的存储区内容,也就是说,寄存器本身也是间接的指向真正的地址数值单元。从寄存器到得出真正的地址数值单元,西门子提供了两种途径:1、区域内寄存器间接寻址2、区域间寄存器间接寻址地址寄存器间接寻址的一般格式是:〖地址标识符〗〖寄存器,P#byte.bit〗,比如:DIX[AR1,P#1.5] 或M[AR1,P#0.0] 。〖寄存器,P#byte.bit〗统称为:寄存器寻址指针,而〖地址标识符〗在上帖中谈过,它包含〖存储区符〗+〖存储区尺寸符〗。但在这里,情况有所变化。比较一下刚才的例子:DIX [AR1,P#1.5] X [AR1,P#1.5] DIX可以认为是我们通常定义的地址标识符,DI是背景数据块存储区域,X是这个存储区域的尺寸符,指的是背景数据块中的位。但下面一个示例中的M呢?X只是指定了存储区域的尺寸符,那么存储区域符在哪里呢?毫无疑问,在AR1中!DIX [AR1,P#1.5] 这个例子,要寻址的地址区域事先已经确定,AR1可以改变的只是这个区域内的确切地址数值单元,所以我们称之为:区域内寄存器间接寻址方式,相应的,这里的[AR1,P#1.5] 就叫做区域内寻址指针。X [AR1,P#1.5] 这个例子,要寻址的地址区域和确切的地址数值单元,都未事先确定,只是确定了存储大小,这就是意味着我们可以在不同的区域间的不同地址数值单元以给定的区域大小进行寻址,所以称之为:区域间寄存器间接寻址方式,相应的,这里的[AR1,P#1.5] 就叫做区域间寻址指针。既然有着区域内和区域间寻址之分,那么,同样的AR1中,就存有不同的内容,它们代表着不同的含义。【AR的格式】地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。当使用在区域内寄存器间接寻址中时,我们知道这时的AR中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。AR:0000 0000 0000 0BBB BBBB BBBB BBBB BXXX 这样规定,就意味着AR 的取值只能是:0.0 ——65535.7 例如:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。而在区域间寄存器间接寻址中,由于要寻址的区域也要在AR中指定,显然这时的AR中内容肯定于寄存器区域内间接寻址时,对AR内容的要求,或者说规定不同。

汇编实验报告一 熟悉7种寻址方式

电子信息工程学系实验报告——适用于计算机课程课程名称:IBM-PC汇编语言程序设计 实验项目名称:熟悉7种寻址方式实验时间: 班级:姓名:学号: 一、实验目的: 掌握debug命令,熟悉7种寻址方式。 二、实验环境: ASM轻松汇编 三、实验内容: 1、上机输入以下程序: data segment x db 01,02 y db ?,? z db ?,? w dw 1234h data ends code segment main proc far assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax mov dx,1234h -----无有效地址 mov cl,ds:[0000h] -----0000h mov si,0000h mov di,0002h mov al,[si] ----0000h mov [di],al ----无有效地址 add si,1 add di,1 mov al,[si] mov [di],al mov si,0000h mov di,0000h mov al,x[si] mov y[di],al 成绩: 指导教师(签名):

add si,1 add di,1 mov al,x[si] -----0001h mov y[di],al mov si,0000h mov di,0000h mov bx,0000h mov bp,0004h mov al,[bx][si] ----0000h mov ds:[bp][di],al add si,1 add di,1 mov al,[bx][si] mov ds:[bp][di],al ret main endp code ends end start 2、写出上面汇编程序中字体为红色的指令的源操作数的寻址方式以及源操作数的有效地址。 指令寻址方式有效地址mov dx,1234h立即寻址方式无有效地址mov cl,ds:[0000h]直接寻址方式0000h mov al,[si]寄存器间接寻址方式0000h mov [di],al寄存器寻址方式无有效地址 mov al,x[si] 寄存器相对寻址方式0001h mov al,[bx][si]基址变址寻址方式0000h 画图说明数据段中变量所分配的存储空间及初始化的数据值。 14F2:0000 0001 0002 0003 0004 0005 0006 0007 01 02 01 02 00 00 34 12

实验7 寻址方式在结构化数据访问中的应用

计算机学院实验报告 课程汇编语言 实验名称实验7 寻址方式在结构化数据访问中的应用 专业计算机科学与技术 2018年 12 月 24 日 一、实验目的 1.定位内存单元的寻址方式汇总 2.寻址方式的综合应用

3.转移指令的分类和原理 4.熟悉在显存中编程的方法 二、实验内容及要求 ( 一) 寻址方式的汇总及综合应用 1.定位内存单元的寻址方式有几种,并举例说明。 2.寻址方式在结构化数据访问中的应用。 Power idea 公司从 1975 年成立一直到 1995 年的基本情况如下。 年份收入 ( 千美元 )雇员人均收入 ( 千美元 ) 1975163? 1976227? 19773829? 1978135613? 1979239028? 1980800038? 1995593700017800? 下面的程序中,已经定义好了这些数据: assume cs:codesg data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;年份 dd16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ; 公司总收入 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800 ;公司雇员人数 data ends table segment db 21 dup('year summ ne ??') table ends

作业习题 寻址方式和指令

寻址方式和指令习题 一、选择题 1、MOVX A,@DPTR指令中源操作数的寻址方式是() (A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址 2、ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 当CPU响应外部中断0后,PC的值是() (A)0003H (B)2000H (C)000BH (D)3000H 3、执行PUSH ACC指令,MCS-51完成的操作是() (A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP (C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP 4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=() (A)2000H (B)2001H (C)2002H (D)2003H 5、51执行完MOV A,#08H后,PSW的哪一位被置位() (A)C (B)F0 (C)OV (D)P 6、下面条指令将MCS-51的工作寄存器置成3区() (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4 7、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是()(A)/PSEN (B)ALE (C)/RD (D)/WR 8、MOV C,#00H的寻址方式是() (A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址 9、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H 当执行完上面的程序后,PC的值是()

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

step7 v5.4 安装

安装前,关闭360安全卫士等,及各种杀毒软件,关闭防护墙。 1)先解压,解压到一个英文目录,如下: D:\Step7 V5.4 SP5 Chinese\Step7 V5.4_SP5_CN 因为中文与德文冲突,所以起中文名字,会出现意想不到的问题。 假如你的目录是:D:\下载文件\Step7 V5.4_SP5_CN,不行,“下载文件”是中文2)双击Setup.exe,进行安装

3)选择安装语言,点击下一步, 若界面出现乱码,这是由于windows区域和语言设置造成的,不影响正常安装和使用,单击下一步即可。

5)选择需要安装的程序STEP7标准版,包含STEP7,授权管理器软件和Acrobat阅读软件(如已安装,可不选择)。可根据你的需要进行选择 STEP7专业版软件中包含了STEP7软件,S7-SCL, S7-GRAHP, S7PLCSIM,授权管理器和Acrobat阅读软件。 6)选择安装类型,最好选择典型安装:点击“更改”按钮可更改安装路径 7)选择产品语言 8)安装授权:选择Yes即刻导入授权;选择No稍后安装授权。 此次选择:选择No稍后安装授权。使用软件授权。 9)安装PG/PC接口:PC Adapter, CP 5611, CP5511等驱动集成在STEP7中,用户根据实际情况进行选择。 10)安装完成,重新启动计算机。

安装注意事项及错误处理: 如果曾经安装过老版本的STEP7,务必完全

如何完全卸载STEP7和所有的软件包? 说明: 推荐卸载所有的SIEMENS软件,当卸载完STEP7后再重新安装这些软件。 警告: 在卸载过程中,在计算机上的所有SIEMENS文件夹和注册表将被删除。如果文件夹中包含STEP7项目,在SIMATIC Manger中用"File>Save as..."功能将这些项目文件拷贝到其它的目录下。也可以用"File > Archive"功能压缩到其它目录或者其它驱动器下。不要用Windows Expolrer 的复制或者移动功能来处理这些项目文件。 此外,从目录“<>\Siemens\Step7\S7data\gsd\”备份GSD文件。 重要说明: 首先将授权拷贝到授权盘中。 下面是完全卸载的操作步骤。

单片机的寻址方式

单片机的寻址方式 指令给出参与运算的数据方式称为寻址方式。换句话说,寻址方式就是寻找确定参与操作的数的真正地址。 在MCS-51 系列单片机的指令系统中寻址方式共有7 种, 立即寻址方式,mcs-51 单片机的一种寻址方式,操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为 立即寻址,如#20H,立即寻址方式通常用于对通用寄存器或内存单元赋初值。直接寻址方式,指令操作数域给出的是参加运算的操作数地址。在MCS-51 单片机中,直接地址只能用来表示特殊功能寄存器、内部数据寄存器和位地址空间。其中,特殊功能寄存器和位地址空间只能用直接寻址方式访问。 寄存器寻址方式,操作数在寄存器中,由指令操作码中的rrr 三位的值和PSW 中RS1 及RS0 的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式 称为寄存器寻址方式。 间接寻址方式,指令操作数给出的是存放操作数地址的寄存器。在MCS-51 指令系统中,可作为寄存器间接寻址的寄存器有工作寄存器R0~R1、堆栈批示器SP 和地址寄存器DPTR。在指令助记符中,间接寻址用符号@来表示。 相对寻址方式,以当前程序计数器pc 的内容为基址,加上指令给出的一字 节补码数(偏移量)形成新的pc 值的寻址方式称为相对寻址。 变址寻址方式,在通用寄存器中,有些寄存器可作为变址寄存器。把变址寄存器的内容(通常是首地址)与指令地址码部分给出的地址(通常是位移量)之和作为操作数的地址来获得所需要的操作数就称为变址寻址。

单片机寻址方式

51单片机的寻址方式 寻址方式:指定操作数所在单元的方法。 在我们学习的8051单片机中,有7种寻址方法,下面我们将逐一进行分析。 一、立即寻址 用“#”作前缀 MOV A,#20H 在这种寻址方式中,指令多是双字节的。立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。 例如: MOV A,#3AH 这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。 MOV DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR 是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。 二、直接寻址

指令中直接给出操作数的地址。 MOV A,30H;这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。 MOV 30H,DPH 在80C51单片机中,直接地址只能用来表示内部数据存储器、位地址空间以及特殊功能寄存器,具体的说就是: 1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。 我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH 形式给出。 2、位寻址区。20H-2FH地址单元。 3、特殊功能寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。例如下面我们分析的一条指令 MOV IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是此指令也可以以 MOV 80H,#85H的形式表述。

STEP7200sp9安装步骤

STEP7 200sp9安装步骤 一、首先右击S7-200.sp9.zip文件解压到S7-200.sp9文件夹(或者解压到随意的英文文件夹 中,也不要把安装包放在桌面上安装,如果有中文安装时会提示未找到ssf); 二、打开S7-200.sp9文件夹,打开 4.0.9.25_Individual文件夹,打开Disk1文件夹,双击 setup.exe,进行安装,如果提示电脑需要重启或如图所示 则需要在电脑的注册表里删除一个注册表就不提示重启了,具体方法:运行注册表命令 regedit,在注册表内“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session ”中删除注册表“PendingFileRenameOperations”,右击它删除。如果不会打开注册表,请百度一下。 三、双击setup.exe之后,选择英语,安装好可以设置中文,如图下一步。

四、默认,下一步。

五、yes,next后,程序进入安装状态;

六、选择立即重启电脑,重启后电脑桌面上会多三个图标

八、将S TEP 7 -Micro/W IN设置为中文版本 安装完成后,双击桌面上“V4.0 STEP 7 MicroWIN SP6”图标,运行程序。 在程序的菜单栏选择Tools > Options 命令。 在弹出的Options 选项卡的左边点击General 选项,然后在右边的Language 选项中选择Chinese,再单击选项卡右下角的“OK”按钮。

程序会要求关闭整个程序以设置语言,待程序关闭后重新启动程序可看到程序已设置为中文版本。 到此安装结束,及时收货,评价者送精彩视频教程,谢谢支持。

寄存器与7种寻址方式

一、寄存器 总共有14个16位寄存器,8个8位寄存器 通用寄存器: 数据寄存器: AH(8位) AL(8位) AX(16位) (AX和AL又称累加器) BH(8位) BL(8位) BX(16位) (BX又称基址寄存器,唯一作为存储器指针使用寄存器) CH(8位) CL(8位) CX(16位) (CX用于字符串操作,控制循环的次数,CL 用于移位) DH(8位) DL(8位) DX(16位) (DX一般用来做32位的乘除法时存放被除数或者保留余数) 指针寄存器: SP 堆栈指针(存放栈顶地址) BP 基址指针(存放堆栈基址偏移) 变址寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移, 即作为存储器(短)指针使用。作为通用寄存器,它们可以保存16位算术逻辑运算中的操 作数和运算结果,有时运算结果就是需要的存储单元地址的偏移. SI 源地址(源变址寄存器) DI 目的地址(目的变址寄存器) 控制寄存器: IP 指令指针 FLAG 标志寄存器 ①进位标志CF,记录运算时最高有效位产生的进位值。

②符号标志SF,记录运算结果的符号。结果为负时置1,否则置0。 ③零标志ZF,运算结果为0时ZF位置1,否则置0。 ④溢出标志OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时OF位置1,否则置0。 ⑤辅助进位标志AF,记录运算时第3位(半个字节)产生的进位值。 ⑥奇偶标志PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。 段寄存器 CS 代码段IP DS 数据段 SS 堆栈段SP BP ES 附加段 二、七种寻址方式: 1、立即寻址方式: 操作数就包含在指令中。作为指令的一部分,跟在操作码后存放在代码段。 这种操作数成为立即数。立即数可以是8位的,也可以是16位的。 例如: 指令: MOV AX,1234H 则: AX = 1234H 2、寄存器寻址方式: 操作数在CPU内部的寄存器中,指令指定寄存器号。 对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。对于8位操作数,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。 这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数 因而可以取得较高的运算数度。

STEP完整安装过程

STEP7软件安装 首先本人用的是版本此版本可在win7 64位系统中正确安装。以前的版本包括只可以Step7V5.5_CN 版本均无法再win7 64位系统正确安装,其中Step7V5.5_CN 版本可以在win7 32位系统中正确安装。(与Step7V5.5_CN是不同的,前者是最新的一版,解决了与win7 64位系统兼容问题) 各种版本下载地址如下: 2830550/(这里有各种西门子SIEMENS 软件) 也可直接点击: [西门子工业自动化及驱动 或直接复制下面的迅雷地址: 下载后完成后双击Setup.exe ,此时将检测系统是否安装了STEP7,如果没有安装将不能继续下一步骤,解决方法有两种: 一.用CD_1\STEP7\Disk1里的SETUP.EXE直接安装 二.修改CD_1里的Setups.ini文件 Setups.ini文件用记事本打开后,找到[TERMS]行 Term1=Registry%%\HKEY_LOCAL_MACHINE\SOFTWARE\SIEMENS\AUTSW\S TEP7\Version%%REGSZ%%=>%%5.4%%TermMessage1%%1 修改为 ;Term1=Registry%%\HKEY_LOCAL_MACHINE\SOFTWARE\SIEMENS\AUTSW\ STEP7\Version%%REGSZ%%=>%%5.4%%TermMessage1%%1 Term1= 就是把检测注册表的那项用“;”注释掉,再建一个空的检测项就可以了。 显示系统条件不能满足: 在注册表内 “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\ ”中删除注册表值 “PendingFileRenameOperations” 不要重新启动,继续安装软件。 我用的是第一种方法。 完成上述步骤后再次双击Setup.exe 开始安装,如果出现“未找到SSF文

第六章_寻址方式和指令系统

1

第 6章 寻址方式和汇编指令 第6章
6.1、寻址方式 6.2、汇编语言指令集 6.3、汇编源程序

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
▲ 汇编指令是可执行指令,每条指令对应一条机器 码,用以控制处理器中的执行部件进行各种操 作。 ▲ TMS320F281X系列的汇编指令有150多条。 ▲ 它们支持各种信号处理运算,同时也提供了应用 中所需要的多级处理和过程控制功能。 ▲ 寻址方式是指寻找指令中操作数地址的方式。

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
TMS320C28x指令集采用7种存储器寻址方式: ▲ 直接寻址方式 ▲ 堆栈寻址方式 ▲ 间接寻址方式 ▲ 寄存器寻址方式 ▲ 数据/程序/IO空间立即寻址方式 ▲ 程序空间间接寻址 ▲ 字节寻址方式

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
F2812 的大多数指令利用操作码中的8位字段来选择寻 址方式和对寻址方式进行修改.在 F2812 指令系统中,这个8 位字段用于以下寻址方式: (1)loc16 。 为16位数据访问选择直接/堆栈/间接/寄存器寻址方
式。
(2)loc32 。 为32位数据访问选择直接/堆栈/间接/寄存器寻址方
式。
以上7种寻址方式都与“loc16/loc32”组合起来使用。

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
寻址方式选择位
由 于 F2812 提 供 了 多 种 寻 址 方 式 , 因 此 用 寻 址 方 式 选 择 位 ( AMODE )来选择8位字段( loc16/loc32 )的解码。该 位属于状态寄存器ST1。寻址方式可以大致归类如下: ▲ AMODE=0——该方式是复位后的默认方式,也是F2812的C/C++编译
器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。
▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式
兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。
对与loc16或者loc32字段,其可用的寻址方式总结如P375所示

课后习题六(第七章)

课后习题(第七章) 1、为了缩短指令中地址码的位数,应采用( B )寻址。 A、立即数 B、寄存器 C、直接 D、间接 2、指令系统中采用不同寻址方式的目的主要是( B ) A. 可降低指令译码难度 B. 缩短指令字长、扩大寻址空间、提高编程灵活性 C. 实现程序控制 D. 提高指令执行速度 3、零地址运算指令在指令格式中不给出操作数地址,它的操作数来源自( C ) A. 立即数和栈顶 B. 暂存器 C. 栈顶或隐含约定的位置 D. 存储器 4、单地址指令中,为完成两个数的算术运算,除地址译码指明的一个操作数外,另一个数常采用( C ) A. 堆栈寻址方式 B. 立即寻址方式 C. 隐含寻址方式 D. 基址寻址方式 5、二地址指令中,操作数的物理位置安排,描述正确的是( C ) A. 两个主存单元(且依然在现指令系统中采用) B. 栈顶和次栈顶 C. 主存单元或寄存器 D. 两个同时为寄存器不允许使用 6、操作数在寄存器中的寻址方式称为( C )寻址 A. 直接 B. 立即 C. 寄存器直接 D. 寄存器间接 7、寄存器间接寻址方式中,操作数在( C ) A. 通用寄存器 B. 堆栈 C. 主存单元 D. I/O外设中 8、变址寻址方式中,操作数的有效地址是( C ) A. 基址寄存器内容加上形式地址 B. 程序计数器内容加上形式地址 C. 变址寄存器内容加上形式地址 D. 形式地址本身 9、采用基址寻址可扩大寻址范围,且( B ) A. 基址寄存器内容由用户确定,在程序执行过程中一般不可变 B. 基址寄存器内容由操作系统确定,在程序执行过程中一般不可变 C. 基址寄存器内容由用户确定,在程序执行过程中可随意变化 D. 基址寄存器内容由操作系统确定,在程序执行过程可随意变化 10、变址寻址和基址寻址的有效地址形成方式类似,但是( C ) A. 变址寄存器内容在程序执行过程中是不可变的 B. 在程序执行过程中,变址寄存器和基址寄存器的内容可以随意变化 C. 在程序执行过程中,变址寄存器的内容可随意变化 D. 以上均不对 11、堆栈寻址中,设A为累加器,SP为栈顶指针,[SP]为其指向的栈顶单元,如果进栈的动作顺序是(SP)-1→SP,(A)→[SP],那么出栈的动作顺序是( A ) A. [SP] →(A),(SP)+1→SP B. (SP)+1→SP,[SP] →(A) C. (SP)-1→SP,[SP] →(A) D. [SP] →(A),(SP)-1→SP 12、设变址寄存器为X,形式地址为D,某机具有先变址再主存间址的寻址方式,则这种寻

七种寻址方式

七种寻址方式 一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。例如: MOV AH,80H ADD AX,1234H MOV ECX,123456H MOV B1,12H MOV W1,3456H ADD D1,32123456H 其中:B1、W1和D1分别是字节、字和双字单元。 以上指令中的第二操作数都是立即数, 立即数寻址方式通常用于对通用寄存器或内存单元赋初值。 二、寄存器寻址方式 指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。 指令中可以引用的寄存器及其符号名称如下: 8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等; 16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等; 32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。 寄存器寻址方式是一种简单快捷的寻址方式,源和目的操作数都可以是寄存器。 1、源操作数是寄存器寻址方式 如:ADD VARD,EAX ADD VARW,AX MOV VARB,BH等。 其中:VARD、VARW和VARB是双字,字和字节类型的内存变量。在第4章将会学到如何定义它们。 2、目的操作数是寄存器寻址方式 如:ADD BH,78h ADD AX,1234h MOV EBX,12345678H等。 3、源和目的操作数都是寄存器寻址方式 如:MOV EAX,EBX MOV AX,BX MOV DH,BL等。 三、直接寻址方式 指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。 在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。 例:假设有指令:MOV BX,[1234H],在执行时,(DS)=2000H,内存单元21234H 的值为5213H。问该指令执行后,BX的值是什么? 解:根据直接寻址方式的寻址规则,把该指令的具体执行过程用下图来表示。

STEP 7安装手册

SIMATIC STEP7 安装手册 STEP 7 v5.3/5.4 Professional 安装步骤(以v5.3为例): 1、安装Windows 2000 SP4/XP Professional+SP1/SP2 (XP home除外) 2、安装 IE6 3、设置 Windows 2000/XP 默认语言为"英语(美国)" Windows 2000:控制面板→区域选项→系统的语言设置,选取“西欧和美国”→设置默认值, 选择“英语(美国)” Window XP:控制面板→区域和语言选项→高级,非unicode语言,选择“英语(美国)” 4、安装Step7 v5.3 运行\STEP7_PROFESSIONAL\Setup.exe 注: 源文件的路径不能有汉字, 否则Setup.exe不能执行 选择: □Step7 v5.3 □S7-SCL v5.3 □S7-GRAPH v5.3 (Graph 7 ) □S7-PLCSIM v5.3 (PLC仿真) □Aotomation License Manager v1.1 选择语言:□English 提示: Transfer License Keys ○ Yes, Transfer should take place during installation ○ No, Transfer license keys later 选择:○ No, Transfer license keys later 5 恢复Windows 2000/XP 区域语言为“中文(中国)” 6 安装 Step 7 v5.3 和Graph v5.3授权 将"\Step7 v5.3+graph5.3授权"目录拷贝到硬盘执行STEP7 V53key.exe安装 Step7 v5.3授权A1710453 执行s7graph53.exe安装Graph v5.3授权A1S7GR53 安装与运行环境: STEP 7是面向MS Windows 2000 Professional和MS Windows XP Professional而发布的。 从SP2开始,STEP 7可运行于MS Windows Server 2003上。 从SP2开始,在使用STEP 7时,不必作为主(primary)用户登录到Window操作系统;有用户(user)权限就足够了。然而,不能以“访客(Guest)”身份登录来使用STEP 7。在安装STEP 7软件和通过"设置PG/PC接口"功能安装模块时,仍然必须拥有管理员权限。 安装西门子工具软件的推荐步骤: 1. 安装完毕Windows操作系统之后, 一定要做个镜像备份! 2. 先安装西门子工具软件, 然后再装其它办公或娱乐软件!

7种寻址方式

七种寻址方式 1、(直接寻址方式) 指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。例:假设有指令:MOV BX, [1234H],在执行时,(DS)=2000H,内存单元21234H的值为5213H。问该指令执行后,BX的值是什么?解:根据直接寻址方式的寻址规则,把该指令的具体执行过程用下图来表示。从图中,可看出执行该指令要分三部分: 由于1234H是一个直接地址,它紧跟在指令的操作码之后,随取指令而被读出;访问数据段的段寄存器是DS,所以,用DS的值和偏移量1234H 相加,得存储单元的物理地址:21234H;取单元21234H的值5213H,并按“高高低低”的原则存入寄存器BX中。所以,在执行该指令后,BX的值就为5213H。由于数据段的段寄存器默认为DS,如果要指定访问其它段内的数据,可在指令中用段前缀的方式显式地书写出来。下面指令的目标操作数就是带有段前缀的直接寻址方式。 MOV ES:[1000H], AX 直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值,该寻址方式可在64K字节的段内进行寻址。注意:立即寻址方式和直接寻址方式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。试比较下列指令中源操作数的寻址方式(VARW是内存字变量): MOV AX, 1234H MOV AX, [1234H] ;前者是立即寻址,后者是直接寻址 MOV AX, VARW MOV AX, [VARW] ;两者是等效的,均为直接寻址 2、(寄存器间接寻址方式) 操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。该寻址方式物理地址的计算方法如下:

寻址方式

寻址方式:1.立即寻址:操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分于操作码一起存放在程序储存器中,可以立即得到并执行,不需要经过别的途径去寻找,在数前常冠以#作为前缀。2.寄存器寻址:在指令选定的某寄存器中存放或读取操作数3,寄存器间接寻址:由指令指出某一寄存器的内容,常有@前缀。4,直接寻址:指令中直接给出操作数所在的存储器地址。5,变址寻址:基址寄存器加变址寄存器间接寻址,MOVC A,@A+DPTR.6,相对寻址:以当前程序计数器PC值加上指令中给出的偏移量rel而构成实际操作数地址的寻址方法,它用于访问程序存储器,常出现在相对转移指令中。7,位寻址:在位操作指令中直接给出位操作数的地址可以对片内RAM中128个位和特殊功能寄存器SFR中的93个位进行寻址。 数据传送类指令:一、以累加器为目的操作数的指令 MOV A, Rn ; (Rn)→A,n=0~7 MOV A, @Ri ; ((Ri))→A,i=0,1 MOV A, direct ;(dir ect)→A MOV A, #data ; #data→A 二、以Rn为目的操作数的指令 MOV Rn, A ; (A)→Rn, n=0~7 MOV Rn, direct ;(direct)→Rn, n=0~7 MOV Rn, #data ; #data→Rn, n=0~7 三、以直接地址direct为目的操作数的指令 MOV direct, A ; (A)→direct MOV direct, Rn ;(Rn)→direct, n=0~7 MOV direct1, direct2; MOV direct, @Ri ;((Ri))→direct MOV direct, #data ; #data→direct 四、以寄存器间接地址为目的操作数的指令 MOV @Ri, A ;(A)→((Ri)),i=0,1 MOV @Ri, direct ;(direct)→((Ri)) MOV @Ri, #data ; #data→((Ri)) 五、16位数传送指令 MOV DPTR, #data16 ; #data16→DPTR 唯一的16位数据的传送指令, 立即数的高8位送入DPH, 立即数的低8位送入DPL。 六、堆栈操作指令 内部RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈,堆栈指针SP始终指向堆栈的 栈顶位置。 1、进栈指令 PUSH direct 先将栈指针SP加1,然后把direct中的内容送到SP指示的内部RAM单元中 2、出栈指令 POP direct SP指示的栈顶(内部RAM单元)内容送入direct字节单元 中,栈指针SP减1 七、累加器A与外部数据存储器传送指令 MOVX A, @DPTR ;((DPTR))→A,读外部RAM/IO

西门子S7-300 Step7安装方法

安装时,先将文件解压到全英文目录(目前前面不能用中文) 安装过程中,要求安装授权,可以选择以后安装 安装时,最好关闭防火墙和杀毒软件 PLC家园 PLC学习的好网站 https://www.360docs.net/doc/a76983465.html, 工控365 https://www.360docs.net/doc/a76983465.html,

安装授权方法: 运行授权文件: Simatic_EKB_Install_2010_05_09.rar PLC家园 PLC学习的好网站 https://www.360docs.net/doc/a76983465.html, 工控365 https://www.360docs.net/doc/a76983465.html,

PLC家园 PLC学习的好网站 https://www.360docs.net/doc/a76983465.html, 工控365 https://www.360docs.net/doc/a76983465.html,

PLC家园 PLC学习的好网站 省心的办法是,1)选择左边的Required keys 2)选择Short name 3)点击Install Long 但因为你系统里安装了无效的授权,所以 先将C:\ AX NF ZZ 和D:\ AX NF ZZ 里的东西备份一下,然后全部删除。重新安装授权, 1 2 2 https://www.360docs.net/doc/a76983465.html, 工控365 https://www.360docs.net/doc/a76983465.html,

最好的办法是: 先将C:\ AX NF ZZ和D:\ AX NF ZZ里的东西备份一下,然后全部删除。重新安装授权, 3 1 2 安装好的,显示蓝色 不要安装太多 以后需要可以随时安装其他授权 PLC家园 PLC学习的好网站 https://www.360docs.net/doc/a76983465.html, 工控365 https://www.360docs.net/doc/a76983465.html,

先将C:\ AX NF ZZ和D:\ AX NF ZZ是隐含文件,菜单,工具,文件夹选项,取消隐藏受保护的操作系统文件(推荐)和选择显示所有的文件和文件夹 到我的电脑 到菜单 工具 文件夹选项 PLC家园 PLC学习的好网站 https://www.360docs.net/doc/a76983465.html, 工控365 https://www.360docs.net/doc/a76983465.html,

step7寻址方式

完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A Q2.0 其中的A是指令符,Q2.0是A的操作数,也就是地址。这个地址由两部分组成:Q:指的是映像输出区2.0:就是这个映像输出区第二个字节的第0位。由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。DB X 200 . 0 其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。给定指令操作的地址方法,就是寻址方法。在谈间接寻址之前,我们简单的了解一下直接寻址。所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。这样看来,间接寻址就是间接的给出指令的确切操作数。对,就是这个概念。比如:A Q[MD100] ,A T[DBW100]。程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。间接由此得名。西门子的间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。【存储器间接寻址】存储器间接寻址的地址给定格式是:地址标识符+指针。指针所指示存储单元中所包含的数值,就是地址的确切数值单元。存储器间接寻址具有两个指针格式:单字和双字。单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。指针可以存放在M、DI、DB和L区域中,也就是说,可以用这些区域的内容来做指针。单字指针和双字指针在使用上有很大区别。下面举例说明:L DW#16#35 //将32位16进制数35存入ACC1 T MD2 //这个值再存入MD2,这是个32位的位存储区域L +10 //将16位整数10存入ACC1,32位16进制数35自动移动到ACC2 T MW100 //这个值再存入MW100,这是个16位的位存储区域OPN DBW[MW100] //打开DBW10。这里的[MW100]就是个单字指针,存放指针的区域是M区,MW100中的值10,就是指针间接指定的地址,它是个16位的值!-------- L L#+10 //以32位形式,把10放入ACC1,此时,ACC2中的内容为:16位整数10 T MD104 //这个值再存入MD104,这是个32位的位存储区域A I[MD104] //对I1.2进行与逻辑操作!=DIX[MD2] //赋值背景数据位DIX6.5!-------- A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态=Q[MD2] //赋值给Q6.5 -------- A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态=Q[MW100] //错误!!没有Q10这个元件--------------------------------------------------------------------------------------------------- 从上面系列举例我们至少看出来一点:单字指针只应用在地址标识符是非位的情况下。的确,单字指针前面描述过,它确定的数值是0-65535,而对于byte.bit这种具体位结构来说,只能用双字指针。这是它们的第一个区别,单字指针的另外一个限制就是,它只能对T、C、DB、FC 和FB进行寻址,通俗地说,单字指针只可以用来指代这些存储区域的编号。相对于单字指针,双字指针就没有这样的限制,它不仅可以对位地址进行寻址,还可以对BYTE、WORD、DWORD寻址,并且没有区域的限制。不过,有得必有失,在对非位的区域进行寻址时,

相关文档
最新文档