开航前指令

开航前指令
开航前指令

开航前指令

编号:HX/CX/02-2 轮船长:

兹有同志派往你轮担任职务,请安排有关人员按下列内容,在开航前对其进行熟悉培训。

人事调配员/日期:

一式一份,由船长或所在部门长保存三年。

第3章_通用数据处理指令习题答案

第三章通用数据处理指令 3.1 简答题 (1)如何修改“MOV ESI, WORD PTR 250”语句使其正确? 删除“WORD PTR”即可 (2)为什么说“XCHG EDX,CX”是一条错误的指令? 源、目标寄存器位数不同,不能用该指令进行数据交换 (3)说IA-32处理器的堆栈“向下生长”是什么意思? 入栈时堆栈指针寄存器做减法操作,指向低地址;出栈时堆栈指针寄存器做加法操作,指向高地址 (4)都是获取偏移地址,为什么指令“LEA EBX,[ESI]”正确,而指令“mov ebx,offset [ESI]”就错误? LEA指令时运行时计算地址,OFFSET是汇编时取地址。 (5)执行了一条加法指令后,发现ZF=1,说明结果是什么? 表明运算结果为0 (6)INC、DEC、NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数? 既是源操作数,也是目的操作数 (7)大小写字母转换使用了什么规律? 大小写字母转换利用它们的ASCII码相差20H (9)除法指令“DIV ESI”的被除数是什么? 被除数64位,在EDX和EAX中,EDX保存高32位、EAX保存低32位 (10)逻辑与运算为什么也称为逻辑乘? 运算规则类似于2进制乘法。 3.2 判断题 (1)指令“MOV EAX,0”使EAX结果为0,所以标志ZF=1。 错,MOV指令不影响标志 (2)空操作NOP指令其实根本没有指令。 错, (3)堆栈的操作原则是“先进后出”,所以堆栈段的数据除了PUSH和POP指令外,不允许其他方式读写。 错 (4)虽然ADD指令和SUB指令执行后会影响标志状态,但执行前的标志并不影响它们的执行结果。 对 (5)80减90(80-90)需要借位,所以执行结束后,进位标志CF=1。 对,减法时借位也用CF标志反映 (6)指令“INC ECX”和“ADD ECX,1”实现的功能完全一样,可以互相替换。 错,INC 不影响CF位。 (7)无符号数在前面加零扩展,数值不变;有符号数前面进行符号扩展,位数加长一位、数值增加一倍。 错,符号扩展也不改变数值大小 (8)CMP 指令是目的操作数减去源操作数,与SUB指令功能相同

汇编语言 重复字符串操作前缀

REP/REPE/REPZ/REPNE/REPNZ - 重复字符串操作前缀 操作码指令说明 F3 6C REP INS r/m8, DX 将(E)CX 个字节从端口DX 输入到ES:[(E)DI] F3 6D REP INS r/m16,DX 将(E)CX 个字从端口DX 输入到ES:[(E)DI] F3 6D REP INS r/m32,DX 将(E)CX 个双字从端口DX 输入到ES:[(E)DI] F3 A4 REP MOVS m8,m8将(E)CX 个字节从DS:[(E)SI] 移到ES:[(E)DI] F3 A5 REP MOVS m16,m16将(E)CX 个字从DS:[(E)SI] 移到ES:[(E)DI] F3 A5 REP MOVS m32,m32将(E)CX 个双字从DS:[(E)SI] 移到ES:[(E)DI] F3 6E REP OUTS DX,r/m8将(E)CX 个字节从DS:[(E)SI] 输出到端口DX F3 6F REP OUTS DX,r/m16将(E)CX 个字从DS:[(E)SI] 输出到端口DX F3 6F REP OUTS DX,r/m32将(E)CX 个双字从DS:[(E)SI] 输出到端口DX F3 AC REP LODS AL 将(E)CX 个字节从DS:[(E)SI] 加载到AL F3 AD REP LODS AX 将(E)CX 个字从DS:[(E)SI] 加载到AX F3 AD REP LODS EAX 将(E)CX 个双字从DS:[(E)SI] 加载到EAX F3 AA REP STOS m8使用AL 填写位于ES:[(E)DI] 的(E)CX 个字节 F3 AB REP STOS m16使用AX 填写位于ES:[(E)DI] 的(E)CX 个字 F3 AB REP STOS m32使用EAX 填写位于ES:[(E)DI] 的(E)CX 个双字 F3 A6 REPE CMPS m8,m8在ES:[(E)DI] 与DS:[(E)SI] 中查找不匹配的字 节 F3 A7 REPE CMPS m16,m16在ES:[(E)DI] 与DS:[(E)SI] 中查找不匹配的字 F3 A7 REPE CMPS m32,m32在ES:[(E)DI] 与DS:[(E)SI] 中查找不匹配的双 字

船舶质检大全

船舶建造质量检验大全 船舶建造质量检验 内容简介 本书系统地阐述了船舶建造质量检验的原理和方法。内容包括:质量检验概论,以及船用材料、船体、船装、机装、电装、涂装、内装和试验等方面的检验方法和接受准则。全书共由十一章组成:第一章概论,第二章船用金属材料检验, 本书可供船舶质量检验人员,设计和工艺师、验船师、监理人员,工程管理人员使用,也可供专业人员作为培训教材和工作参考书。 第一章概论 第一节质量检验的概念和历史 一.质量检验的历史 二.船舶的入级、法定和监督检测 三、质量检验方面的术语 第二节质量检验过程 一.质量检验活动和职能 二.质量检验的实施 三.不合格品的控制和纠正措施 四、质量问题的处理 第三节质量检验组织 一.质量检验部门的设置 二.质量检验人员的配置

第二章船用金属材料检验 第一节概述 一、材料检验的基本要求 二、材料复检的程序和内容 第二节钢材检验 一、钢板和型钢检验 二、钢管检验 第三节焊接材料检验 一、概述 二、焊接材料的检验程序 三、电弧焊条检验 四、埋弧自动焊焊丝和焊剂检验 五、电焊条保管 第四节铸钢件和锻钢件检验 一、铸钢件检验 二、锻钢件检验 第一章概论 第一节质量检验的概念和历史 一、质量检验的历史 质量检验,包括船舶检验,作为一项管理手段,它是随着生产力和科学技术水平的提高而产生、发展起来的。 (一)质量检验的产生和发展

早在一万年以前的石器时代,人类已经对所制作的器物的质量有所意识,开始对石器进行极为简陋的检查。 在古代,制造工场的规模都很小,罕有超过12人的工场。由工场主主持所有的生产活动,包括监视和检验产品的质量。 那时,基本上没有专职检验员。 随着生产力的发展,工场规模的扩大,产量的提高,工场主亲自承担全部管理事务显得力不从心。于是,由工场主的助手,各生产领班来分管检验。检验是一项费时较多的工作。随着工人人数的增加,检验工作量超过了领领所能支配的时间限度,就产生了专门从事质量检验工作的专职检验员这一岗位。 关于最早出现的检验员,在国外,在埃及的塞增斯(Thebes)城发现的公元前1450年建造的墓上的浮雕,描绘了检验人员在检查加工后的石块的平面度。我国是世界四大文明古国之一,早在公元前四面多年的春秋战国时代,在文献上已有了有关质量检验的记载。例如,在《周礼?考工记》一书中就有“命百工审查五库器材,审曲面势,以饰五材和以辨民器”的记述。 工业革命导致了大型公司的产生和发展。随着生产的发展和检验员人数的增加,这种趋势促使工厂的管理发生变化。在本世纪初,泰勒(E.W.Taylor)提出了科学管理的理论和方法。他认为,“策划”(相当于科室职能)与撝葱袛两者要分开。改变的根据是,在那个时代,工长和工人缺乏制订计划应具备的知识。泰勒提出将制订计划的工作交给工程师和经理,而工长和工人的工作就限于执行计划。泰勒制在

字符串处理

字符串处理 1.常见的字符串操作的三种类型 (1)提取和删除字符串 这类处理是取出一个字符串中若干个字符串,基本的方法是:确定需要提取子串的开始位置以及子串的长度。如果题目没有明确给出子串的开始位置及长度的信息,那么可以使用pos函数找出子串前后两个空格的位置,从而确定相关信息。 提取子串:用copy函数将子串提取出来。删除子串:用delete过程直接将子串删除。 (2)字符转换 这类处理是将字符对应的ASCII码按规律进行运算,使该字符转换成另一个字符。我们可以使用ord函数求出某一字符的ASCII码,用chr函数将ASCII码转换成字符。 (3)数值与字符转换 在处理位数很多数值很大的数时,可能超过了整数和实数所能表示的最大范围,在这种情况下,只能采用字符串进行处理。可以使用str过程将数值类型的数据转换成字符串类型,使用val过程可将字符串型数据转换成数值类型。 2.字符串处理的注意事项 (1)读入字串长度如果超过255,则要用字符数组保存字符串。 (2)在分析程序的算法效率时,要注意考虑字符串处理的函数和过程的运行时间。 (3)读数据时,不确定字符行数和每行的字符个数时,可用行结束标记eoln和文件结束 标记eof来读数据。 3.常见的字符串过程和函数 (1)length(s)函数,求字符串s的长度。 (2)copy(s,w,k)函数,在字符串s中从w开始截取长度为k的子串。 (3)val(s,k,code)过程,将字符串s转为数值,存在k中,code返回出错的首位置。 (4)str(i,s)过程,将数值i转为字符串s。 (5)delete(s,w,k)过程,在s中删除从第w位开始的k个字符。 (6)insert(s1, s, w)过程,将s1插到s中第w位。 (7)pos(c, s)函数,求字符c在s中的起始位置。 (8)连接号“+”,将两个字符串连接起来。 (9)upcase(ch)过程,将字母ch转换成大写字母。

(完整版)vb_字符串处理函数大全

mid(字符串,从第几个开始,长度)ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如mid("坦然面对",1,3) 则返回"坦然面" instr(从第几个开始,字符串1,字符串2)ByVal 从规定的位置开始查找,返回字符串2在字符串1中的位置 例如instr(1,"坦然面对","坦") 则返回1,instr(2,"坦然面对","坦"),则返回0 。0 表示未找到 InStrRev(字符串1,字符串2,从第几个开始) ByVal 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。 例如instrRev("坦然面对","坦",2) 则返回2 ; instrRev("坦然面对","然",1) 则返回0 ,因为它从"坦然面对"的第1个字开始往前查找,所以找不到。0 表示未找到 left(字符串,长度) ByVal 从[字符串]的左边开始返回[长度]个字符 例如Left("坦然面对",3) 则返回"坦然面" right(字符串,长度) ByVal 从[字符串]的右边开始返回[长度]个字符 例如Right("坦然面对",3) 则返回"然面对" ucase(字符串) ByVal 返回[字符串]的大写形式,只对英文字符有效 例如ucase("tanRANmiAnDui") 则返回"TANRANMIANDUI" lcase(字符串) ByVal 返回[字符串]的小写形式,只对英文字符有效 例如lcase("tanRANmiAnDui") 则返回"tanranmiandui" asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程 例如asc("坦") 则返回-13127; asc("坦然面对") 也返回-13127 chr(ASCii编码) Byval 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程 例如chr(-13127) 则返回"坦" ;chr(asc("坦")) 则返回"坦"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本) trim(字符串) Byval 返回去掉了前、后之后的[字符串] 例如trim("坦然面对") 则返回"坦然面对" ,中间的空格不受任何影响 string(个数,字符) Byval 返回[个数]个[字符] 例如string(3,"坦") 则返回"坦坦坦" , 而string(3,"坦然面对") 也返回"坦坦坦",只有首字符才有效 space(个数) Byval 返回[个数]个空格 例如space(5) 则返回""

串操作指令

串操作指令 串操作指令就是用一条指令实现对一串字符或数据的操作。8086的串操作指令的特点是: ◆通过加重复前缀来实现重复操作。重复的次数取决于C X寄存器的内容(在字符串比较和字符串检索指令中还与Z F标志有关)。 ◆可以对字节串进行操作,也可以对字串进行操作。 ◆所有的串操作指令都用寄存器S I对源操作数进行间接寻址,默认段寄存器为D S;所有的串操作指令都用寄存器D I为目的操作 数进行间接寻址,默认段寄存器为E S。串操作指令是唯一的一组源操作数和目的操作数都在存储器中的指令。 ◆串操作时,地址指针的修改与方向标志D F有关,当D F=1时,S I和D I作自动减量修改,当D F=0时,S I和D I作自动增量修改。 串操作指令一共有5条: ◆字符串传送指令M O V S B/M O V S W ◆字符串比较指令C M P S B/C M P S W ◆字符串检索指令S C A S B/S C A S W ◆取字符串指令L O D S B/L O D S W ◆存字符串指令S T O S B/S T O S W 与上面串操作指令配合使用的重复前缀有: ◆重复R E P ◆相等则重复/为零则重复R E P E/R E P Z

◆不相等则重复/不为零则重复R E P N E/R E P N Z 在串操作指令的前面加上重复前缀,使C P U能重复执行该指令,这使处理长字符串比用软件循环处理快得多。在执行有重复前缀的 串操作指令时,C X寄存器控制重复次数,每重复执行一次,C X内 容减1,C X减为0结束;此外,还可以按规定的条件(Z F=1或Z F =0)结束重复过程。重复前缀对规定条件的检测,是在每次进入串操作以前进行的。所以若初始化使操作次数C X为0,它将不会引起任何操作。 一、字符串传送指令M O V S B/M O V S W 字符串传送指令M O V S B/M O V S W将位于D S段的、由S I所指出的存储单元的内容传送到位于E S段、由D I所指的存储单元中,再修改S I和D I,从而指向下一个元素,M O V S B用于字节传送, M O V S W用于字传送。 M O V S B或M O V S W指令前面通常加重复前缀R E P。重复执行的次数取决于C X寄存器的值,每次执行先检查C X内容,当C X为0则退出,不为0则将C X内容减1,然后传送一次。 【例】我们来看下面的程序段。 M O V S I,1000H;源有效地址地址为1000H M O V D I,2000H;目的有效地址地址为2000H M O V C X,100;字符串长100个字节 C L D;方向标志清0,使指针按增量方向修改

文件操作与字符处理

C语言程序设计综合性实验 实验题目:文件操作与字符处理 实验班级:2011级信管专业3班 学生学号: 学生姓名: 任课老师: 提交时间:2012-02-18 华南农业大学信息(软件)学院

综合性实验A(文件操作与字符处理)实验报告 1. 题目及题目分析 1.1 问题描述 在当前目录下存在文件名为“case1.in”(其中case后为数字1,不是字母i,写错提交后会判错)的文本文件,其内容为一篇英文文章(以EOF作为结束标志)。现要求读取该文本文件内容,统计该文本文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,不足5个单词时,按序输出全部单词)。程序中注意如下细节: (1)空格、标点符号与回车键起到分隔单词的作用; (2)名词缩写算一个单词; (3)单词不区分大小写; (4)输出时单词全使用小写; (5)包含多段文字,单词数不超过10000,每个单词不超过20个字符; (6)数字不算单词; (7)文中不包含连字符及类似I’m等情况; (如case1.in内容如下) I am a student. My school is SCAU. It is a beautiful university. I like it. (在屏幕上输出结果如下) a 2 i 2 is 2 it 2 am 1 1.2功能分析 简单的说,这个实验要求我们读取一篇存储在一个文本文件中英文文章中的所有单词,然后统计其中单词出现的次数,并把其中出现最多的五个单词输出来并输出其出现的次数。我们的任务是怎样把这篇英文文章中的单词读取出来,并把它的出现次数统计出来,并把其中出现最多的5个单词输出来。然后我们再深度处理,按照题目要求作修改。我们怎样才能把一个个单词读取出来,因为有些单词是不止一个字母的,我们又要怎样处理?我们又要怎样把这不止一个字母的单词通过比较来判断是否一个单词?还有怎样把出现次数最多的5个单词输出来,这要怎样处理?这些是比较难处理的。 2. 设计思路 1.1总体结构设计 要实现题目中的要求,我们要把程序设计成几个模块来实现。第一个模块,就是用来读取英文文章中的单词,这就要用到文件这些知识,因为单词可能不止一个字母,所以我们先要用数组来保存,这就要用到数组的知识。读取单词之后怎么样统计出现的次数,这又要另设一个模块。到最后,判断出现次数最多的单词然后输出来是一个模块。还有,在一开始要设计一个结构体来保存单词,这是一个模块。所以,一共设计了4个模块。其中,在第三个模块又要分开几个小方

linux高级命令(字符处理、shell编程)

目录操作 pwd cd mkdir -p rmdir rm -rf 文件操作 ls -hl touch echo "abc" >> a.txt cat ,more,less,tail,head vi find 路径模式 用户管理 useradd userdel usermod /etc/passwd 权限管理 chmod权限信息文件/目录 * 目录必须有x权限 chown用户名文件/目录 chgrp组名文件/目录 组 groupadd groupdel 打包 tar -c -v -f -z -x tar -czvf test.tar.gz test -->打包并压缩tar -xzvf test.tar.gz 系统命令 ps -aef top free -m kill -9 pid

--------------------------------------------------------------------- 正则表达式 用一个字符串(正则表达式)去描述另外一个字符串的特征. Linux 管道: 前面命令的输出作为后面命令的输入 grep --》根据关键字查找一个文档 grep正则表达式输入 echo "helloworld" | grep "hello" --》成功 echo "helloworld" | grep "abc" -->失败 ** Linux里面$?表示上条命令执行成功还是失败 0 --》成功 非0--》失败 正则表达式 . -->任意一个字符 + 一个或多个字符 * —>0个或多个字符 c.t : cat cut [] -->代表一个范围,N选1 t[aeio]n tan ,ten,tin,ton () -->代表一个整体 | -->或者 t(a|e|i|o|oo)n tan ,ten,tin,ton,toon { } –>表现出现的次数 999 --> [0-9]{3} 192 --> [0-9]{1,3} aaaaaaaaaaaaaaaaaaaaaaa --> [a]* ,a+ 特别注意:由于Linux的原因,(),+,|,{},.,都得转义 练习: 999-99-9999 ^[0-9]{3}-[0-9]{2}-[0-9]{4}$

实验三 字符串操作

一、实验要求和目的 1.了解汇编语言字符串处理基本流程; 2.熟悉汇编语言字符串处理基本指令的使用方法; 3.掌握利用汇编语言实现字符串处理的程序设计方法。 二、软硬件环境 1、硬件环境:计算机系统windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 1、字符串处理基本操作流程 (1)利用SI寄存器保存源串首地址; (2)利用DI寄存器保存目的串首地址; (3)利用CX寄存器保存字符串长度; (4)利用CLD或STD指令设置字符串处理; (5)利用字符串处理指令实现相关处理。 其中,CLD指令使DF=0,在执行串处理指令时可使地址自动增量;STD使DF=1,在执行串处理指令时可使地址自动减量。 提示:字符串处理一般都涉及到源串和目的串,汇编语言规定源串在数据段中定义,目的串在附加段中定义。 2、重复前缀指令,重复次数由计数寄存器 CX 中存放的值决定,指令每重复执行一次,计数器 CX 中值减 1,当 CX 中值减至 0 时,停止重复执行,继续执行下一条指令REP 无条件重复前缀,重复串操作直到计数寄存器的内容CX 为0 为止。经常与REP 配合工作的字符串处理指令有MOVS、STOS和LODS。 REPE/REPZ 判断计数寄存器的内容CX 是否为0 或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。可以与REPE/REPZ配合工作的串指令有CMPS 和SCAS。 3、字符串处理基本指令 (1)MOVS传送指令 格式:MOVS DST,SRC或MOVSB(传送字节)或MOVSW(传送字)。后面两种形式需要与REP指令结合使用。该指令把由源变址寄存器(SRC)指向的数据段中的一个字(或字节)数据传送到由目的变址寄存器(DST)指向的附加段中的一个字(或字节)中去,同时,根据方向标志及数据格式(字或字节)对源变址寄存器和目的变址寄存器进行修改。 (2)STOS存入串指令 格式:STOS DST或STOSB(存入字节)或STOSW(存入字)。 该指令把AL或AX的内容存入由目的变址寄存器指向的附加段的某单元中,并根据方向标志(DF)和数据类型修改目的变址寄存器的内容。 (3)LODS从串取指令

linux中截取字符串cut命令用法简介

linux中截取字符串cut命令用法简介: 语法:cut -cnum1-num2 fileName 使用权限:所有使用者 说明:显示每行从开头算起num1 到num2 的文字。 例子: shell>> cat fileName test2 this is a test content shell>> cut -c1-6 fileName ## print 开头算起前6 个字元 test2 this i -c m-n 表示显示每一行的第m个字元到第n个字元。例如: liubi 23 140004 # cut -c 1-5,10-14 file liubi -f m-n 表示显示第m栏到第n栏(使用tab分隔)。例如: liubi 23 14000 # cut -f 1,3 file liubi 14000 -c 和-f 参数可以跟以下子参数: m 第m个字符或字段 m- 从第m个字符或字段到文件结束 -n 从第1个到第n个字符或字段 m-n 从第m个到第n个字符或字段 我们经常会遇到需要取出分字段的文件的某些特定字段,例如/etc/password就是通过":"分隔各个字段的。可以通过cut命令来实现。例如,我们希望将系统账号名保存到特定的文件,就可以: cut -d: -f 1 /etc/passwd > /tmp/users -d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段 如: 使用|分隔 cut -d’|’ -f2 1.test>2.test 使用:分隔 cut -d’:’ -f2 1.test>2.test 这里使用单引号或双引号都行。

Linux下cut命令用法详解 Linux及相关2008-12-05 15:58:57 阅读38 评论0 字号:大中小订阅 有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢? 以下内容欢迎转载,但请保留作者名号及出处,谢谢! 确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了。 cut -b list [-n] [file ...] cut -c list [file ...] cut -f list [-d delim][-s][file ...] 上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field); list delim(英文全写:delimiter)表示分隔符,默认情况下为TAB; -s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题) 上面三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。 范围的表示方法: interrupts文件中的字符排列非常齐整,正适合我们切豆腐。 但这里我们只对两个数字列感兴趣,用法如下: 里面还有一些不需要的内容,精减一下: 关于正则表达式的使用,请自行查阅相关资料。

汇编-数据处理指令-笔记

数据处理指令 1.数据传送(MOV MVN) 2.算术运算(ADD ADC SUB SBC RSB RSC) 3.位运算(AND ORR EOR BIC) 4.比较测试(CMP CMN TST TEQ) 操作码{条件码}S 目标寄存器,第一源操作数,第二源操作数 1.数据传送指令无第一源操作数 2.比较测试指令无目标寄存器 3.比较测试指令不加S,结果影响NZCV 4.第一源操作数是寄存器 5.第二源操作数有:8位图立即数,寄存器,寄存器移位 (LSL,LSR,ASR,ROR,RRX) 6.S:1.目标寄存器为PC,CPSR=SPSR 2.目标寄存器不为PC,结果影响NZCV 7.加法,C进位,有进位,C=1,无进位,C=0

8.减法,C借位,有借位,C=0,无借位,C=1 1-10累加和 arm-linux-as -g -o sum.o sum.s arm-linux-ld -e _start -o sum sum.o qemu-arm -g 1234 sum arm-linux-gdb sum 最大公约数的求解 20=5X4 12=3X4 = 2X4 R0=20 R1=12 R0==R1?20!=12 R0=R0-R1=20-12=8 R1=R1-R0=12-8=4 R0=R0-R1=8-4=4 while(R0 != R1) {

if(R0 >= R1) { R0 = R0 – R1; } else { R1 = R1 – R0; } } 跳转指令 数据处理指令(传送,加法,减法,位运算,比较测试) mov r1, #0x56 从存储器中获得,怎么办? 加载指令:将数据从存储器中读到寄存器 存储指令:将处理完毕的数据(寄存器)存储回存储器 实现了寄存器与存储器之间的数据交互

船舶检查表

船舶检查表 证书资料及文件 1.消防设备及属具证书 序号证书名称备注 1.1 CO2/1211灭火系统钢瓶检验及管路畅通检验证书 1.2 泡沫液检验证书 1.3 灭火机检验证书 1.4 舟车式灭火机检验证书 1.5 手提泡沫装置检验证书 1.6 消防栓、水龙带、水枪、水龙带箱等检验证书 1.7 消防员装备(呼吸器、空气瓶、防火服、电筒、防火绳、太平斧等)检验证书 2.救生设备及属具证书 序号证书名称备注 2.1 气涨救生筏、静水释放器检验证书 2.2 救生烟雾信号检验证书 2.3 压缩饼干检验证书 2.4 淡水检验证书 2.5 急救药品检验证书 2.6 救生艇罗经检验证书(后备的) 2.7 保温救生服及保温用具检验证书 2.8 抛绳器(枪、绳、弹头)检验证书 2.9 救生衣、救生圈自亮浮灯检验证书 2.10 救生衣、救生圈检验证书 2.11 救生艇空气箱检验证书 2.12 封闭式救生艇空气瓶检验证书 2.13 救生艇检验证书(无专门检验证书时应查检验记录) 2.14 绞艇装置检验证书(无专门检验证书时应查检验记录) 2.15 登艇软梯检验证书 2.16 吊艇索及放艇钢丝(有此装置的救生艇)检验证书 2.17 EEBD检验证书 3.手册、指南、资料(不限于此) 序号证书名称备注 3.1 消防、救生相关的IMO标志 3.2 分管设备技术资料及操作说明书:有序存放

航行 1.班作业会 序号检查内容备注 1.1 航行接班前由接班驾驶员组织召开 1.2 会议前接班驾驶员应查阅“班作业会记录簿”、“航道通电记录簿”、“航海安全信息簿”、“夜航命令簿”(夜航时)等 1.3 根据本工班的计划航段的船舶密度、活动规律、航道环境、航行条件(天气、能见度)、航次会决定及船长对本班的安全指令亲自制定安全措施,并在会议上布置 2.海图作业与定位 序号检查内容备注 2.1 定位方法和定位间隔时间是否符合航行计划和当时环境的要求,环境许可应用两种定位方法(GPS / 陆标) 2.2 定位时应同时准确在《航海日志》上记录和海图上划船位 3.船长监航 序号检查内容备注 3.1 船长监航段是否在航行计划中标注 3.2 是否在班作业会上明确监航水域和要求 3.3 是否提前15分钟通知船长 3.4 是否按规定在《航海/ 行日志》进行记录 4.利用随船进行动态检查以下航行操作规定(不限于此)是否有效执行 序号检查内容备注 4.1 能见度不良时的操作规定 4.2 锚泊、系离泊、掉头安全操作要求 4.3 驾驶台规则 4.4 航行值班规定 4.5 海图作业规定(海船) 4.6 船舶防台操作规定 4.7 船舶冰区操作规定 4.8 海上限制水域航行规定(海船) 4.9 恶劣天气航行操作特殊要求 4.10 液货船防污染管理规定 4.11 关键性设备和系统故障时的行动 4.12 VTS报告规定 4.13 长江水域航行操作规定 4.14 长江下游分道航行规则及其它有关水域(海域)分道航行规则 4.15 长江航段船舶定线制规定 4.16 国际海上避碰规则和内河避碰规则 4.17 航次会、班作业会 4.18 应急演习与训练 4.19 航行中洗舱操作及货物保管

汇编语言第二次实验——字符串操作程序设计

汇编语言第二次实验——字符串操作程序设计 1、实验说明 字符串的处理是汇编语言程序设计中一个重要部分。字符串操作一般包括数据块移动、串排序、串搜索、串比较、串复制、串插入、串删除、串交换以及大小写字母转换等内容。编写字符串操作程序时经常会用到80x86串操作指令。 2、实验内容 实验3.3.8:给出操作提示,用户输入用户名和密码,输入密码时,不回显,只有当用户输入的用户名和密码和内定的用户名密码相同时,显示欢迎界面,并返回DOS。 3、程序清单: .486 DA TA SEGMENT USE16 MESG1 DB 'USERNAME:',0DH,0AH,'$' ;指定用户名存放的数据区 MESG2 DB 0DH,0AH,'PASSWORD:',0DH,0AH,'$' ;指定密码的数据区 MESG3 DB 0DH,0AH,0DH,0AH,'========WELCOME TO DOS!========',0DH,0AH,'$' ;登录成功提示 MESG4 DB 0DH,0AH,0DH,0AH,'============ERROR!=============',0DH,0AH,'$'; ;报错 BUF1 DB 'Q12010102' count1 EQU $-BUF1 ;统计用户名长度 BUF2 DB '12345678' count2 EQU $-BUF2 ;统计密码长度 BUF3 DB 15 ;用户输入用户名的数据区 DB ? DB 15 DUP(?) BUF4 DB 15 DUP(?) ;用户输入密码的数据区 DA TA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DA TA BEG: MOV AX,DA TA MOV DS,AX MOV AH,9 MOV DX,OFFSET MESG1 ;显示用户名输入界面 INT 21H

三菱PLC数据处理指令讲解

三菱PLC数据处理指令讲解 很多学员在刚接触三菱PLC之前可能接触的都是FANUC、西门子、海德汉等,对于三菱不怎么熟悉,有些指令数据看起来可能比较难理解。那么,现在我们就三菱使用频度较高的一些数据类处理指令再做一个详细的了解。 什么叫数据处理指令? 数据处理指令含批复位指令、编、译码指令及平均值计算等指令。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某一置 1 位的位码的编译。主要包含指令如下: 1、区间复位指令 区间复位指令ZRST也称成批复位指令,是将操作数D1~D2之间的同类位元件成批复位。指令格式如图(1)所示,在PLC上电后的第一个扫描周期内,利用M8002的初始化脉冲信号,给指定范围的数据寄存器、计数器及辅助继电器全部复位为零状态。 区间复位指令使用时应注意:目标操作数可以是Y、M、S、T、C、D,但是一般不能对32位软元件进行区间复位,但对于32位计数器C200-C234,也可以应用RAST指令进行复位。 2、编码指令 编码 ENCO(P)指令的编号为FNC42,编码指令的功能是根据2n个输入位的状态进行编码,将结果存放到目标元件中。通过控制软元件的输出,从而来操控某个地址里的数据。它是将源操

作数为1的最高位位置存放到目标寄存器D中,只有16位运算。若指定的源元件中为1的位不止一个,则只有最高位的1有效。 如图2所示:当X1有效时执行编码指令,将[S.]中最高位的1(M3)所在位数(4)放入目标元件D10中,即把011放入D10的低3位。 编码指令的源操作数和目标操作数可以是位元件,也可以是字元件。当源的操作数是字元件时,可以是T、C、D、V和Z;源的操作数是位元件时,可以是X、Y、M和S。目标元件可取T、 C、D、V和Z。编码指令为16位指令,占7个程序步。 3、译码指令 编码和译码他们的指令功能是相对的,编码指令是通过控制软元件的输出,从而来操控某个地址里的数据。而译码指令则和它完全相反,译码是通过改变某个地址的数据来控制软元件状态输出。 如图3所示:n=3则表示[S.]源操作数为3位,即X0、X1、X2。其状态为二进制数,当值为011时相当于十进制3,则由目标操作数M7 - M0组成的8位二进制数的第三位M3被置1,其余各位为0。如果为000,则M0被置1。用译码指令可通过[ D.]中的数值来控制元件的ON/OFF。 译码DECO (P)指令的编号为FNC41。功能是根据n位输入的状态对2n个输出进行译码。它是将目标元件的某一位置1,其他位置0,置1位的位置由操作数的十进制码决定。 4、ON位数统计与ON位判别指令

字符串+文件处理函数

C语言标准输入输出:待续 printf 格式输出到屏幕//把指定内存空间中内容格式输出到屏幕; fprintf 格式输出到磁盘// scanf 从屏幕格式输入//从stdin中格式读入到给定变量空间中 fscanf 从磁盘格式输入 putchar 字符输出到屏幕 puts 字符串输出到屏幕 fputc 字符输出到磁盘 fputs 字符串输出到磁盘 getchar 从屏幕得到一个字符//从stdin中读取一个字符,返回字符ASCII值gets 从屏幕得到一个字符串//从stdin中读取字符串,返回内存空间位置fgetc 从磁盘得到一个字符 fgets 从磁盘得到一个字符串 fputc, fputs, putc, putchar, puts - output of characters and strings SYNOPSIS #include int fputc(int c, FILE *stream); int fputs(const char *s, FILE *stream); int putc(int c, FILE *stream); int putchar(int c); int puts(const char *s); DESCRIPTION fputc() writes the character c, cast to an unsigned char, to stream. fputs() writes the string s to stream, without its terminating null byte ('\0'). putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once. putchar(c); is equivalent to putc(c, stdout). puts() writes the string s and a trailing newline to stdout. RETURN V ALUE fputc(), putc() and putchar() return the character written as an unsigned char cast to an int or EOFon error.

内河船舶坞检报告范本

葛洲坝船舶修造厂 船舶修理质量技术说明书 船名:政涛中华958 出厂编号: GC2015003 出厂日期: 2015.01.20 葛洲坝船舶修造有限公司

一、船舶主要技术参数 船名:政涛中华958;船籍港:荆州;船舶类型:半舱货船;船检登记号:2003P4300019;检验类别:特检;总吨位:1991;主机额定功率:218X2;载客人数:--;主电源容量:40KW;建造完工日期:2003.02.12 ; 二、质量证明 该船于2015年01月08日至2015年01月20日在我厂进行水上保养、坞内修理,经检查、检测和试验,符合规范和安全技术要求,准予出厂。 2015年01月20日(盖章)

三、主要修理情况概述 主要检修项目: 1.中部靠前长24m宽13m、靠后长12m宽13m换底板,船底板t=8mm。 2.全船水线以下吹砂除锈,油漆。

四、修理检查记录 1、全船油漆喷涂检查记录 2、全船阀门及管系试验记录 3、全船门、窗、盖检查及密性试验 4、锌块更换记录 5、通信导航设备检查记录 6、救生、消防、信号设备检查记录 7、固定灭火系统检查、试验记录 8、锚链检测记录 9、车叶测量检查记录 10、各种泵(风机)效用试验记录 11、管系压力、密性试验记录 12、艉轴磁粉探伤报告 13、艉轴、艉轴承及间隙测量记录(左、右) 14、轴系安装测量记录(左、右) 15、舵杆磁粉探伤报告 16、舵系安装测量报告 17、油柜速闭阀试验 18、泵类系统效用试验记录 19、电动机试验记录 20、电气设备的一般性检查

21、付机测量记录 22、发电机组试验记录 23、发电机并联运行试验报告 24、火警报警、风油切断等试验 25、救生艇航行及吊艇试验记录 26、空压机组及空气瓶试验记录 27、主机活塞检查记录 28、主机气缸套检查记录 29、主机连杆检查记录 30、主机活塞轴检查记录 31、主机曲轴检查记录 32、主机曲臂检查记录 33、主机冷车起动试验记录 34、主机系泊检查记录 35、主机航行检查记录 36、船舶操舵、抛锚试验记录 37、船体性能试验记录 38、锅炉试验报告 39、舱底水油分离器试验记录 40、外壳板测厚报告

字符串处理指令

字符串处理指令 字符串:一系列存放在存储器中的字或字节数据,不管他们是不是ASCII码。 字符串长度可达64K字节,组成字符串的字节或字称为字符串元素,每种字符串指令对字符串对字符串元素只进行同一种操作。 8086提供5条1字节的字符串操作指令,专门对存储器中的字节串和字串数据进行传送、比较、扫描、存储及装入等5种操作。 使用字符串操作指令时,可以有两种方法告诉汇编程序是进行字节操作还是字操作。一种方法是用指令中的源串和目的串名来表明是字节还是字,另一种方法是在指令助记符后加B 说明是字节,加W说明是字操作。这样每种指令都有3种格式。 字符串传送,MOVS 目的串,源串MOVSB MOVSW 字符串比较,CMPS 目的串,源串CWPSB CMPSW 字符串扫描,SCAS 目的串SCASB SCASW 字符串装入,LODS 源串LODSB LODSW 字符串存储,STOS 目的串STOSB STOSW 字符串指令执行时,必须遵守以下隐含约定: (1)源串位于当前数据段,由DS寻址,源串的元素由SI作指针,即源串字符的起始地址为DS:SI。源串允许使用段超越前缀来修改段地址。 (2)目的串必须位于当前的附加段中,由ES寻址,目的串元素由DI做指针,即目的串字符的首地址为ES:DI,但目的串不允许使用短超越前缀修改ES。如果要在同一段内进行串运算,必须使DS和ES指向同一段。 (3)每执行一次字符串指令,指针SI和DI会自动进行修改,以便指向下一待操作单元。(4)DF标志控制字符的处理方向。DF=0为递增方向,这时DS:SI指向源串首地址,每进行一次串操作,使SI和DI增加,字节串操作时,SI和DI分别增1,字串操作时,SI和DI 分别增2,;DF=1为递减方向,这时,DS:SI指向源串末地址,每执行一次串操作,使SI和DI分别减量,字节串操作时减1,字串操作时减2.可用标志操作指令STD和CLD来改变DF的值,STD使DF置1,CLD使DF清零。 (5)要处理的字符串长度(字或字节数)放在CX寄存器中。 为了加快串运算指令的执行速度,可在基本指令前加重复前缀,是数据传指令重复执行。每重复执行一次,地址指针SI和DI都根据方向标志自动进行修改,CX的值则将自动减1.能与基本指令配合使用的重复前缀有: REP 无条件重复 REPE\REPZ 相等\结果为零则重复 REPNE\REPNZ 不相等\结果不为零则重复 无条件重复指令REP常与传送指令(MOVS)连用,连续进行字符串传送操作,直到整个字符串传送完毕,CX=0为止。重复前缀REPE和REPZ具有相同的含义,它们常与串比较指令(CMPS)连用,用于字符串比较操作。当两个字符串相等(ZF=1)和CX≠0时,则进行重复比较,直到ZF=0或CX=0为止。重复前缀REPNE和REPNZ也具有相同的意义,它们常与串扫描指令(SCAS)连用,当结果非零时(ZF=0)和CX≠0时,重复进行,直到ZF=1或CX=0为止。 带有重复前缀的串运算时间可能很长,在指令执行过程中允许有中断进入,因此在处理每个元素之前都在查询是否有中断请求,一旦外部有中断进入,CPU将暂停执行当前的串操作指令,转去执行相应得中断服务程序,使中断服务完成后,再去执行被中断的串操作指令。分别介绍: 1.MOVS字符串操作指令

MATLAB 字符串操作

MATLAB 字符串操作函数 MATLAB中的字符串用单引号表示,如'abcd'。如果想在字符串里包含一个单引号怎么办?用两个连着的单引号。例如:'It''s sunny.' 表示字符串It's sunny. 四个连着的单引号''''表示内容为一个单引号的字符。 1. length(a):获取字符串a的长度。 例如: a = 'matlab';t = length(a) 2. d=strcat(a,b):连接两个字符串a和b,每个字符串最右边的空格被裁切。 例如: a = 'matla b '; b = '2012a ';d=strcat(a,b), t = length(d) 例如: a = {'abcde', 'fghi'}; b = {'jkl', 'mn'}; ab = strcat(a, b) c = 'Q'; abc = strcat(a,b,c) 3. e=strvcat(a,b,..,m):连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格,使与最长字符串相等,会忽略空字符串。 例如:a='a';b='b b';c='cccc';m=''; e = strvcat(a,b,m,c) size(e) 4. char(a,b,..,m):同上连接,但空字符串会被空格填满。 f = char(a,b,m,c) size(f) 5. 字符串比较 strcmp 比较两个字符串是否完全相等,是,返回真,否则,返回假; strncmp 比较两个字符串前n个字符是否相等,是,返回真,否则,返回假; strcmpi 比较两个字符串是否完全相等,忽略字母大小写; strncmpi 比较两个字符串前n个字符是否相等,忽略字母大小写。

相关文档
最新文档