查找字符串(并修改、排序、插入、删除等)-汇编语言

基于线性表的图书信息管理系统 基于线性表的图书信息管理系统 【实验目的】 1.掌握线性表的顺序存储表示和链式存储表示。 2.掌握顺序表和链表的基本操作,包括创建、查找、插入和删除等算法。 3.明确线性表两种不同存储结构的特点及其适用场合,明确它们各自的优缺点。 【实验内容】 图书信息表包括以下4项常用的基本操作:图书信息表的创建和输出、排序、修改、逆序存储。实验要求分别利用顺序表和链表实现上述4项操作。 1.基于顺序存储结构的图书信息表的创建和输出 问题描述 定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书 阅读详情

有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并将结果在显示器上显示。

DATAS SEGMENT
    STRING0 DB 'data',0AH,0DH     
    STRING1 DB 'name',0AH,0DH     
    STRING2 DB 'time',0AH,0DH     
    STRING3 DB 'file',0AH,0DH     
    STRING4 DB 'code',0AH,0DH    
    STRING5 DB 'path',0AH,0DH     
    STRING6 DB 'user',0AH,0DH     
    STRING7 DB 'exit',0AH,0DH     
    STRING8 DB 'quit',0AH,0DH    
    STRING9 DB 'text','$'  
    BUF DB 5         
    DB ?         
    DB 5 DUP(?) ;此处输入数据段代码  
DATAS ENDS

EXTRA SEGMENT   
    STRING DB 7 DUP(?) ;此处输入堆栈段代码
EXTRA ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:EXTRA
START:
    MOV AX,DATAS
    MOV DS,AX
	MOV AX,EXTRA     
	MOV ES,AX     
	LEA DX,BUF     
	MOV AH,0AH     
	INT 21H     
	LEA SI,BUF+2     
	LEA DI,STRING
	
	MOV CX,4     
	REP MOVSB     
	LEA SI,STRING0     
	LEA DI,STRING     
	CLD     
	
	MOV CX,4     
	REPE CMPSB     
	CMP CX,0     
	JE TIHUAN     
	LEA SI,STRING1     
	LEA DI,STRING     
	CLD     
	MOV CX,4     
	REPE CMPSB     
	CMP CX,0     
	JE TIHUAN     
	LEA SI,STRING2     
	LEA DI,STRING 
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING3     
    LEA DI,STRING     
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING4     
    LEA DI,STRING     
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING5     
    LEA DI,STRING     
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING6     
    LEA DI,STRING     
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING7     
    LEA DI,STRING     
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING8     
    LEA DI,STRING     
    CLD     
    MOV CX,4 
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    LEA SI,STRING9     
    LEA DI,STRING     
    CLD     
    MOV CX,4     
    REPE CMPSB     
    CMP CX,0     
    JE TIHUAN     
    JMP SHUCHU 
TIHUAN:     
    SUB SI,4     
    MOV AL,'d'     
    MOV [SI],AL    
     MOV AL,'i'     
     MOV [SI+1],AL     
     MOV AL,'s'     
     MOV [SI+2],AL     
     MOV AL,'k'     
     MOV [SI+3],AL 
SHUCHU:     
     LEA DX,STRING0     
     MOV AH,09H     
     INT 21H     
     MOV AH,4CH     
     INT 21H 
     CODES ENDS 
    END START ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

比如输入user时的结果:

输入abcd时的结果:

有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。

DATAS SEGMENT
     STR0 DB 'ram',0AH,0DH     
     STR1 DB 'yes',0AH,0DH     
     STR2 DB 'red',0AH,0DH     
     STR3 DB 'the',0AH,0DH     
     STR4 DB 'get',0AH,0DH     
     STR5 DB 'for',0AH,0DH     
     STR6 DB 'and',0AH,0DH     
     STR7 DB 'key',0AH,0DH     
     STR8 DB 'not',0AH,0DH     
     STR9 DB 'may$' 
     ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    SAVE DB 100 DUP(?) ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    XOR AX,AX
    MOV CX,9
    LEA DI,STR0
    LEA SI,STR1
AGAIN:
	 PUSH CX     
	 PUSH SI     
	 PUSH DI 
    
BIJIAO:
	MOV AL,[DI]
	CMP AL,[SI]
	JE BIJIAO1
	CMP AL,[SI]
	JB JIXU
	JMP JIAOHUAN
BIJIAO1:
	MOV AL,[DI+1]
	CMP AL,[SI+1]
	JE BIJIAO2
	CMP AL,[SI]
	JB JIXU
	JMP JIAOHUAN
BIJIAO2:
	MOV AL,[DI+2]
	CMP AL,[SI+2]
	JA JIAOHUAN
	JMP JIXU
JIXU:
	 ADD SI,5     
	 ADD DI,5
	 LOOP BIJIAO
	 POP DI     
	 POP SI     
	 POP CX 
	 LOOP AGAIN
	 JMP OUTPUT
JIAOHUAN:
	MOV AL,[SI]     
	MOV BL,[DI]     
	MOV [SI],BL     
	MOV [DI],AL     
	MOV AL,[SI+1]     
	MOV BL,[DI+1]     
	MOV [SI+1],BL     
	MOV [DI+1],AL     
	MOV AL,[SI+2]     
	MOV BL,[DI+2]     
	MOV [SI+2],BL     
	MOV [DI+2],AL     
	JMP JIXU
OUTPUT:
	LEA DX,STR0
	MOV AH,09H
	INT 21H 
    
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

结果图示例:

有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。

DATAS SEGMENT
    STR0 DB 'data',0AH,0DH     
    STR1 DB 'name',0AH,0DH     
    STR2 DB 'time',0AH,0DH     
    STR3 DB 'file',0AH,0DH     
    STR4 DB 'code',0AH,0DH     
    STR5 DB 'path',0AH,0DH     
    STR6 DB 'user',0AH,0DH     
    STR7 DB 'exit',0AH,0DH     
    STR8 DB 'quit',0AH,0DH     
    STR9 DB 'text',0AH,0DH,'$'     
    LEN EQU $-STR0     
    BUF DB 6   
    JISHU DB 00H   
    DB ? 
    DB 5 DUP(?)  ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    STRING DB 7 DUP(?);此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,ES:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
	MOV AX,STACKS    
	MOV ES,AX     
SHURU:
	LEA DX,BUF
	MOV AH,0AH
	INT 21H
	LEA DI,STRING
	LEA SI,BUF[2]
	MOV CX,4
	REP MOVSB
	
	
	LEA DI,STRING
	LEA SI,STR0
	CLD
	MOV CX,4
	;JMP JIAOHUAN
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
	LEA SI,STR1
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
    LEA DI,STRING
	LEA SI,STR2
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
    LEA DI,STRING
	LEA SI,STR3
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
    LEA SI,STR4
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
    LEA SI,STR5
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
	LEA SI,STR6
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
	LEA SI,STR7
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
	LEA SI,STR8
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	LEA DI,STRING
	LEA SI,STR9
	CLD
	MOV CX,4
	REPE CMPSB
	CMP CX,0
	JE YIDONG
	INC JISHU
	JMP SHUCHU
YIDONG:
	MOV AL,JISHU
	XOR AH,AH
	MOV BL,04H
	MUL BL
	MOV BL,AL
	MOV BX,SI
	MOV AX,LEN
	SUB AL,BL
	MOV CL,AL
	DEC SI
	DEC SI
	DEC SI
	DEC SI
JIAOHUAN:
	MOV AX,[SI+6]
	MOV [SI],AX
	INC SI
	DEC CX
	CMP CX,0
	JNE JIAOHUAN
SHUCHU:
	LEA DX,STR0	
	MOV AH,09H
	INT 21H
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

比如输入user后的结果:

有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序, 并在显示器上显示。

参考上述几个例子结合一下即可。

 

 

数据结构课程设计---图书管理系统 二 教学目的和基本要求: 了解并掌握数据结构和算法设计的方法,具备初步的独立分析和设计能力 初步掌握软件开发过程的问题分析分析、系统设计、程序编码和测试等基本方法和技能。 提高综合运用所学的理论知识和方法,独立分析和解决问题的能力。 训练用系统的观点和软件开发一般规范进行软件的开发,培养软件工作着所具备的科学工作方法和作风。 三.课程设计的要求 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么,限制的条件是什么。 逻辑设计:对问题中涉及到的操作对象定义相应的数据类 阅读详情

相关推荐

图书信息管理系统的设计与实现

图书信息管理系统的设计与实现 实验内容: 设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能: 1.根据指定图书个数,逐个输入图书信息; 2.逐个显示图书表中所有图书的相关信息; 3.能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置; 4.根据指定的待出库的旧图书的位置,将该图书从图书表中删除; 5.能统计表中图书个数; 6.实现图书信息表的图书去重; 7.实现最爱书籍查询,根据书名进行折半查找,要求使用非递

qq_53041150的博客 3816

字符串查找_汇编语言实验(二)——字符串查找

目录:空山新雨后:汇编语言学习笔记(目录)​zhuanlan.zhihu.com题目:1、从键盘输入两个字符串:A串,例如’software’;B串,例如’school of software engineering’2、判断A在B中是否存在,如果存在,输出“found”,反之,输出“not found”代码:datas segment string_a db 128 ...

weixin_39702316的博客 1354

x86汇编语言文本字符串查找替换程序

使用x86汇编语言编写的文本文件字符串查找与替换程序源码,内附详细程序设计和使用说明

字符替换-汇编语言

输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。 DATAS SEGMENT BUF DB 20,?,20 DUP('$') LEN EQU $-BUF WEIZHI DB 2 ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUM...

Fiverya的博客 4435

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

用汇编语言实现了字符串的查找替换,包括源程序和报告

汇编语言:分类统计字符个数

.386 .MODEL FLAT INCLUDE io.h ExitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD cr EQU 0dh Lf EQU 0ah .STACK 4096 .DATA

c语言实现关于顺序表的综合操作(创建、排序、查找、插入、删除、修改等操作)

关于线性表的综合操作 顺序表 @[TOC](文章目录) 前言 综合掌握顺序表的创建、排序、查找、插入、删除、修改等操作。 1. 基于顺序存储结构的图书信息表的创建和输出 定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。 输入 输入 n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 n+1 行是输入结束标

hellohi1的博客 4290

基础汇编程序(4)查找字符串中的指定字符

用串操作指令设计程序,实现在指定存储区(长度:100H)中寻找指定的匹配字符,当遇空格字符(20H)便结束,并显示查找结果,如提示“找到”或“未找到”。 要求:欲查找的指定字符从键盘输入。

数据结构 实验1:线性表的图书管理系统

大一下学校开设了数据结构实验课,在这里和大家分享一下我的实验报告。 目录实验目的实验内容题1:创建图书信息表(顺序存储)题2:排序(顺序存储)题3:修改价格(顺序存储)题4:查找(顺序存储)题5:创建图书信息表(链式存储)题6:排序(链式存储)题7:修改价格(链式存储)设计思路代码及注释运行实例题1:创建图书信息表(顺序存储)题2:排序(顺序存储)题3:修改价格(顺序存储)题4:查找(顺序存储)题5:创建图书信息表(链式存储)题6:排序(链式存储)题7:修改(链式存储) 实验目的 掌握线性表的顺序存储表示和

m0_51371779的博客 1万+

小白的MatSWMM使用心路(二)——用matlab修改INP文件参数/使用matlab查找txt内容并修改多行内容

说是修改inp,但是里面的内容大部分还是讲怎么修改txt的……(?)。包含如何找到需要的参数(关键字)位置,以及修改那个位置的txt这样的内容。希望能帮助大家吧……Matlab你要多出好用的功能啊!

weixin_44276743的博客 4530

DSSAT模型实战:从基础配置到气候情景模拟

本文详细介绍了DSSAT模型在农业模拟中的应用,从基础配置到气候情景模拟的全流程实战指南。通过土壤-植物-大气连续体的动态关系建模,DSSAT能精准预测作物产量,误差率低至8%。文章涵盖气象数据处理、土壤参数配置、管理措施调控等核心技巧,并提供了Python脚本和可视化方法,助力农业科研与决策。

weixin_29264201的博客 1014

算法理解(五)数组和字符串

数组作为一种基础的数据结构,因其高效的存储和访问方式,在早期计算机科学的发展中迅速占据了重要地位。尽管现代编程语言提供了更高级的数据结构(如链表、集合、哈希表等),但数组依然是许多应用中不可或缺的工具。其连续的内存布局、快速的访问时间使其在科学计算、图像处理和机器学习中依然发挥着重要作用。字符串的发展从早期的简单字符编码到如今支持全球语言的 Unicode 标准,伴随着计算机科学的发展而不断演进。

qq_51292909的博客 2044

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2813

预习日志---图书信息管理系统的设计与实现

实验任务和要求 明确实验任务和要求,理解相关算法实现方案,设计程序的主要功能,设计程序中所用的数据结构,给出算法的伪代码。

qq_57085165的博客 739

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

WW、forever的博客 265

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1661

图书信息管理系统

图书信息管理系统

weixin_45715877的博客 937

UI自动化控制PC端微信获取当前群聊的群友列表

在一个月前,某个群友在获取整个群的群友信息时遇到了一点问题: 对整个群进行群友数据获取经测试确实有点棘手,下面我将我的解决过程公布给大家。 基础教程详见: https://blog.youkuaiyun.com/as604049322/article/details/121391639 人工打开要抓取的群聊窗口后,首先获取微信窗口并点击聊天信息按钮: import uiautomation as auto auto.uiautomation.SetGlobalSearchTimeout(1) wechatWind

小小明-代码实体的专栏 3万+

Python知识点(史上最全)

Python期末考试知识点(史上最全) python简介 Python是一种解释型语言 Python使用缩进对齐组织代码执行,所以没有缩进的代码,都会在载入时自动执行 数据类型:整形 int 无限大 浮点型 float 小数 复数 complex 由实数和虚数组成 Python中有6个标准的数据类型:

weixin_43474701的博客 17万+

Altium Designer(AD24/25)如何在PCB设计阶段做阻抗匹配

目前阻抗匹配多直接有制版厂进行,PCB设计师在设计阶段可不关注阻抗设计,在加工阶段只需标注需要控制的阻抗线,制板厂即可按照要求对阻抗线进行调整和控制。但是对于设计师来讲掌握阻抗线的设计方法也是非常必要的。本文介绍Altium Designer(AD24/25)如何在PCB设计阶段做阻抗匹配。

fydar的博客 893

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1382

Python笔记——Python知识点(史上最全)

list.insert(index,obj) 将对象插入列表,其中的index,为插入的位置,原来该位置后面的元素包含该位置元素,都统一后移。机器语言:由于计算机内部只能接受二进制代码,因此,用二进制代码0或1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。汇编语言:实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用英文缩写的标识符,更容易识别和记忆。list.reverse() 反向列表中的元素(收尾互换),不代表倒序排列!一,通过下标去访问列表中的值 (可以用切片的方式去访问)

a25847a的博客 701

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

2021-06-20

数据结构程序设计

m0_57950466的博客 169

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据结构课设实验一:图书信息管理系统

图书信息管理系统 实验内容 设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能: (1) 根据指定图书个数,逐个输入图书信息; (2) 逐个显示图书表中所有图书的相关信息; (3) 能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置; (4) 根据指定的待出库的旧图书的位置,将该图书从图书表中删除; (5) 能统计表中图书个数; (6) 实现图书信息表的图书去重; (7) 实现最爱书籍查询,根据书名进行折半查找

TheoJus的博客 2911

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 字符替换-汇编语言
下一篇: 进制转换-汇编语言
耳语吖
博客等级 码龄9年 215粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值