01实验一:字符串显示实验

合集下载

字符及字符串输入输出与顺序程序设计实验报告

字符及字符串输入输出与顺序程序设计实验报告

字符及字符串输入输出与顺序程序设计实验实验报告2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。

2、掌握顺序程序的设计方法。

3、进一步掌握调试工具的使用方法。

2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。

2、复习BCD码运算调整指令。

3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。

4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。

2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。

1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。

由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。

综上所述,需要考虑以下问题。

(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。

字符串的应用实验原理

字符串的应用实验原理

字符串的应用实验原理实验目的本实验旨在通过实际操作和分析,探究字符串在计算机科学中的应用原理,深入了解字符串的定义、操作和常见应用。

实验原理1. 字符串的定义字符串是一种包含字符序列的数据类型,可以包含任意排列的字符,例如字母、数字、标点符号等。

在计算机中,字符串通常以字符数组的形式储存,并使用某种特定的编码方式来表示字符。

2. 字符串的操作字符串可以进行多种操作,包括拼接、截取、替换、查找等。

以下是几个常见的字符串操作:•字符串拼接:将两个或多个字符串连接起来形成一个新的字符串。

•字符串截取:从一个字符串中截取出指定范围的子字符串。

•字符串替换:将字符串中指定的字符或子字符串替换为新的字符或子字符串。

•字符串查找:在字符串中查找指定的字符或子字符串,并返回其位置或索引值。

3. 字符串的应用字符串在计算机科学中有广泛的应用,以下是几个典型的应用场景:•文本处理:字符串可以用于处理文本数据,包括读取和分析文本文件、编写文本编辑器等。

•数据传输:在网络通信中,字符串经常用于传输数据,例如传输文件、发送邮件等。

•数据库操作:字符串在数据库中扮演重要的角色,用于存储和查询数据,例如SQL语句中的查询条件和结果。

•编程语言:字符串是几乎所有编程语言的基本数据类型,用于表示文本信息和操作字符串。

实验步骤1.创建一个字符串变量,并赋予其初始值。

2.执行字符串拼接操作,将两个字符串连接为一个新的字符串。

3.使用字符串截取操作,从拼接后的字符串中截取出指定范围的子串。

4.执行字符串替换操作,将指定的字符或子字符串替换为新的字符或子字符串。

5.使用字符串查找操作,查找指定字符或子字符串在字符串中的位置或索引值。

实验结果和分析经过以上实验步骤,我们可以观察到字符串的各种操作的效果。

通过拼接操作,我们可以将两个字符串连接为一个新的字符串,这在实际开发中常用于生成动态的文字信息。

通过截取操作,我们可以从一个较长的字符串中提取出所需的部分,这在处理大文本数据时很有用。

【2017年整理】字符串实验报告

【2017年整理】字符串实验报告

【2017年整理】字符串实验报告文中“字符串实验报告”是一个有关字符串的实验研究。

本篇报告将结合实际测试结果,概述字符串及其操作方面的实验进行,以此来获取字符串的重要性及其在今天的应用。

首先介绍字符串的概念。

字符串是由字符存储的一串字符的集合。

它可以包含字母、数字、空格和符号等,可用于标识、存储或输出信息。

任何编程语言中的每个字符串都在正确的语言环境中使用。

我们的实验分为两部分。

第一部分将包括字符串的定义、存储空间和字符串的操作。

第二部分将探讨字符串和其它数据类型之间的转换。

完成这项实验,首先,我们必须创建一系列字符串以表明字符串的存储位置和字符串的操作方法。

我们使用了C语言在Xcode集成开发环境中应用字符串的实验,以获得更好的理解。

通过编程,我们可以知道字符串的存储位置,它是存储在内存中,可以创建一个存储长度可以让字符串变长。

此外,我们还可以定义不同字符串长度的不同字符串,这就是定义字符串的内存位置。

此外,我们还学习了在C编程语言中字符串操作中使用的一些函数,如strcpy()、strcat()、strcmp()、strlen()、strrev()等。

第二部分实验探讨字符串和其它数据类型之间的转换。

我们采用的是C语言,新的函数会加入到实验中。

两种最常见的函数:atoi()和 itoa(),可以将一个字符串转换为int 类型,或者将一个int类型转换为字符串。

另外,函数 sprintf() 和 sprintf_s() 可以将字符串转换为其他格式,或者将其他格式转换为字符串。

通过实验,我们对字符串有了更深入的理解,学会了如何定义字符串,以及如何进行字符串操作。

此外,我们还探索了一些技巧,可以将字符串转换为数字或其他格式,使之成为今天应用程序中更广泛使用的操作。

经过实验,我们发现字符串在信息存储、处理和输出,以及数据转换方面有着重要的作用。

今后在编程过程中使用字符串的技术分析,能更准确地满足用户的实际需求,有助于提高软件质量及应用程序的性能。

c语言字符串处理实验报告

c语言字符串处理实验报告

字符串处理
创建时间:2016.5.26
四、源程序调试过程和(或)实验分析
1、一组测试数据及数据分析
全部组建后如下图:
组建结果为0error(s),0warning(s),组建成功。

一组测试数据如下:
调试程序过程为0error(s),0warning(s),程序本身没有问题。

根据这组测试数据,s1、s2有效字符个数正确,s2在s1出现的次数正确,删除s2后的s1(即s3)正确,连接s2后的s3正确,排序后的s1正确,故本程序编写正确。

2、遇到什么问题、学到什么、体会到什么
这次作为本学期最后一次实验作业也算是圆满了。

感觉起来实验5比实验3、4简单一些,刚开始编的时候也挺快就把大概写出来了,然后开始纠正一些小错误。

最难的一步应该算是删除s1中所有的s2吧,最开始编的时候应该是算法出错了,循环判断跟数组中指针的移动没怎么考虑到,所以根本达不到这个效果。

后来就翻翻书,多改几次,没几下就终于调试成功了,这个难题解决本实验其他部分就较为简单了。

总的来说,本实验不如前两次实验繁琐,但综合性较强,充分锻炼我们处理字符串的能力。

这个实验的比较顺的编写过程,算是我的完美收官了吧。

字符显示实验报告

字符显示实验报告

一、实验目的1. 熟悉计算机字符显示的基本原理。

2. 掌握字符显示编程的基本方法。

3. 了解字符显示在计算机图形界面设计中的应用。

二、实验原理计算机字符显示是计算机输出设备的基本功能之一。

它通过将字符编码转换为字符图形,并在屏幕上显示出来,实现信息的输出。

字符显示主要包括以下三个步骤:1. 字符编码:将字符转换为计算机可识别的编码,如ASCII码、GB2312等。

2. 字模转换:将字符编码转换为字符图形,即字模。

3. 显示输出:将字符图形输出到屏幕上。

三、实验内容1. 实验环境:Windows操作系统、C++编程环境。

2. 实验步骤:(1)创建一个新的C++项目。

(2)编写字符显示程序,实现以下功能:① 输入字符编码。

② 将字符编码转换为字符图形。

③ 在屏幕上显示字符图形。

3. 实验代码:```cpp#include <iostream>#include <windows.h>using namespace std;// 定义字模数组,存储字符图形unsigned char font[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 空格 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, // 字母A // ... 其他字符的字模数据};// 字符显示函数void DisplayChar(unsigned char ch) {int width = 8; // 字模宽度int height = 16; // 字模高度int i, j;// 创建位图BITMAP bmp;bmp.bmWidth = width;bmp.bmHeight = height;bmp.bmWidthBytes = width;bmp.bmBits = new BYTE[bmp.bmWidthBytes bmp.bmHeight];// 初始化位图for (i = 0; i < bmp.bmHeight; i++) {for (j = 0; j < bmp.bmWidthBytes; j++) {bmp.bmBits[i bmp.bmWidthBytes + j] = 0;}}// 绘制字符图形for (i = 0; i < height; i++) {for (j = 0; j < width; j++) {if (font[(ch - 32) height + i] & (0x80 >> j)) {bmp.bmBits[i bmp.bmWidthBytes + j] = 0xFF;}}}// 创建设备上下文HDC hdc = GetDC(NULL);HDC memDC = CreateCompatibleDC(hdc);// 创建位图句柄HBITMAP hBitmap = CreateCompatibleBitmap(hdc, width, height); SelectObject(memDC, hBitmap);// 绘制位图BitBlt(memDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY);// 清理资源DeleteObject(hBitmap);DeleteDC(memDC);ReleaseDC(NULL, hdc);// 输出字符cout << ch << endl;}int main() {unsigned char ch;cout << "请输入一个字符:";cin >> ch;DisplayChar(ch);return 0;}```4. 运行程序,输入一个字符,观察屏幕上是否显示对应的字符图形。

汇编实验实验一

汇编实验实验一

《汇编》实验报告一、实验内容1、试编制一程序,计算下列公式的值,并存放在FUN存储单元中。

F=[10*(x+y)-3*(z-1)]/22、试编制一程序,从键盘输入一字符串,并将该字符串从屏幕上显示出来。

例如:显示’hello computer!’二、实验目的及要求1、实验目的:1.了解熟悉DEBUG命令;2.熟悉数据传送指令、算术运算指令、逻辑指令、段寄存器装在的内容;3.掌握简单的汇编语言程序编写与调试。

2、实验要求:1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2.阅读数据传送指令、算术运算指令、逻辑指令、段寄存器装在的内容;3.用DEBUG的有关命令调试本实验中的求多项式结果程序段与从键盘输入一字符串并将该字符串从屏幕上显示出来的程序段。

三、设计分析第一题的设计分析:一、实现变量的三个步骤:①、在数据段中定义变量并赋予初值,为计算多项式做准备;②、利用算术指令ADD、SAL、SUB、INC、DEC、SAR实现多项式的运算。

二、计算变量与计算变量结果的存放:①、代码段第三条指令开始计算变量,倒数第三条指令存放变量的结果,即多项式的计算终止;②、变量的奇数倍用ADD与SAL指令完成,而偶数倍只需SAL指令完成;③、注意MOV指令的操作数不能同时为存储单元。

第二题的设计分析:一、实现字符串输入,需要分成三个步骤:①、在数据段中定义一个缓存区为存放字符串做准备;②、DOS系统功能调用0AH号子功能,(DS:DX)= 输入缓冲区首址;③、在输入的字符串尾加上‘$’字符,以作为输出结束条件。

二、实现字符串输出,则需要注意的问题是:①、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;②、输出回车换行可利用字符串:CR DB 0AH,0DH,’$’。

四、程序的调试过程第一题:第二题:五、运行结果分析第一题的运行结果分析:第二题的运行结果分析:六、附件:带注释的源程序第一题的源代码:TITLE EXAMPLE PROGRAMDATA SEGMENTVARX DW 123H ;定义X变量VARY DW 456H ;定义Y变量VARZ DW 789H ;定义Z变量FUN DW ? ;定义存放结果的存储单元DATA ENDSSTACK1 SEGMENT PARA STACKDW 20H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AX,VARX ;取变量XADD AX,VARY ;计算(X+Y)MOV BX,AXSAL AX,1 ;计算2*(X+Y)SAL AX,1 ;计算4*(X+Y)ADD AX,BX ;计算5*(X+Y)SAL AX,1 ;计算10*(X+Y)MOV BX,VARZ ;取变量ZDEC BX ;计算(Z-1)MOV CX,BXSAL BX,1 ;计算2*(Z-1)ADD BX,CX ;计算3*(Z-1)SUB AX,BX ;计算10*(X+Y)-3*(Z-1) SAR AX,1 ;计算[10*(X+Y)-3*(Z-1)]/2 MOV FUN,AX ;存放结果MOV AH,4CH ;终止用户程序,返回DOS INT 21HCODE ENDSEND START第二题的源代码:DATA SEGMENTN EQU 50MAXLEN DB N ;缓冲区字符的最大长度ACTLEN DB ? ;实际字符个数STRING DB N DUP(?) ;字符空间CR DB 0AH,0DH,'$'DATA ENDSSTACK1 SEGMENT PARA STACKDW 200H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXLEA DX,MAXLENMOV AH,0AHINT 21H ;字符串输入MOV AH,09H ;字符串输出LEA DX,CR ;回车换行INT 21HMOV BL,MAXLEN+1 ;取实际的字符长度MOV BH,0LEA SI,MAXLEN+2 ;取字符开始的首地址MOV BYTE PTR [SI+BX],'$' ;输出结尾要加上$ MOV DX,SI ;把开始存放字符的首地址赋给DX MOV AH,09H ;字符串输出INT 21HMOV AH,4CH ;终止用户程序,返回DOSINT 21HCODE ENDSEND START。

微机原理及接口技术实验报告 显示一个字符串

微机原理及接口技术实验报告 显示一个字符串

微机原理及接口技术实验报告实验项目名称:显示一个字符串实验日期:实验成绩:实验评定标准:一、实验目的1.熟悉汇编语言源程序上机的过程和方法2.掌握宏汇编程序MASM5.1的链接程序LINK3.6的使用方法。

3.了解DEBUG调试汇编语言程序的过程和方法。

二、实验器材电脑、微型计算机原理及应用实验指导书及教科书三、实验内容(实验过程)1.编辑源程序利用文本编辑工具,生成一个汇编程语言程序的纯文本文件ASM。

在汇编源程序中,一行只能写一条语句。

2.汇编源程序3.链接目标程序4.调试可执行程序四、实验程序data segmentmesage db" how do you do" ,0dh,0ah,24hdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axlea dx,mesagemov ah,09hint 21hmov ah,4chint 21hcode endsend start四、实验结果及分析分析:在汇编链接目标文件之后执行文件会出现“how do you do”。

若改变mesage db" how do you do" ,0dh,0ah,24h中的how do you do输入你想输出的字符串就可以了。

如果程序执行情况与预期不同,或执行时操作系统报告出错信息,就要通过调试工具进行动态调试,查找程序的问题。

查到问题后,又重回到第一步,重新开始,修改源程序问题。

贵州大学微机原理(汇编语言)实验报告_自编程序实验1_用表格形式显示字符

贵州大学微机原理(汇编语言)实验报告_自编程序实验1_用表格形式显示字符

实验课程名称微型计算机原理实验报告实验项目名称自编程序实验1 专业班级电子信息科学与技术08级1班学生姓名学号实验成绩指导教师签字理学院实验时间:2010年12月6日自编程序实验1 用表格形式显示字符1、题目:用表格形式显示ASCII字符2、实验要求:按15行*16列的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。

每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII码为0)隔开。

3、提示:(1)显示每个字符可使用功能号为2的显示输出功能调用MOV AH,2MOV DL,10H;字符从10H开始,每显示一个DL+1产生下一个字符INT 21H(2)显示空白符时DL=00H;(3)每行显示结束时需要显示回车(ASCII码为0DH)和换行(ASCII码为0AH),本行显示结束后可另起一行显示。

基本实验程序如下:;ASCII.ASMDA TA SEGMENTINFO DB '**This is a display ASCII codesheet.(10H-100H)**',0DH,0AH,'$'DA TA ENDSCODE SEGMENTASSUME DS:DA TA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA DX,INFOMOV AH,9INT 21HMOV DX,10HLINE: MOV CL,16CYCLE: MOV AH,2INT 21HINC DXCMP DX,100HJZ DONEPUSH DXMOV AH,2MOV DL,0INT 21HPOP DXDEC CLCMP CL,0JZ NEXTJMP CYCLE| 微型计算机原理实验报告 1NEXT: PUSH DXMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HPOP DXJMP LINEDONE: MOV AH,4CHINT 21HCODE ENDSEND START结果如图所示:加上表格线后的实验程序如下:;ASCII.ASMDA TA SEGMENTINFO DB 0DH,0AH,' **This is a display ASCII codesheet.(10H-100H)**',0DH,0AH,0DH,0AH,'$'DA T1 DB201,205,205,205,209,205,205,205,209,205,205,205,209,205,205,205,209,205,20 5,205,209,205,205,205,209,205,205,205,209,205,205,205,209,'$'DA T2 DB205,205,205,209,205,205,205,209,205,205,205,209,205,205,205,209,205,205,20 5,209,205,205,205,209,205,205,205,209,205,205,205,187,0DH,0AH,'$'DA T3 DB0DH,0AH,200,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205, 2微型计算机原理实验报告|207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,'$'DA T4 DB205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,188,'$'DA TA ENDSCODE SEGMENTASSUME DS:DA TA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA DX,INFO ;显示提示信息MOV AH,9INT 21HLEA DX,DAT1 ;显示表格的顶线INT 21HLEA DX,DAT2 ;显示表格的顶线INT 21HMOV DX,10HLINE: PUSH DX ;对DL中的数据保护MOV DL,186 ;显示表格最左边边线MOV AH,2INT 21HMOV DL,0INT 21HPOP DX ;返回DL中的数据MOV CL,16MOV CH,16CYCLE: INT 21H ;显示DL里存的ASCII码字符INC DX ;DX自加,指向下一个字符CMP DX,100H ;与100H比较,看是否是显示完毕JZ DONE ;是,结束程序DEC CHCMP CH,0JZ NEXT0CALL DISP ;调用子程序,显示间隔线NEXT0: DEC CL ;CL自减,用于16个字符显示完毕后换行CMP CL,0JZ NEXTJMP CYCLENEXT: PUSH DXMOV DL,0INT 21HMOV DL,186 ;显示表格最右边边线INT 21H| 微型计算机原理实验报告 3MOV DL,0DH ;回车换行INT 21HMOV DL,0AHINT 21HPOP DXJMP LINEDISP PROCPUSH DXMOV DL,0INT 21HMOV DL,179INT 21HMOV DL,0INT 21HPOP DXRETDONE: MOV DL,0INT 21HMOV DL,186INT 21HLEA DX,DAT3MOV AH,9INT 21HLEA DX,DAT4INT 21HMOV AH,4CHINT 21HCODE ENDSEND START结果如图所示:4微型计算机原理实验报告|| 微型计算机原理实验报告 5。

字符串实验报告

字符串实验报告

数据结构字符串实验班级:计算机应用技术10-1 学号:10602101048 姓名:姚福刚一、实验目的及要求:掌握有关字符串的基本操作和存储结构,并编写相应的基本操作算法。

二、实验内容:(1) 求字符串的长度算法(2) 求字符串的拷贝算法(3) 字符串的连接算法(4) 字符串的比较算法(5) 字符串的逆置算法(6) 用strtok( )函数分离单词。

(选做)三、实验准备:1) 计算机设备;2) 程序调试环境的准备,如VC6或WIN-TC环境;3) 实验内容的算法分析与代码设计准备。

四、函数实现1、长度函数int strlen(char *p){ int count=0;while(*p!='\0'){ count++;p++;}return count;}2、拷贝函数void scopy(char *s1,char*s2) /* s1<---s2 */ { int len,i;len=strlen(s2);for(i=0;i<len;i++)s1[i]=s2[i];s1[i]='\0';return ;}3、连接函数void strcat(char *s1,char *s2){ int len1,len2;len1=strlen(s1);scopy(s1+len1,s2);return ;}4、比较函数int trcmp(char *s1,char *s2){ int i=0;while(s1[i]==s2[i]){ if(s1[i]=='\0') return 0;i++;}return (s1[i]-s2[i]);}5、逆置函数void ReverseStr(char *s){ int i,j;char t;for(i=0,j=strlen(s)-1;i<j;i++,j--){ t=s[i];s[i]=s[j];s[j]=t;}}五、测试(在主函数中调用函数测试功能)#include<stdio.h>#include<conio.h>#define MAXSIZE 80int main(void){ char p1[]="",p2[]="";printf("\n\t (1)p1->length=%d p2->length=%d\n",StrLen(p1),StrLen(p2)); Strcat(p1,p2);printf("\n\t (2)p1=%s\n",p1);printf("\n\t (3)the result is %d\n",Strcmp(p1,p2) );ReverseStr(p1);printf("\n\t (4)p1=%s\n",p1);getch();return 0;}实验截图:六、心得体会通过这次实验让我了解了什么是字符串,他是一种特殊的线性表,并了解有关字符串的基本操作和存储结构,并编写相应的基本操作算法。

实验一 编程实现键盘输入和显示

实验一  编程实现键盘输入和显示

实验一 编程实现键盘输入和显示循环提示由键盘输入一个字符,若为自己姓的首字母(大小写均可),则显示…Myname is:XXX(自己的姓名拼音);若为自己学号的末位数字,则显示‟ My ID numberis:XXX(自己的学号);若输入其他字符则退出程序。

(三种情况都要验证至少一次截图附在实验报告中。

)流程图如下:YNY NNY开始 提示输入字母 进入循环体 是否为H 或h ? 输出:Heguojiu 输出:1207080603113 是否为“3”输出: Quit the program 结束循环代码如下:stack segment stack 'stack'dw 32 dup(0) ;此处输入堆栈段代码stack endsdata segmentBUF1 DB0DH,0AH,'Please input a character: $'NAM DB 0DH,0AH,'My name is :Heguojiu $'ID DB 0DH,0AH,'MY ID number is:1207080603113$'BUF2 DB 0DH,0AH,'Quit the program $'data endscode segmentstart proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axMOV CX,4AGAIN:MOV DX,OFFSET BUF1MOV AH,9INT 21H ;显示提示字符串'Please input a character: $'MOV AH,1 ;输入并显示一个字符INT 21HCMP AL,'H';判断是否为“H”JZ MY_NAME ;yes,则跳转到MY_NAMECMP AL,'h'JZ MY_NAME ; CMP CX,1CMP AL,'3';No,判断是否为“3”JZ MY_ID ;是,跳转到MY_IDMOV DX, OFFSET BUF2 ;否,显示结束字符串'Quit the program ' MOV AH, 9INT 21HLOOP AGAINRETMY_NAME:MOV DX,OFFSET NAM ;显示名字MOV AH,9INT 21HLOOP AGAINRETMY_ID: ;显示学号MOV DX,OFFSET IDMOV AH,9INT 21HLOOP AGAINRETstart endpcode endsend start实验结果:实验分析或经验总结:通过此次实验,我可以知道完整的汇编程序运行结果。

字符串实验报告心得

字符串实验报告心得

在进行字符串实验报告时,以下是一些心得和建议:清晰的实验目标:在撰写实验报告之前,确保你对实验的目标和研究问题有清晰的理解。

这有助于你在报告中提供准确的描述和分析。

结构化报告:一个良好结构化的实验报告可以使读者更容易理解你的实验设计、方法和结果。

确保报告包含以下部分:引言(背景和目的)、实验设计(包括样本和工具)、实验步骤、结果和讨论(分析结果、提供结论)。

准确的描述和量化结果:在结果部分中,详细描述实验结果并使用适当的统计工具进行量化分析。

这可以增加结果的可信度和可重复性。

图表和图像:使用图表和图像来直观地展示实验结果。

确保图表和图像标注清晰,包括坐标轴标签、图例和标题。

讨论和分析:在讨论部分中,对实验结果进行深入分析,并与相关文献进行比较和讨论。

解释结果的意义,提出可能的解释,并讨论实验的局限性和改进方向。

结论和总结:在结论部分中,简洁地总结实验的主要发现和结果。

提出对未来研究的建议,并强调实验的重要性和影响。

引用参考文献:确保在报告中引用使用到的参考文献。

这可以增加你报告的可信度,并为读者提供进一步阅读和了解的资源。

语言和风格:使用清晰、简明的语言撰写报告,避免使用模糊和含糊不清的表达。

注意语法、拼写和标点符号的正确性,使报告易于阅读和理解。

反思和总结:最后,在报告中加入你个人对实验的反思和总结。

包括你对实验过程和结果的感受、遇到的挑战以及可能的改进措施。

通过遵循上述建议,你可以撰写出一个有条理、准确且易于理解的字符串实验报告。

记住,实验报告不仅仅是对实验结果的描述,更是一个展示你的研究能力和科学方法的机会。

python程序设计字符串类型实验报告

python程序设计字符串类型实验报告

python程序设计字符串类型实验报告Python程序设计字符串类型实验报告1. 引言字符串是Python中常用的数据类型之一,它用于存储和操作文本数据。

本实验报告将介绍字符串的基本概念、常用操作方法以及应用场景,帮助读者全面了解和掌握字符串类型的使用。

2. 字符串的定义和表示字符串是由字符组成的序列,可以使用单引号、双引号或三引号来表示。

例如,'hello'、"world"和'''Python'''都是字符串的表示形式。

在字符串中可以包含字母、数字、特殊字符和空格等。

3. 字符串的基本操作3.1 字符串的连接可以使用加号运算符将两个字符串进行连接,例如"hello" + "world"的结果是"helloworld"。

另外,还可以使用乘号运算符实现字符串的重复连接,例如"hello" * 3的结果是"hellohellohello"。

3.2 字符串的索引和切片字符串可以通过索引获取指定位置的字符,索引从0开始。

例如,字符串"Python"中的第一个字符是'P',可以通过"Python"[0]来获取。

除了索引外,还可以使用切片操作获取子字符串。

例如,"Python"[1:4]的结果是"yth",表示获取索引为1到3的字符。

3.3 字符串的长度可以使用len()函数获取字符串的长度,例如len("Python")的结果是6。

3.4 字符串的格式化字符串的格式化可以将变量的值插入到字符串中的占位符中。

常用的格式化方法有两种:使用百分号(%)和使用format()函数。

例如,"Hello, %s!" % "world"的结果是"Hello, world!",而"Hello, {}!".format("world")的结果也是"Hello, world!"。

从键盘输入数据并显示实验

从键盘输入数据并显示实验

实验二从键盘输入数据并显示实验一、实验目的1.掌握键盘输入字符的方法和十六进制数字字符的ASCII码转换为二进制数的原理。

2.掌握子程序定义和调用的方法。

3.掌握循环移位指令的用法和无符号数比较大小的方法。

二、实验内容1. 从键盘上输入4位十六进制数,将其转换为16位二进制数并在显示器上显示出来。

要求输入的数字字符串以回车键结束。

若按下的键不是十六进制数字字符,则显示出错信息。

2. 从键盘上输入4位十六进制数(如果输入的数字超过4个,则以最后输入的4个为准),将其转换为16位二进制数并在显示器上显示出来。

要求输入的数字字符串以回车键结束。

若按下的键不是十六进制数字字符,则显示出错信息。

3.应该Masm for Windows 集成实验环境调试运行并讲解程序,并用屏幕录像软件录制全过程,全程开启摄像头,以MP4G格式上传,完成实验报告的书写。

三、实验程序和结果CRLF MACROMOV AH,02H ;显示器输出MOV DL,0DH ;换行INT 21HMOV AH,02HMOV DL,0AH ;回车INT 21HENDMDATA SEGMENT ;输入MARK DB ?MESSAGE DB 'PLEASE INPUT THEWORDS!',0DH,0AH,'INPUT:$' ; 输入字符串提示ERROR DB 0DH,0AH, 'NO MATCH!',0DH,0AH,'$' ;输入错误提示DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?) ;定义32个空字TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK ;表明程序代码段与段地址之间的关系START: MOV AX,DATAMOV DS,AX ;将段地址送入段地址寄存器MOV ES,AXMOV SP,TOPHEAD: CRLF ;输出换行回车MOV MARK,0MOV AH,09H ;字符串显示LEA DX,MESSAGEINT 21H ;显示提示输入的信息CALL GETNUM ;接收键入数值送DXCMP MARK,01HJE HEAD ;输入错误,跳转到HEAD重新输入MOV CX,0010H ;16位;循环次数为16MOV BX,DX ;把DX的数据放入BX中,显示777 TTT: ROL BX,1 ;循环左移1位MOV DL,BLAND DL,01H ;屏蔽掉高7位ADD DL,30H ;将二进制转码为ASCII码输出MOV AH,02H ;字符输出INT 21H ;显示二进制位对应的ASCII字符LOOP TTTJMP HEADFINI: MOV AX,4C00H ;终止当前程序,返回调用程序INT 21H ;返回DOSGETNUM PROC NEAR ;子程序,接收键入数值送DXPUSH CXXOR DX,DX ;清零GGG: MOV AH,01HINT 21H ;键盘输入CMP AL,0DHJE PPP ;输入为回车,则进行转换CMP AL,20HJE FINI ;输入为空格,则退回DOSCMP AL,30HJB KKK ;输入有误,显示ERRORSUB AL,30HCMP AL,0AH ;判断是否为0~9JB GETSCMP AL,11HJB KKKSUB AL,07HCMP AL,0FH ;判断是否为A~ZJBE GETSCMP AL,2AHJB KKKCMP AL,2FHJA KKKSUB AL,20H ;判断是否为a~zGETS: MOV CL,04 ;转换SHL DX,CL ;左移四位,第四位0补齐XOR AH,AH ;AH清零ADD DX,AX ;把输入的数据放入DX中JMP GGGKKK: MOV AH,09H ;显示字符串MOV DX,OFFSET ERRORINT 21HMOV MARK,01H ;将MARK置1PPP: PUSH DX ;压入堆栈CRLF ;回车换行POP DX ;弹出堆栈POP CXRETGETNUM ENDPCODE ENDSEND START(页面不足请附页)四、实验总结和体会本实验做键盘输入并屏幕显示将十六进制转换成等值的二进制数,我们用DOS功能,利用软件中断指令INT 21H实现了键盘的输入显示器的输出以及返回到DOS的命令,并通过判断将正确输入的4位十六进制数转换为二进制数显示到屏幕上,编写程序时我们要注意一点,DOS环境下是不允许汉字输入的,通过本次实验的学习掌握并了解了接收键盘数据的方法,接收到的数据以ASCII码进行放,并了解了将键盘数据显示时需要转换为ASCII码的原理。

字符串实验报告

字符串实验报告

一、实验目的1. 理解字符串的基本概念和操作。

2. 掌握字符串的常用函数及其应用。

3. 熟悉字符串的查找、替换、截取等操作。

4. 培养实际编程解决问题的能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 字符串的创建与赋值2. 字符串的常用函数3. 字符串的查找与替换4. 字符串的截取与拼接5. 字符串的遍历与遍历操作四、实验步骤1. 字符串的创建与赋值```pythonstr1 = "Hello, world!"str2 = 'Python is awesome.'```2. 字符串的常用函数```python# 获取字符串长度len(str1)# 获取字符串索引str1[0]# 获取字符串切片str1[1:5]# 获取字符串中子字符串的索引str1.find("world")# 获取字符串中子字符串的索引(从指定位置开始)str1.find("world", 6)# 获取字符串中子字符串的索引(从指定位置开始,直到指定位置结束)str1.find("world", 6, 11)# 检查字符串是否以指定子字符串开头str1.startswith("Hello")# 检查字符串是否以指定子字符串结尾str1.endswith("world")# 将字符串转换为小写str1.lower()# 将字符串转换为大写str1.upper()# 将字符串转换为首字母大写str1.capitalize()# 判断字符串是否全部由字母组成str1.isalpha()# 判断字符串是否全部由数字组成str1.isdigit()# 判断字符串是否为空str1.isempty()```3. 字符串的查找与替换```python# 查找子字符串str1.find("world")# 替换子字符串str1.replace("world", "Python")# 替换所有匹配的子字符串str1.replace("world", "Python", 1) ```4. 字符串的截取与拼接```python# 截取字符串str1[1:5]# 拼接字符串str1 + " " + str2```5. 字符串的遍历与遍历操作```python# 遍历字符串for char in str1:print(char)# 遍历字符串的索引for i in range(len(str1)):print(str1[i])# 遍历字符串的索引和值for i, char in enumerate(str1):print(i, char)```五、实验结果与分析1. 字符串的创建与赋值实验结果:成功创建了两个字符串str1和str2。

汇编语言程序设计—字符与数据的显示

汇编语言程序设计—字符与数据的显示

实验三汇编语言程序设计——字符与数据的操作(二)
一、实验目的:
1.掌握显示提示信息的方法及接收键盘输入信息的方法,完成字符串匹配程序。

2.掌握字符和数据的显示方法,完成字符和数据的显示程序。

3.了解小写字母和大写字母在计算机内的表示方法,并掌握如何进行转换,完成将键盘输入的小写字母转换成大写字母。

二、实验内容:
1. 编写程序,先显示信息“INPUT STRING ,THE END FLAG IS $”,再接收字符。

如为非数字字符即非“0——9”,则计数器加1,并显示字符。

如为数字,则直接显示,但不计数。

2.编写程序,接收键盘字符(以^-C为结束),并将其中的大写字母转变为小写字母,然后进行显示。

三、实验原理
1.DB、 DUP、 EQU等伪指令的功能以及使用格式;INT 21H 的09H子功能的功能、工作情况以及使用格式;INT 21H的0AH子功能的功能、工作情况以及使用格式;串扫描指令SCASB的功能以及使用格式;入栈、出栈指令PUSH 、POP的使用情况。

2.程序跳转指令JMP的功能及用法;比较指令CMP 、JB、 JBE 等指令的功能及用法;循环移位指令ROL的用法及功能;逻辑指令AND的功能及用法。

3.比较指令JA的功能及用法;减法指令SUB的功能及用法。

四、程序框图
五、实验步骤
1.按实验要求编写程序
2.汇编连接程序生成可执行文件 3.执行程序观察结果。

实验四 字符显示实验 实验报告

实验四 字符显示实验 实验报告

字符显示实验实验报告一、实验目的1. 了解液晶显示的基本原理2. 掌握如何通过单片机对LM016L显示模块的控制二、实验内容通过AT89C52单片机控制显示模块(液晶模块可以分别在上下显示两行不同的字符串)输出四段不同的字符,四段字符的显示通过四个外部的按钮控制。

按钮编号对应单片机接口显示的字符串显示效果1 P2.0 This is line12 P2.1 This is line23 P2.2 This is line34 P2.3 This is line4三、实验原理1. 通过P2口实现响应外部按钮控制原理:控制按钮的两端,其中一段连接单片机的P2口,另一端接地。

当按钮没有被按下时,按钮连接单片机一端相当于悬空(即高电平);当按钮被按下时,P2口相当于直接接地(即低电平),由此,可以通过判断P2的高低电平来判断某个按钮是否按下,继而实现对外部按钮的相应。

2. LM016L显示模块的初始化指令:①清屏指令:01H②显示模式设置:38H(设置为16x2显示,5x7点阵,8位数据接口)③0 0 0 0 1 D C BD:显示开关(1;B:光标是否闪烁(1有效)0 0 0 0 0 1 N SN:如果N为1S=1,N=1时,写入字符后整屏左移;S=0时,写入一个字符后整屏不移动。

3. LM016L的寄存器选择:通过RS,RW两个寄存器的选择位,控制数据写入或者读取的寄存器。

RS RW 操作说明0 0 写操作指令(写入指令寄存器)0 1 读取busy Flag和位址计数器1 0 写字型(写入数据寄存器)1 1 从数据寄存器读取数据四、实验过程1. 连接好单片机及其外围设备的连线2. 汇编程序RS EQU P2.5 MOV R2, ARW EQU P2.6 CALL WriteConE EQU P2.7 MOV R1, #00HORG 0000H Loop1: MOV A, R1LJMP Init MOVC A, @A+DPTRORG 0100H MOV R2, A Init: MOV R2, #01H CALL WriteDat CALL WriteCon INC R1MOV R2, #38H CJNE A, #00H, Loop1CALL WriteCon RETMOV R2, #0FH WriteCon: MOV P0, R2CALL WriteCon CLR RSMOV R2, #06H CLR RWCALL WriteCon CLR EMOV R2, #80H CALL DelayCALL WriteCon SETB EKey: JNB P2.0, Line1 RETJNB P2.1, Line2 WriteDat: MOV P0, R2JNB P2.2, Line3 SETB RSJNB P2.3, Line4 CLR RWLJMP Key CLR E Line1: CALL ClrLine1 CALL DelayMOV R3, #80H SETB EMOV DPTR, #String1 RETCALL WriteLin WriteDatS: MOV P0, R2LJMP Key SETB RS Line2: CALL ClrLine2 CLR RWMOV R3, #0C0H CLR EMOV DPTR, #String2 CALL DelaySCALL WriteLin SETB ELJMP Key RETLine3: CALL ClrLine1 ClrLine2: MOV R2, #0C0H MOV R3, #80H CALL WriteConMOV DPTR, #String3 CALL ClrProCALL WriteLin RETLJMP Key ClrLine1: MOV R2, #80H Line4: CALL ClrLine2 CALL WriteCon MOV R3, #0C0H CALL ClrProMOV DPTR, #String4 RETCALL WriteLin ClrPro: MOV R0, #20LJMP Key ClrLoop: MOV R2, #00H WriteLin: MOV A, R3 CALL WriteDatSDJNZ R0, ClrLoopRET DelayS: MOV R1, #0FHDelay: MOV R3, #0FFH DJNZ R1, $Loop: MOV R2, #0FFH RETDJNZ R2, $ String1: DB “this is line1”, 00HDJNZ R3, Loop String2: DB “this is line2”, 00HRET String3: DB “this is line3”, 00H DelayS: MOV R1, #0FH String4: DB “this is line4”, 00H DJNZ R1, $ ENDRET五、实验结果单片机在启动过程中,会将LCD显示模块进行初始化操作,初始化结束以后,LCD的光标会在第一行的最左边闪烁。

字符及字符串的输入输出实验报告-文少轩

字符及字符串的输入输出实验报告-文少轩

字符及字符串的输入输出实验报告西安交通大学文少轩一、实验目的1.掌握简单的DOS系统功能调用;2.掌握在PC机上建立,汇编,链接,调试和运行8086汇编语言程序的全过程。

二、实验设备IBM-PC 微型计算机一台三、实验要求1. 复习DOS系统功能调用的1,2,9,10号功能;2. 认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立,汇编,连接,执行,调试的全过程。

四、实验内容及数据记录实验内容一:字符的输入和输出从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母。

例如输执行结果:*实验习题:如果要在程序中加入显示提示字符串“Please input a lowercase letter”和“The inverse letter is:”,应如何修改程序?程序代码:执行结果:实验内容二:字符串的输入和输出从键盘输入一个字符串(假定键盘缓冲区的名字为STR),将其传送给INFO变量后,再在屏幕上显示出来。

汇编、连接:执行结果:*实验习题:如果要在程序中加入显示提示字符串“Please input a string”和“The string you input is:”,应如何修改程序?程序代码:DSEG SEGMENTINTIP DB 'Please input a string',0DH,0AH,'$'汇编、连接:执行结果:五、实验小结1.DOS系统功能调用的10号功能对键盘缓冲区格式地要求:第一个字节为输入字符串的最大长度,第二个字节用来存放实际输入字符串的长度,从第三个字节开始存放实际输入的字符串的ASCII码;2.DOS系统功能中的1、2、9、10号功能的输入输出参数及存放的寄存器关系如下表:3.字符和字符串的输入输出的实现都需要调用相应功能号,并产生相应的中断,即先给AX赋值所需的功能号,然后产生21H中断,输入的单字符会存放在AL中,输出单字符前需要把字符ASCII码存放到DL中,输入输出字符串,需要先把字符缓冲区首址存放到DS:DS寄存器中。

汇编实验一显示字符串

汇编实验一显示字符串

汇编实验一显示字符串标签:汇编程序开始的时候有点畏惧写汇编的程序,因为汇编的程序有太多的指令需要记忆了,同时这个语言有点让人难以理解,但是经过我的一番复习之后,发现其实也并不是那么难,正所谓说:只要下功夫,没有事是不能成功的。

由于是第一次写我自己的汇编程序,所以今次我特别详细的写下的编程过程。

我的整个开发过程如下:首先要理解汇编编程的过程:一,建立.asm文件,将masm.exe,debug.exe,link.exe复制到与源程序同一个文件目录下。

打开.asm文件,在里面编写好程序二,编写好程序之后,要检查程序有没有问题,这里要打开dos界面,进行对程序编译,cd是打开文件夹的意思,masm命令就是用来编译文件了,我建立的是1.asm文件,所以直接打上masm 1.asm就可以编译了,假如有错误系统与直接提示错误的地方和行,根据提示就可以进行修改了。

三,link 1.obj就可以生成.exe文件了。

直接运行exe文件文件就可以看到你所需要的结果,例如本实验就是显示字符串了。

讲完如何进行汇编写程序,编译程序和生成可执行文件,下面我来讲讲汇编程序具体怎么写,其实写汇编程序有一定的格式,这些格式一般都是固定的不需要修改直接套用就可以了。

汇编的一些固定格式:;sample program display message;注释行stack segment para stack'stack';定义堆栈段db 1024 dup(0);在存储器的某个区域建立一个堆栈区stack ends data segment;定义数据段message db'This is asample program.';在存储器中存放供显示的数据db 0dh,0ah,'$'data ends code segment;定义代码段assume cs:code,ds:data,ss:stack start proc far;将程序定义为远过程程序开始。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

... ...
MOV AH,4CH INT 21H CODE ENDS END START
DATA SEGMENT STR1 DB 'Hello! Welcome to JiuJiang University!',13,10,'$' STR2 DB 'ZHABING$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV DX,OFFSET STR1 MOV AH,09H INT 21H MOV DX,OFFSET STR2 MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START
(方法一)
DATA SEGMENT STR1 DB 'Hello! Welcome to JiuJiang University!',13,10 STR2 DB 'ZHABING$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
汇编语言程序的汇编过程
编辑程序 Edit.exe
Prog.asm 文件
汇编程序 Masm.exe
Prog.obj 文件
Prog.exe 文件
连接程序
Link.exe
第四节 汇编语言的编程环境
一、源文件编辑
二、源文件汇编
汇编程序的主要功能
汇编程序分两种: (1)基本汇编(ASM.EXE) (2)宏汇编(MASM.EXE) 宏汇编功能比较强。
MOV DX,OFFSET STR1 MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START
(方法二)

1. 2.
3.
4.
检查源程序; 测出源程序中的语法错误,并给出出错信 息; 产生目标文件(.OBJ),并可给出列表文 件(同时列出汇编语言源程序和机器语言 目标程序的文件,称之为.LST文件)和交 叉索引文件(列出程序中使用的符号、变 量和标号以及引用情况,称之为.CRF文 件)。 展开宏指令。

连接示意图:
调用LINK.EXE
.LST .OBJ 连接 .EXE
可选
.CRF
.MAP
.LIB
四、调试与运行
实验一:字符串显示实验
实验目的要求:
1、熟练掌握汇编语言的编程环境及汇编语言程序的上机 基本步骤与调试方法。 2、掌握汇编语言源程序的基本组成结构。 3、掌握9号DOS功能调用的特点和应用。 4、学习汇编语言程序设计的基本方法和技能。
DATA SEGMENT STR1 DB 'Hello! Welcome to JiuJiang University!',13,10,'$' STR2 DB 'ZHABING$' DATA ENDS ... ...
DATA SEGMENT STR1 DB 'Hello! Welcome to JiuJiang University!',13,10,'$' STR2 DB 'ZHABING$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
汇编示意图
调用 MASM.EXE
.ASM
汇编

.OBJ .LST
可选
.CRF
三、连接
连接程序

汇编之后生成的OBJ文件必须经过链接过程, 才能成为扩展名.EXE的可执行文件。 链接的过程就是调用连接程序(LINK.EXE), 对OBJ文件进行定位、链接,最后生成扩展名 为EXE的可执行文件。如果需要,也可生成 MAP文件和LIB文件。
相关文档
最新文档