当前位置:文档之家› 字符串的查找与替换汇编实现

字符串的查找与替换汇编实现

字符串的查找与替换汇编实现
字符串的查找与替换汇编实现

汇编程序设计——语言翻译机

(一)实验内容

本次汇编程序设计题目选自2006年百度之星程序设计大赛初赛题目。原题如下:

百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语。他们在平时的交谈,会议,甚至在各中技术文档中都会大量运用。为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩率语和专有名词翻译成日常语言。

●输入数据:

输入数据包含三部分

1. 第一行包含一个整数N(N<=10000 ),表示总共有多少个

缩率语的词条。

2. 紧接着有N行的输入,每行包含两个字符串,以空格隔开。

第一个字符串为缩率语(仅包含大写英文字符,长度不超过

10 ),第二个字符串为日常语言(不包含空格,长度不超过

255 )。

3. 从第N+2 开始到输入结束为包含缩略语的相关文档。(总

长度不超过1000000 个字符)

●输出数据:

将缩率语转换成日常语言,其他字符保留原样。

●输入样例:

6

PS(门户搜索部)

NLP(自然语言处理)

PM(产品市场部)

HR(人力资源部)

PMD(产品推广部)

MD(市场发展部)

百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。

●输出样例:

百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。

(二)算法流程图

本程序算法流程图如下:

注:

要将缓冲区中字符串末尾回车符替换为$。

rank

strcpy(复制): Array

Strcat(粘贴):

(三)实验结果

(四)源程序

.model small

.586

.data

num db ? ;替换词条个数

buf0 db 5 ;输入词条个数缓存

count0 db ?

word0 db 5 dup(0)

tihuan struc

buf1 db 20 ;结构体,储存数据

count1 db ?

word1 db 20 dup('$')

buf2 db 40

count2 db ?

word2 db 40 dup('$')

tihuan ends

string tihuan 100 dup (<>) ;结构体数组,存储词条

temp tihuan <>

buf3 db 100 ;输入句子缓存

count3 db ?

x db 100 dup('$')

y db 100 dup('$')

note db '此程序实现了字符串的查找替换。例如',0ah,0dh,'输入(每行以回车键结束)',0ah,0dh,'2',0ah,0dh,

'NWPU',0ah,0dh,'The Northwestern Polytechnical

University',0ah,0dh,'Beijing',0ah,0dh,'Xian',0ah,0dh,

'NWPU is one of the best universities in Beijing.',0ah,0dh,'则输出',0ah,0dh,

'The Northwestern Polytechnical University is one of the best universities in Xian.',0ah,0dh, 'Now please enter:$'

note1 db '请输入词条个数:',0ah,0dh,'$'

note2 db '请输入被替换的词条:',0ah,0dh,'$'

note3 db '请输入替换词条:',0ah,0dh,'$'

note4 db '请输入文本:',0ah,0dh,'$'

note5 db '替换结果为:',0ah,0dh,'$'

.code

.startup

mov ax,@data ;数据段段基址

mov es,ax

cr macro ;宏:回车

mov dl,0dh

mov ah,2

int 21h

endm

lf macro ;宏:换行

mov dl,0ah

mov ah,2

int 21h

endm

mov dx,offset note ;输出提示

mov ah,9

int 21h

cr

lf

call input

call rank

mov al,num

and ax,00ffh

mov cx,ax

mov bx,offset string[0].word1

lop:

mov ax,offset x

push ax

push bx

call strstr

cmp ax,0

jz nextword

mov si,ax

mov al,[si+1]

;和下边第三行是为了解决缩略词条字数为1时的BUG!

mov [si],'$'

mov [si+1],al

mov al,[bx-1]

and ax,00ffh

add si,ax

mov ax,offset y

push ax

push si

call strcpy

mov ax,offset x

push ax

mov ax,bx

add ax,22

push ax

call strcat

mov ax,offset x

push ax

push ax

call strcat

jmp lop

nextword:

add bx,64

loop lop

mov dx,offset note5 ;输出提示5

mov ah,9

int 21h

mov dx,offset x

mov ah,9

int 21h

.exit

input proc near ;输入函数

mov dx,offset note1 ;输出提示1

mov ah,9

int 21h

mov dx,offset buf0 ;输入词条个数0~99

mov ah,0ah

int 21h

mov bl,1 ;ASCII值转换为数值

mov bh,0

mov al,count0

and ax,00ffh

mov cx,ax

lop0: mov si,cx

sub si,1

mov al,word0 [si]

sub al,30h

mul bl

add bh,al

mov al,bl

mov ah,10

mul ah

mov bl,al

loop lop0

mov num,bh

lf

mov al,num ;输入替换词条

and ax,00ffh

mov cx,ax ;num值送计数器

mov di,0ffffh

lop1:

mov dx,offset note2 ;输出提示2

mov ah,9

int 21h

mov dx,bx

mov ah,0ah

int 21h

lf

mov si,bx

mov al,[si+1]

and ax,00ffh

add si,2

add si,ax

mov [si],'$'

mov dx,offset note3 ;输出提示3

mov ah,9

int 21h

add bx,22

mov dx,bx

mov ah,0ah

int 21h

lf

mov si,bx

mov al,[si+1]

and ax,00ffh

add si,2

add si,ax

mov [si],'$'

add bx,42

loop lop1

mov dx,offset note4 ;输出提示4

mov ah,9

int 21h

mov dx,offset buf3 ;输入文本

mov ah,0ah

int 21h

lf

mov si,offset buf3

mov al,[si+1]

and ax,00ffh

add si,2

add si,ax

mov [si],'$'

ret

input endp ;输入完毕

rank proc near ;排序函数lea bx,string[0]

mov dl,num

and dx,00ffh

dec dx

cmp dx,0

jz none

mov si,0ffffh

lop3: inc si

mov di,si ;外循环

mov bp,bx

lop4: inc di ;内循环

add bp,64

mov al,[bx].count1

mov ah,[bp].count1

cmp al,ah

jae next

push si ;string[si]与string[di]交换

push di

mov cx,64

mov si,bx ;temp=string[si]

lea di,temp

cld

rep movsb

mov cx,64

mov si,bp ;string[si]=string[di]

mov di,bx

rep movsb

mov cx,64

lea si,temp ;string[di]=temp

mov di,bp

rep movsb

pop di

pop si

next:

cmp di,dx

jnz lop4

add bx,64

mov ax,dx

dec ax

cmp si,ax

jnz lop3

none:

ret

rank endp

strstr proc near

;查找替换词在句子中第一次出现的位置,若找到把其偏移地址AX,否则把0送AX。堆栈传递入口参数

push bp

push cx

mov bp,sp

mov si,[bp+6]

mov di,[bp+8]

lop5:

cmp [di],'$'

jz no ;不存在

push di

push si

mov al,[si-1]

and ax,00ffh

mov cx,ax

cld

repe cmpsb

jz found

pop si

pop di

inc di

jmp lop5

found: pop si ;找到

pop di

mov ax,di

jmp exit0

no: mov ax,0

exit0:

pop cx

pop bp

ret 4

strstr endp

strcpy proc near ;字符串复制函数

push bp

mov bp,sp

mov si,[bp+4]

mov di,[bp+6]

nex: mov al,[si]

cmp al,'$'

jz exit1

mov al,[si]

mov [di],al

inc si

inc di

jmp nex

exit1:

mov [di],'$'

;末尾加'$'!!!否则多次用y后会出错。如:第一次将asd复制进y中,则y为asd$,若第二次将m复制进y,若末尾不加$,

pop bp

;则y为msd$,导致合并xy时将sd也合并了进去

ret 4

strcpy endp

strcat proc near ;字符串合并

push bp

mov bp,sp

mov si,[bp+4]

mov di,[bp+6]

lop6: mov al,[di]

cmp al,'$'

jz move

inc di

jmp lop6

move: mov al,[si]

mov [di],al

cmp al,'$'

jz exit2

inc si

inc di

jmp move

exit2:

pop bp

ret 4

strcat endp

end

(五)实验总结

虽然本次实验要求简单明了,但我们在实际编程,尤其是运用汇编语言编写程序的过程中,还是遇到了一些困难,例如输出函数中未将缓冲中的回车符替换为$;strcpy函数中未在y字符串后加上$等。我组成员查阅书本及相关资料,查找汇编指令的用法、BIOS中断调用、系统功能调用、磁盘数据的查询、存取等相关知识。将困难逐一解决,最终成功运行程序,并得出了正确结果。

通过这次实验,我们对汇编语言的编程特点也有了更加深入的认识,自身的编程能力和逻辑思考能力也有了很大提升。

Excel 2007中查找替换的技巧及批量替换换行符实例

技巧1 模糊匹配查找数据 用户常常需要搜索某一类有规律的数据,比如以A开头的人名,以B结尾的货品编码,或者包含66的电话号码等。这时就不能以完全匹配目标内容的方式来精确查找了,而需要利用Excel提供的通配符进行模糊查找。 在Excel中,有两个可用的通配符能够用于模糊查找,分别是半角问号“?”和星号“*”。“?”可以在搜索目标中代替任何单个的字符或数字,而“*”可以代替任意多个连续的字符或数字。 默认情况下,“查找和替换”对话框中的“单元格匹配”复选框是未被勾选的,如图1-1所示。 图1-1 “查找和替换”的单元格匹配属性 此时查找“A*”将匹配所有以“A”开头的单元格,同时所有包含“A”的单元格都会被选中。勾选“单元格匹配”复选框后,查找“A*”将仅匹配以“A”开头的单元格。更多的匹配规则请参阅表格1-1所示。

表格1-1 模糊搜索 如果要查找通配符本身,可在“查找内容”文本框中输入通配符时在前面输入~,如表格1-2所示。 表格1-2 查找通配符 模糊查找除了在“查找和替换”中使用到,在“筛选”中也经常用到,规则是相通的,多实践是掌握这个技巧的最好方法。 技巧2 查找单元格格式 图2-1是一个数据区域,其中数值大于15的单元格填充为紫色,数值大于10不大于15的单元格填充为蓝色,其他单元格无填充色。当数据量巨大时,希望对具有不同填充色的数据进行进一步分析(例如统计其个数、平均值、最大值),那么靠手工操作是无法胜任的。此时需要通过查找格式,将具有相同格式的单元格定义为名称以作进一步处理。 图2-1 标记了不同格式的数据 步骤1 选中数据区域A1:E16,按组合键调出“查找和替换”对话框,单击“选项”按钮,进入“查找和替换”高级模式。 步骤2 在“查找”选项卡中,单击“格式”按钮右侧的下拉箭头,在下拉菜单中单击“从单元格选择格式”,如图2-2所示。

串的查找和替换

中北大学 数据结构 课程设计说明书 2011年12月15日

1.设计任务概述(包括系统总体框图及功能描述) 使用该系统可实现从指定源文件中查找到指定的单词,并实现用指定的单词替换该单词的功能。 2.本设计所采用的数据结构(如:链表、栈、树、图等) 一维数组 3.功能模块详细设计

3.1 详细设计思想 要想实现设计任务中所要求实现的功能,系统模块需分为两部分,即查找模块与替换模块,在查找成功的情况下进入替换模块进行替换。在查找时,将源文件进行读操作,并放入设置好的一维数组中,在此过程中,同时进行与制定单词进行比对的操作,完成后,进入替换模块,在数组中找到指定单词所在的位置,用制定单词替换该单词。完成后写入源文件,形成新的源文件,保存退出。 ………………………. 3.2 核心代码 查找模块; FILE *fp; printf("请输入要查找的单词: "); gets(keyWords); printf("请输入要替换的单词: "); gets(copyWords); if (NULL == (fp = fopen("123.txt", "r")))/* 读文件 */ { printf("文件打开失败!\n"); exit(1); } while (!feof(fp))/* 读文件 */ { strOne[countOne++] = fgetc(fp); } countOne--;/* 减去最后一个文件结束字符 */

for (i=0; i

谈查找与替换的使用

谈查找与替换的使用 [摘要]Word提供的查找与替换功能十分强大,能够将它灵活应用,能达到事半功倍的效果。本文主要讲述了替换的常规使用方法及一些妙用方法。 [关键词]查找与替换使用 查找与替换是任何一种文字处理软件必须具备的功能,Word也不例外,它不仅能实现普通多处相同的文字的查找与替换,而且能完成带格式文本的查找与替换,以及能通过一些非打印字符和通配符来完成复杂的操作,达到事半功倍的效果。 查找的目的在于方便操作、提高效率,但它更多还是为了达到替换的效果,因此说查找是替换的基础,替换也只有在查找的基础上才能实现,在实际操作中经常会直接打开替换命令而使两个两步同时进行,因此我结合教学中的经验和实践中常用的方法来谈谈替换的用法。 一、替换的常规操作方法 1、替换的一般使用 打开替换对话框,在“查找内容”框中输入将要被替换的内容,在“替换为”框中输入要替换的内容,然后单击“替换”或“全部替换”,区别是前者是将当前找到的一个内容替换掉,后者是将搜到的所有相同的内容都替换掉。 比如一篇用扫描仪输入的文章,由于扫描软件的原因,将文中所有的“件”都识别成了“人牛”,这时我们在“查找内容”框中输入“人牛”,在“替换为”框中输入“件”,然后单击“全部替换”就可将这一错误纠正过来。 2、带格式的替换操作 带格式的替换,操作方法要在前面所述的基础上,使用“格式”按钮,定义相应的格式,这时就会出现了格式说明。格式说明会出现在“查找内容”框下还是“替换为”框下,取决于当时插入点的位置。如将某文中所有的“上海”换为蓝色“Shanghai”,这时就是在“查找内容”框中输入“上海”,在“替换为”框中输入“Shanghai”,然后确定插入点放在“替换为”框中后,单击“格式”按钮,定义蓝色,最后单击“全部替换”就可实现。 在实际教学中经常出现误操作的地方就是确定插入点的位置。如将某文中所有的蓝色“Shanghai”换为“上海”,这时要在“查找内容”框中输入“Shanghai”,“替换为”框中输入“上海”,然后确定插入点位于“查找内容”框中,单击“格式”按钮,定义蓝色,这时由于作过上一步操作,在“替换为”框下有格式说明,因此还要确定将插入点放在“替换为”框中,单击“不限定格式”按钮,这时原来的格式说

01查找与替换

第一讲:WORD程序介绍 WORD2003程序界面简介 1.标题栏: 从左到右显示程序图标、文件名、程序名及三个窗口控制按钮。 2.菜单栏: 汇集了WORD2000软件各项功能命令,了解不同类型的菜单,快捷键、访问键; 3.工具栏: 将常用到的一些菜单命令以按钮方式分别放置在不同的工具栏内,通常会显示出〖常用〗及〖格式〗工具栏。 **工具栏的移动:鼠标指到工具栏左边灰色虚线上,按住鼠标左键拖动工具栏在相应位置** 4.水平与垂直滚动条: 拖动以显示文档的不同部分。 5.状态栏: 主要显示当前的工作状态。 隐藏与显示窗口元素: 打√表示已设置或已显示 1.标尺段落标记及网格线的显示与隐藏: 单击【视图】主菜单,弹出的下拉菜单中勾选或取消勾选『网格线』『段落标记』『标尺』等菜单项; 2.工具栏的显示与隐藏: 1)单击【视图/工具栏】,在弹出菜单列表中勾选或取消勾选相应菜单项; 2)在菜单栏或已显示的工具栏的右边空白位置单击右键,在弹出的快捷菜单中勾选或取消勾选相应菜单项。 3.【工具/选项/视图】对话框中设置隐藏或显示: 状态栏、水平垂直滚动条、屏幕提示等。 新建文档文件 1.通过菜单新建 执行【文件\新建】 打开任务窗格: 1)新建:新建空白Word文档、Web网页文档或电子邮件; 2)根据现有方档新建:以现有文件为模板新建文件; 3)根据模板新建:创建一个具有固定内容的具有特殊用途的新文档。 2.通过新建按钮新建: 单击工具按钮中的『新建』按钮:新建空白Word文档[ CTRL+ N ]。 工作区(编辑区)

1.标尺设置: 设置标尺的单位→【工具/选项/常规】选项卡中取消勾选『以字符为单位』,在量度单位中指定新的标尺单位。 2.页面构成: 【工具/选项/常规】选项卡中勾选『正文边框』以显示正文边框线,正文边框框到的为正文区域。 1)上下页边距:正文上下边框线与页画上下边缘间的区域; 2)左右页边距:正文左右边框线与页画左右边缘间的区域; 3页面标识符及功能键: 在【工具/选项/视图】选项卡中设置是否显示段落标记等格式标记。 1)闪烁“|”字形光标为对象插入光标、“I”字形光标为文本光标。 2)回车(Enter)键:单产生一个换行符,起换行与分段的作用。 3)删除(Delete)键:删除插入光标右边的一个或选定的若干字符。 4)退格键(Back Space):删除插入光标左边的一个或选定的若干字符。 5)插入键(Insert):插入与改写模式的切换[ 双击状态栏中的改定按钮]。6)F4:重复上一次操作。 文本输入 1.普通字符输入: 1)添加已安装的输入法 右击任务栏中语言栏图标,执行弹出的快捷菜单中的设置命令。 2)输入法切换: CTRL+空格(中英文输入法切换);CTRL+Shift(依次打开各种输入法); 3)中/英文标点符号切换全/半解切换: 通过单击输入法图标栏中的相应按钮切换全解/半解[Shift + 空格]、中英文标点符号; 2.特殊字符的输入: 1)右击输入法工具栏中最右边的『键盘』按钮,选择不同类型的软键盘,在弹出的软键盘中用鼠标单击需要输入的特殊字符键位; 2)插入特殊字符:选择需要的字符后单击『插入』按钮或直接双击字符; 3)给字符设置快捷键或自动更正选项:选中要设置快捷键的字符后单击『快捷键』或『自动更正』 4)可以用给正常文字设置特殊字体的方式插入特殊字符。 5)在中文标点符号状态下:(Shift + 2 →·; Shift + 6 →……。\ →、)。 拼写与语法检查: 1.拼写与语法错误的更正: 1)【工具/拼写和语法】快捷键F7→打开〖拼写和语法〗对话框:对找出的拼写与语法错误进行处理; 2)在错误标记处按右键→从弹出的快捷菜单中选择处理方式。 2.拼写与语法检查功能的打开与关闭: 【工具/选项/拼写和语法】对话框中取消『键入时检查语法』与『键入时检查拼写』

串的查找和替换

课程设计 (数据结构) 班级 姓名 学号 指导教师 二○一一年一月二十日 课程设计任务书及成绩评定

课题名称串的查找和替换 Ⅰ、题目的目的和要求: 1、设计目的 巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。 (1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。 (2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。 2、设计题目要求: 设计内容: 问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。 内容要求: 1.根据题目要求进行需求分析,分析出该项任务的主要功能和设计重点。 2.根据需求分析的内容划分模块 3.利用VC++软件进行程序设计并调试通过 4.写出课程设计说明书 Ⅱ、设计进度及完成情况

Ⅲ、主要参考文献及资料 [1] 严蔚敏数据结构(C语言版)清华大学出版社 1999 [2] 严蔚敏数据结构题集(C语言版)清华大学出版社 1999 [3] 谭浩强C语言程序设计清华大学出版社 [4] 与所用编程环境相配套的C语言或C++相关的资料 Ⅳ、成绩评定: 设计成绩:(教师填写) 指导老师:(签字) 二○一一年一月二十一日

目录 第一章概述 (1) 第二章系统分析 (2) 第三章概要设计 (3) 第四章详细设计 (4) 第五章运行与测试 (8) 第六章总结与心得 (11) 参考文献 (12)

第一章概述 课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。 数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 在这次的课程设计中我选择的题目是串的查找和替换。该课程设计实现了对文件的查找和替换。我采用的数据结构是字符串数组,这样操作起来比较方便,思路比较清晰。而如果采用指针则容易造成思路混乱,增加出错的几率。该课程设计可以实现对已打开文件的查找和替换,操作完毕关闭程序后,文件的内容为修改后的内容,实用性比较强。

汇编语言实现字符串逆序输出

北京邮电大学 微机原理与接口技术实验报告 学院:电子工程学院 班级:2012211203 学号:2012210876 姓名:邱启哲

字符串的逆序存储实验 一、题目要求 实现将STRING1起始存取单元中的字符串’ABCDEFGHIJKLM’逆序存放到STRING2的存储单元中,并在屏幕上显示结果。 二、设计思路 在数据段定义时,将字符串’ABCDEFGHIJKLM’存入STRING1中,并定义一个空字符串数组STRING2用于存放字符。将指针[STRING1+BP]指向字符串数组STRING1的最后一个字符,指针[STRING2+BX]指向STRING2的起始字符对其进行赋值,每次赋值后STRING1的指针减一,STRING2的指针加一,循环赋值13次。赋值完成后用系统调用实现STRING2中内容的循环输出。 三、程序代码 DATA SEGMENT STRING1 DB 'ABCDEFGHIJKLM' STRING2 DB 13DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DA TA MOV DS,AX MOV CX,13 MOV BX,0 MOV BP,12 LOOP1:;此循环用于实现对STRING2的赋值功能MOV AL,[STRING1+BP];通过AL实现STRING1对STIRNG2的赋值 MOV [STRING2+BX],AL INC BX DEC BP LOOP LOOP1 MOV CX,13;将CX值复员以便进入下一个循环 MOV BX,OFFSET STRING2;使BX指向STRING2的起始字符LOOP2: MOV AH,2 ;调用2号系统调用,输出STRING2 MOV DL,[BX];用STRING2中的字符为DL赋值 INT 21H INC BX;BX加一,向后移一位 LOOP LOOP2 MOV AH,4CH;程序结束 INT 21H CODE ENDS END START

第一次实验 字符串的查找与替换

实验一、字符串的查找与替换 实验目的: 1.掌握Java中多种布局管理器的使用。 2.掌握字符串的处理,了解StringBuffer类。 3.掌握事件处理程序的写法,学会使用内部类对象监听事件。 实验内容: 1.通过嵌套面板、组合各种布局,构造出一个比较美观、合理的界面。熟练掌握 FlowLayout,GridLayout和BorderLayout的使用。如下图所示: 实验要求: 1. 使用内部类对象实现鼠标事件的监听。 2.考虑用更简单的方法实现字符串的查找与替换算法。 实验指导: 1.使用内部类对象实现鼠标事件的监听。定义主类TextFindReplace,在该主类中 定义内部类MouseL对“Find”、“Replace”、“Exit”三个按钮上的点击事件监听 及处理。程序结构如下所示: class TextFindReplace extends Frame { //声明类成员变量 Button btnFind; Button btnReplace; Button btnExit; … public TextFindReplace(){ //初始化 btnFi nd=new Button(“Find”); btnReplace=new Button(“Replace”); btnExit=new Button(“Exit”); … //注册事件 MouseL myListener=new MouseL(); btnFind.addMouseListener(myListener); btnReplace.addMouseListener(myListener); btnExit.addMouseListener(myListener); } class MouseL extends MouseAdapter{ public void mousePressed(MouseEvent e){

查找与替换

查找与替换》教学设计(培训作业) 教学目标: 基本目标是让学生学会通过“网上邻居”下载老师机上的资源,掌握使用“查找与替换”来编辑文字材料。发展目标是培养学生灵活运用,综合实践勇于创新的精神。 教学重点: 1、通过“网上邻居”下载老师机上的资源。 2、查找文字。 3、用替换对文档进行编辑。 教学难点:通过“网上邻居”下载老师机上的资源。 教学准备:范文一篇 卢勾桥建于1892年(金代),桥长266.5米,桥栏杆上有486只石狮子,桥下11孔。距今已有八百多年的历史。七百多年前,“卢勾晓月”就是著名的燕京八景之一,桥上有清乾隆题写的“卢勾晓月”碑亭。到1985年,卢勾桥还是北京西南一条重要的交通通道,担负着繁重的运输任务。1985年后在旁边建了两座新桥后,旧桥才停止使用。1937年7月7日日本侵略者在这里发动进攻,既卢勾桥事变…… 教学过程: 一、导入:今年是抗日战争胜利六十年周年,我们大家来回忆下我们的先辈是什么时候什么地点打响抗战的第一枪?学生可能回答是“卢沟桥”。老师来介绍下“卢沟桥”,〔打开文档〕让学生观察和发现范文中的错误!提出让学生修改老师文章中错误的要求。可文章在老师的电脑中,学生在下面如何改?〔引出问题,同时调动学生的探究兴趣。〕 二、新课讲授: 1、学习下载资料。 讲述“网络”“共享”“网上邻居”等概念。 〔老师演示下载过程〕 〔学生实践老师巡视指导〕 在学生几乎都下载完毕后。 2、学习查找和替换。 学生自学,提醒学生查找内容“勾”改为“沟”。 〔用鼓励式提问和学生回答,学生自我演示的方式进行。〕 注意提示一:查找到文章末尾,单击提示信息“确定”按钮。 注意提示二:“查找下一个”“全部替换”“替换”的使用效果。

汇编语言比较两个字符串的大小

实验二比较两个字符串的大小 一、实验要求 从键盘上输入两个字符串,比较两个字符串的大小。如果第一个字符串比第二个字符串大,则显示1;如果两个字符串相等,则显示0;如果第一个字符串比第二个字符串小,则显示-1 (1)画出实现上述功能的汇编语言程序流程图 (2)写出实现上述功能的汇编语言程序 (3)编译,连接编写的汇编语言程序,并运行生成的可执行文件,描述其执行情况 (4)对上述程序进行调试 (5)描述反编译后的程序在执行前的数据段的内容何在调试过程中各寄存器的变化。 (6)写出实现上述要求的实验报告 二、实验环境 该试验包括的硬件和软件条件如下: 1、硬件环境 (1)联想AMD双核台式电脑 (2)内存1G 2、软件环境 Windows XP 三、实验步骤 1.程序流程图

2.程序代码 data segment msg1 DB "Please input a string:",'$' string1 DB 100,0,100 dup(?) msg2 DB "Please input another string:",'$' string2 DB 100,0,100 dup(?) msg3 db 0ah,0dh result DW ?,'$' Data ends Stack segment para stack db 20h dup(0) Stack ends code segment Assume Cs:code,Ss:stack,ds:Data Start: mov ax,data mov ds,ax mov es,ax lea dx,msg1 mov ah,09h int 21h lea dx,string1 mov ah,0ah int 21h

word 查找与替换的技巧总结

word 查找与替换的技巧总结 查找的快捷键―Ctrl+F‖,替换的快捷键―Ctrl+H‖。或在―编辑‖菜单上,单击―查找‖或―替换‖. 1. 常用的通配符及作用 要查找和替换的项目的通配符 通配符用途 * 表示零个到多个字符。例如,s*d 可查找―sad‖和―started‖。 ? 表示任意单个字符,涵盖任意字母.。例如,s?t 可查找―sat‖和―set‖。 < 单词开头。例如,<(inter) 查找―interesting‖和―intercept‖,但不查找―splintered‖。 > 单词结尾。例如,(in)> 查找―in‖和―within‖,但不查找―interesting‖。 [ ] 指定字符之一。例如,w[io]n 查找―win‖和―won‖。 [-] 指定范围内任意单个字符。例如,[r-t]ight 查找―right‖和―sight‖。必须用升序来表示该范围。再如[a-z]和[A-Z]表示所有英文字符,必须用升序来表示该范围。[0-9]表示所有数字字符。 [!x-z] 中括号内指定字符范围以外的任意单个字符。例如,t[!a-m]ck 查找―tock‖和―tuck‖,但不查找―t ack‖和―tick‖。 {n} n 个重复的前一字符或表达式。例如,fe{2}d 查找―feed‖,但不查找―fed‖。 {n,} 至少n 个前一字符或表达式。例如,fe{1,}d 查找―fed‖和―feed‖。 {n,m} n 到m 个前一字符或表达式。例如,10{1,3} 查找―10‖、―100‖和―1000‖。 @ 一个以上的前一字符或表达式。例如,lo@t 查找―lot‖和―loot‖。 可使用括号对通配符和文字进行分组,以指明处理次序,例如,可以通过键入―<(pre)*(ed)>‖来查找―preso rted‖和―prevented‖。 可使用\n 通配符搜索表达式(n为数字,代表分组的组号),然后将其替换为经过重新排列的表达式,例如,在―查找内容‖框键入―(Newton) (Christie)‖,在―替换为‖框键入―\2\1‖,Word 将找到―Newton Christie‖并将其替换为―Christie Newton‖。 使用通配符时,搜索文字区分大小写。例如,搜索―s*t‖将找到―sat‖而不是―Sat‖或―SAT‖。如果要搜索大小写字母混合的单词,可使用方括号通配符。例如,键入―[Ss]*[Tt]‖查找―sat‖、―Sat‖或―SAT‖。 可以在―查找内容‖或―替换为‖框中使用的代码 一些代码只有在选中或清除―使用通配符‖选项时才能使用。 通配符用途 ^t ,^9 制表符.

串查找和替换数据结构课程设计报告

长沙理工大学 《数据结构》课程设计报告 黄博 学 院 计算机与通信工程 专 业 计算机科学与技术 班 级 计算机0903班 学 号 200986250311 学生姓名 黄博 指导教师 陈倩诒 课程成绩 完成日期 2011年7月3日

课程设计成绩评定 学院城南学院专业计算机科技与技术班级计算机科学与技术学号200986250311 学生姓名黄博指导教师陈倩诒完成日期2011年7月3日 指导教师对学生在课程设计中的评价 指导教师对课程设计的评定意见

课程设计任务书 城南学院计算机科学与技术专业

用C++语言解决串的查找和替换问题 学生姓名:黄博指导老师:陈倩诒 摘要本课程设计主要解决的在一篇英语文章中,在文章中找出所指定的单词,然后对所指定的单词进行替换,替换为另一个单词,再存盘的课程设计。先建立一个文件,然后从文件中读取字符串保存到数组中。从键盘输入被替换的单词,然后删除这个单词。从键盘中输入替换的单词,把它插入到被删除的单词的位置。然后把该字符串再写入到文件中。程序通过调试运行,初步实现了设计目标。 关键词程序设计;C++;替换;字符串

目录 1. 引言 (1) 2. 课程设计目的和要求 (2) 2.1 课程设计目的 (2) 2.2 课程设计要求 (2) 3. 课程设计分析 (3) 3.1课程设计思路 (3) 3.2课程设计要求函数分析 (3) 3.3课程设计主要流程 (4) 4. 课程设计调试 (6) 5. 课程设计总结 (9) 参考文献 (10) 附录 (11)

1 引言 数据结构是一门理论性强,思维抽象,难度较大的一门课程。是基础课专业课之间的桥梁。该课程的先行课时计算机基础,程序设计语言、离散数学等,后续课程有操作系统、编译原理、数据库原理、软件工程等。通过本门课程的学习,我们应该透彻的理解各种数据的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在校和离校后学习和工作有着重要的影响。[1] 数据结构是计算机科学与技术的一门核心专业基础课程,在该专业课程中有着承上启下的作用,学习好数据结构对于提高理论认知水平和实践操作能力有重要的作用,学习数据结构的最终目的是为了获得解决求解问题的能力。对于现实世界的问题,应该从中抽象出一个适当的数学模型,该数学模型在计算机的用数构表示出来,然后在设计一个求数学模型的的算法,再进行编程调试,最后获得问题的解答。 数据课程设计着眼培养我们实践能力,加强编程能力的培养。 第1页

字符串的查找与替换汇编实现

汇编程序设计——语言翻译机 (一)实验内容 本次汇编程序设计题目选自2006年百度之星程序设计大赛初赛题目。原题如下: 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语。他们在平时的交谈,会议,甚至在各中技术文档中都会大量运用。为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩率语和专有名词翻译成日常语言。 ●输入数据: 输入数据包含三部分 1. 第一行包含一个整数N(N<=10000 ),表示总共有多少个 缩率语的词条。 2. 紧接着有N行的输入,每行包含两个字符串,以空格隔开。 第一个字符串为缩率语(仅包含大写英文字符,长度不超过 10 ),第二个字符串为日常语言(不包含空格,长度不超过 255 )。 3. 从第N+2 开始到输入结束为包含缩略语的相关文档。(总 长度不超过1000000 个字符) ●输出数据: 将缩率语转换成日常语言,其他字符保留原样。

●输入样例: 6 PS(门户搜索部) NLP(自然语言处理) PM(产品市场部) HR(人力资源部) PMD(产品推广部) MD(市场发展部) 百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。 ●输出样例: 百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。

(二)算法流程图 本程序算法流程图如下: 注: 要将缓冲区中字符串末尾回车符替换为$。

rank

strcpy(复制): Array Strcat(粘贴):

汇编语言查找匹配字符串

汇编语言实验二查找匹配字符串 一、目的 查找匹配字符串SEARCH 二、实验内容 程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示‘NO match!’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。 流程图

N Y Y Y 输入关键字 结束 关键字长度=0 输入句子 句子长度<关键字长度 Y 保存关键字长度到cx,cx 入栈,保存总循环次数(句子长度-关键字长度+1) 到al,将句子的首地址放进bx(作为基址寄存器)si=di=0(变址寄存器) 开始比较[bx+di]与[si]是否相等 si+1,di+1,cx-1(同时指向下一个字符) Y N bx+1(句子指向下一个字符)cx 出栈,再入栈,si,di 清零,al-1cx 是否为0 N 匹配完成,调用子程序输出 al 是否为0 不匹配,输出三、设计和编码 DATA SEGMENT mess1DB 'Enter keyword:','$'mess2DB 'Enter Sentence:','$'mess3DB 'Match at location:','$'mess4DB 'NOT MATCH.',13,10,'$'mess5DB 'H if the sentence',13,10,'$'

change DB13,10,'$' stoknin1label byte max1db10 act1db? stokn1db10dup(?) stoknin2label byte max2db50 act2db? stokn2db50dup(?) DATA ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODE SEGMENT ;*************************************代码段 main proc far assume cs:code,ds:data,es:data START: push ds sub AX,AX sub BX,BX sub DI,DI sub SI,SI push AX;为返回dos并清空后面要用到的寄存器 MOV AX,DATA MOV DS,AX LEA DX,mess1 MOV ah,09 INT21h;输出Enter keyword LEA DX,stoknin1 MOV ah,0ah;用21号中段的0ah号功能获取关键字 INT21h cmp act1,0 je exit;如果为空直接退出程序 a10: ;********************************输入Sentence并判断 LEA DX,change MOV ah,09 INT21h;输出回程,换行 LEA DX,mess2 MOV ah,09 INT21h;输出Enter Sentence: LEA DX,stoknin2 MOV ah,0ah INT21h;用21号中段的0ah号功能获取句子 MOV AL,act1 CBW MOV CX,AX;保存关键字长度到cx PUSH CX;cx入栈 MOV AL,act2 cmp AL,0 je a50;保存句子长度到al,若句子为空则跳转显示not match SUB AL,act1 js a50;若句子长度小于关键字长度,则跳转显示not match INC AL CBW LEA BX,stokn2;将句子的首地址放进BX MOV DI,0 MOV SI,0 a20: ;****************************************比较,内循环 MOV AH,[BX+DI] CMP AH,stokn1[SI];遇见字符不相等就跳转到a30

office的查找和替换高级技巧

word 查找与替换的技巧总结 word 查找与替换的技巧总结 还是以前整理的,现在拿出来分享。 自己整理的,算是原创吧。 以下是直接贴过来的,表格可能有些乱。可以下载附件。 查找的快捷键―Ctrl+F‖,替换的快捷键―Ctrl+H‖。或在―编辑‖菜单上,单击―查找‖或―替换‖. 1. 常用的通配符及作用 要查找和替换的项目的通配符 通配符用途 * 表示零个到多个字符。例如,s*d 可查找―sad‖和―started‖。 ? 表示任意单个字符,涵盖任意字母.。例如,s?t 可查找―sat‖和―set‖。 单词结尾。例如,(in)> 查找―in‖和―within‖,但不查找―interesting‖。 [ ] 指定字符之一。例如,w[io]n 查找―win‖和―won‖。 [-] 指定范围内任意单个字符。例如,[r-t]ight 查找―right‖和―sight‖。必须用升序来表示该范围。再如[a-z]和[A-Z]表示所有英文字符,必须用升序来表示该范围。[0-9]表示所有数字字符。 [!x-z] 中括号内指定字符范围以外的任意单个字符。例如,t[!a-m]ck 查找―tock‖和―tuck‖,但不查找―tack‖和―tick‖。 {n} n 个重复的前一字符或表达式。例如,fe{2}d 查找―feed‖,但不查找―fed‖。 {n,} 至少n 个前一字符或表达式。例如,fe{1,}d 查找―fed‖和―feed‖。 {n,m} n 到m 个前一字符或表达式。例如,10{1,3} 查找―10‖、―100‖和―1000‖。 @ 一个以上的前一字符或表达式。例如,lo@t 查找―lot‖和―loot‖。 可使用括号对通配符和文字进行分组,以指明处理次序,例如,可以通过键入―‖来查找―presorted‖和 ―prevented‖。 可使用n 通配符搜索表达式(n为数字,代表分组的组号),然后将其替换为经过重新排列的表达式,例如,在―查找内容‖框键入―(Newton) (Christie)‖,在―替换为‖框键入―21‖,Word 将找到―Newton Christie‖并将其替换为―Christie Newton‖。 使用通配符时,搜索文字区分大小写。例如,搜索―s*t‖将找到―sat‖而不是―Sat‖或―SAT‖。如果要搜索大小写字母混合的单词,可使用方括号通配符。例如,键入―[Ss]*[Tt]‖查找―sat‖、―Sat‖或―SAT‖。 可以在―查找内容‖或―替换为‖框中使用的代码 一些代码只有在选中或清除―使用通配符‖选项时才能使用。 通配符用途 ^t ,^9 制表符. ^p,^13 段落标记,回车符, 键入^p(选中―使用通配符‖复选框时在―查找内容‖框中无效)或键入^13 ^l ^11 手动换行符。 ^nnn ASCII 字符. 键入^nnn,其中nnn 是字符代码 ^0nnn ANSI character.键入^0nnn,其中nnn 是字符代码 ^+ 长划线( — ) ^= 短划线( – ) ^^ 脱字号^ ^n,^14 分栏符 ^12 分页符或分节符. 键入^12(替换时,插入分页符) ^m 手动分页符. 键入^m(当选中―使用通配符‖复选框时,还将查找或替换分节符)

数据结构-串的查找与替换不会源程序

数据结构课程设计 ———串的查找与替换、

目录 (一)设计思路 (1) (二)问题描述 (1) (三)内容要求 (1) (四)设计目的 (1) (五)设计实现 (5) (六)设计调试 (10) (七)设计总结 (15) (八)参考文献 (15)

(一)设计目的 数据结构课程设计的目的是:通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于解决实际问题中,它是理论与实践相结合的重要过程。设计要求会如何对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。 (二)问题描述: 打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。 (三)内容要求: 1.根据题目要求进行需求分析,分析出该项任务的主要功能和设计重点。 2.根据需求分析的内容划分模块 3.进行程序设计 (四)设计思路 计算机上的非数值处理的对象基本上上字符串数据,字符串一般简称为串。串(string)是由零个或多个字符组成的有限序列,一般记为s=`a1a2…an`(n 大于零)。通常称字符在序列中的序号为该字符在串中的位置,子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。当两个串的每个字符都相等时(串值相等),称这两个串是相等的。 在子串的查找定位过程中,分别利用计数指针j和k指示被替换串和替换串中当前正待比较的字符位置。所用算法的基本思想是:首先利用指针i来完成被替换串和替换串在文本中的遍历,从被替换串和替换串的第一个字符起进行比较,若相等则继续逐个比较后续字符;否则完成一次比较,指针i递增进行下一次的比较。以此类推,直至匹配成功。 现根据问题描述作如下分析: 首先利用标准库函数fopen()打开一个文件,然后从文件中读取字符串保

Word中查找和替换功能详细介绍

Word中查找和替换功能详细介绍 在Word中查找和替换功能很多人都会使用,最通常是用它来查找和替换文字,但实际上还可用查找和替换格式、段落标记、分页符和其他项目,并且还可以使用通配符和代码来扩展搜索。 笔者以一些例子来说明如何将word中查找和替换功能运用地自如,或许对你有帮助。 一、查找和替换文字 可以自动替换文字,例如:将“改善”替换为“进步” 1.单击“编辑”菜单中的“替换”命令。 2.在“查找内容”框内键入要查找的文字,在“替换为”框内输入替换文字。

3.单击“查找下一处”或“查找全部”,后单击“替换”或者“全部替换”按钮。 二、查找和替换指定的格式 例如,查找指定的单词或词组并更改字体颜色;或查找指定的格式(如加粗)并更改它。 1.在“编辑”菜单上,单击“查找”。 2.如果看不到“格式”按钮,请单击“高级”按钮。

3.在“查找内容”框中,请执行下列操作之一: ·若要只搜索文字,而不考虑特定的格式,请输入文字。 ·若要搜索带有特定格式的文字,请输入文字,再单击“格式”按钮,然后选择所需格式。·若要只搜索特定的格式,请删除所有文字,再单击“格式”按钮,然后选择所需格式。

4.单击“全部替换”后,单击“关闭”。

三、查找和替换段落标记、分页符和其他项目 可以方便地搜索和替换特殊字符和文档元素,例如分页符和制表符。 1.单击“编辑”菜单中的“查找”或“替换”命令。 2.如果看不到“特殊字符”按钮,请单击“高级”按钮。 3.在“查找内容”框中,请执行下列操作之一: ·若要从列表中选择项目,请单击“特殊字符”按钮,然后单击所需项目。 ·在“查找内容”框中直接键入项目的代码。

汇编语言入门教程

汇编语言入门教程 2007-04-29 22:04对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK 出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS 段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志,将在下文用到时详细说明。

汇编语言指令

汇编语言指令集 数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作数压入或取出堆栈 语法: PUSH 操作数POP 操作数 格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA 功能: 堆栈指令群 格式: PUSHF POPF PUSHA POPA LEA,LDS,LES 功能: 取地址至寄存器 语法: LEA r,m LDS r,m LES r,m XLAT(XLATB) 功能: 查表指令 语法: XLAT XLAT m 算数运算指令 ADD,ADC 功能: 加法指令 语法: ADD OP1,OP2 ADC OP1,OP2 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data 影响标志: C,P,A,Z,S,O SUB,SBB 功能:减法指令 语法: SUB OP1,OP2 SBB OP1,OP2

格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data 影响标志: C,P,A,Z,S,O INC,DEC 功能: 把OP的值加一或减一 语法: INC OP DEC OP 格式: INC r/m DEC r/m 影响标志: P,A,Z,S,O NEG 功能: 将OP的符号反相(取二进制补码) 语法: NEG OP 格式: NEG r/m 影响标志: C,P,A,Z,S,O MUL,IMUL 功能: 乘法指令 语法: MUL OP IMUL OP 格式: MUL r/m IMUL r/m 影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志) DIV,IDIV 功能:除法指令 语法: DIV OP IDIV OP 格式: DIV r/m IDIV r/m CBW,CWD 功能: 有符号数扩展指令 语法: CBW CWD AAA,AAS,AAM,AAD 功能: 非压BCD码运算调整指令 语法: AAA AAS AAM AAD 影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD) DAA,DAS 功能: 压缩BCD码调整指令 语法: DAA DAS 影响标志: C,P,A,Z,S 位运算指令集 AND,OR,XOR,NOT,TEST 功能: 执行BIT与BIT之间的逻辑运算 语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位SHR,SHL,SAR,SAL 功能: 移位指令 语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL 影响标志: C,P,Z,S,O ROR,ROL,RCR,RCL

相关主题
文本预览
相关文档 最新文档