福建农林大学_汇编实验六_字符处理程序设计
福建农林大学汇编实验课 统计字符串中空格的个数和字符串长度

1、统计字符串中空格的个数和字符串长度,字符串以’$’结束DSeg SegmentBuf db 'FDSHHFOEHWHLK$'cun db 0len db 0DSeg endsCSeg SegmentAssume cs:CSeg,ds:DSegStart: mov ax,DSegmov ds,axmov al, 0 ;存放空格个数lea bx, bufmov ah,0 ;存放字符串长度again: cmp bytr ptr[bx], '$'je exitcmp byte ptr [bx], 20h ;内存单元与立即数比较时要说明类型,这一句也可以成( mov dl, [bx] cmp dl, 20h) 20H是空格的ASC码jne ssinc alss: inc ahinc bxjmp againexit: mov len ahmov con , almov al,0mov ah,4chint 21hCSeg endsend Start2、Y=∑Ai*Bi ,i=1—8 , Ai, Bi为字节型无符号数,分别存于NUM1和NUM2开始的连续存储单元中,结果存于REST单元中,DSeg Segmentnum1 db 12,34,56,78,65,02,39,8num2 db 98,65,32,74,78,12,03,56result dw ?DSeg endsCSeg Segment para public 'CODE'Assume cs:CSeg,ds:DSegStart: mov ax,DSegmov ds,axmov cx,8mov bx,0mov si,offset num1mov di,offset num2 again: mov al,[si]mul byte ptr[di]add bx,axinc diinc siloop againmov result,bxmov al,0mov ah,4chint 21hCSeg endsend Start。
福建农林大学_汇编实验三_分支循环程序设计详解

福建农林大学计算机与信息学院实验报告系:计算机专业:计算机科学与技术年级:2014姓名学号:实验室号__ 计算机号实验时间:2016-10-29指导教师签字:刘庆连成绩:实验三分支循环程序设计1.实验目的(1)学习调试程序,查找逻辑错误;(2)学习分支语句的编程和调试;(3)学习循环语句的编程和调试。
2.实验内容1)有10个数,统计正数的个数,存放在变量M中中。
经过汇编后,形成EXE文件。
在DEBUG中,先用G=0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。
用单步执行命令T=0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL 寄存器中值的变化是否正确?(AL寄存器中存放正数的个数)DSEG SEGMENTMSG DB 4, -2, -6, 0, 5, 67, 8, -3, 5, 6M DB ?DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS: DSEGSTART: MOV AX, DSEGMOV DS, AXMOV CX, 10MOV AL, 0LEA SI, MSGL1: MOV BL, [SI]CMP BL, 0JBE NEXTINC ALNEXT: INC SILOOP L1MOV M, ALMOV AL, 0MOV AH, 4CHINT 21HCSEG ENDSEND START2)数据段中是一组无符号数,将最小数存放在M单元中。
按上题方法查找一处逻辑错误。
DSEG SEGMENTMSG DB 13, 15, 7, 25, 24M DB ?DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS: DSEGSTART: MOV AX, DSEGMOV DS, AXMOV CX, 4MOV AL, MSGMOV SI, OFFSET MSG+1L1: CMP AL, [SI]JB NEXTMOV AL, [SI]NEXT: LOOP L1MOV M, ALMOV AL, 0MOV AH, 4CHINT 21HCSEG ENDSEND START3)编程:在首地址为BUF开始的内存单元中存有10个字节数,求其中0的个数,并将结果存于RESULT中。
福建农林大学金山学院计算机科学实验报告

福建农林大学金山学院实验报告系(教研室):信息与机电工程系专业:计算机科学与技术年级:2011实验课程:Java语言程序设计姓名:学号:实验室号:计算机号:实验时间:指导教师签字:成绩:实验1一、实验目的1.熟悉eclipse集成开发环境。
2.掌握使用Scanner类从控制台获取输入3.使用JOptionPane从输入对话框获取输入,使用JOptionPane在消息对话框中显示输出结果的方法。
4.使用Math.random()产生随机数。
二、实验要求1.(2.7)编写程序,提示用户输入分钟数,然后显示这些分钟代表多少年和多少天。
为简化问题,假设一年有365天。
下面是一个运行示例:2.(3.18)如果某年可以被4整除而不能被100整除,或者可以被400整除,那么这一年就是闰年。
编写程序,使用输入对话框让用户输入一个年份,然后判断它是否是闰年,使用消息对话框显示结果。
下面是一个运行示例:3.(4.32)开发一个玩彩票的游戏,程序随机的产生一个两位整数的彩票(这两个整数是两个不同的数),提示用户输入一个两位数,然后按照下面的规则断定用户是否能赢:(1)如果用户的输入数匹配彩票的实际顺序,奖金为10000美金。
(2)如果用户输入的所有数字匹配彩票的所有数字,奖金为3000美金。
(3)如果用户输入的一个数字匹配彩票的一个数字,奖金为1000美金。
提示:产生第一个数,使用循环不断产生第二个数,直到它和第一个数不同为止。
下面是一个运行示例:三、实验原理1.熟悉eclipse集成开发环境。
2.掌握使用Scanner类从控制台获取输入3.使用JOptionPane从输入对话框获取输入,使用JOptionPane在消息对话框中显示输出结果的方法。
4.使用Math.random()产生随机数四、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、。
五、算法描述及实验步骤六、调试过程1.3七、实验结果1.11.21.3七、总结基本熟悉了eclipse集成开发环境。
福建农林大学金山学院实验报告

福建农林大学金山学院实验报告系(教研室):信息与机电工程系专业:电子科学与技术年级:2009实验课程:C语言程序设计姓名:郭荣生学号:092232006 实验室号:1#605_ 计算机号:G1 实验时间:2010.11.24 指导教师签字:成绩:实验7:函数一、实验目的和要求1.掌握定义函数的方法2.掌握函数实参与形参的对应关系,以及“值传递”的方式3.掌握函数递归调用的方法二、实验内容和原理1. 写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。
2. 编写一个函数,将一个字符串中的元音字母复制到另一个字符串中,然后输出。
3. 用递归调用的方法写一个求n! 的函数,在主函数中输入一个整数,输出该数的阶乘。
4. 函数编写,使其按给出的表达式计算分段函数。
|X|表示X的绝对值(利用 fabs( x )函数求浮点数x的绝对值)。
0.336x+0.015x2+3.541 x < 1fun(x)= 567 1 ≤ x ≤ 31.55(|10-x|+ 0.3) x > 3例如:fun( 0.3 ) = 3.643fun( 1.5 ) = 567.000fun( 5.15 )= 7.982三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C++ 6.0 。
四、算法描述及实验步骤1.输入以下程序进行编译、组建、执行程序,并输入一个数,按Enter键,输出结果:#include <stdio.h>void main(){int prime(int);int n;printf("\ninput an integer: ");scanf("%d",&n);if(prime(n))printf("\n %d is a prime.\n",n);elseprintf("\n %d is not a prime.\n",n);}int prime(int n){int flag =1,i;for(i=2;i<=n/2 && flag==1;i++)if(n%i==0)flag=0;return(flag);}2.输入以下程序进行编译、组建、执行程序,并输入一个字符窜,按Enter键,输出结果。
福建农林大学计算机与信息学院实验报告

福建农林大学计算机与信息学院实验报告实验(一)xcode初步一、实验目的和要求1.熟悉iOS开发应用环境二、实验内容和原理见项目一说明三、实验环境1.硬件环境:Mac os2.软件环境:xcode四、算法描述及实验步骤1.算法描述(可以用流程图、伪代码或源程序描述)2.实验步骤五、调试过程1.编译过程2.调试过程报错未设置rootViewController,设置完后成功。
六、实验结果七、总结通过这次实验,我知道了如何创建一个ios 工程,如何配置工程的环境(项目属性),向工程添加文件。
我知道了怎样导入一个头文件,创建一个对象,怎么使用对象的属性和方法等等,受益匪浅。
附录:self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];//设置windowCGSize mainScreenSize = [UIScreen mainScreen].bounds.size;//取得主屏幕的尺寸CGFloat messageW = 300;//设置messageLabel的宽CGFloat messageH = 50; //设置messageLabel的高CGFloat messageX = (mainScreenSize.width - messageW ) * 0.5;//设置messageLabel的xCGFloat messageY = (mainScreenSize.height - messageH ) * 0.5;//设置messageLabel的yUILabel * messageLabel = [[UILabel alloc]initWithFrame:CGRectMake(messageX, messageY, messageW, messageH)];//创建messageLabelmessageLabel.font = [UIFont systemFontOfSize:NJMessgeFont];//设置messageLabel的字体;messageLabel.text = @"Xcode Test";//设置文字messageLabel.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cxz"]];//设置文字颜色messageLabel.textAlignment = NSTextAlignmentCenter;//对齐方式[self.window addSubview:messageLabel];//将messageLabel添加到window的子控件中[self.window setBackgroundColor:[UIColor whiteColor]];//设置window的背景色self.window.rootViewController = [[UIViewController alloc]init];//设置根控制器[self.window makeKeyAndVisible];//展现windowreturn YES;。
农林大学计算机与信息学院实验报告

福建农林大学计算机与信息学院实验报告系(教研室):计算机系专业:计算机科学与技术年级:08级实验课程: 面向对彖程序设计姓名: 郑彬学号: 实验室号:一513 计算机号:实验时间:9月29 0 10月13日指导教师签字: 成绩:实验二类与对象(验证性)一、实验目的和要求al. pri nt ();cout<va2. avvendl; //ERROR :return 0;}2.调试下列程序。
f, sy3_2. cpp#in clude<iostream>using n amespace std;class TPoi nt{public:TPoi nt(i nt x, i nt y){X=x;Y=y;}TPoi nt (TPoi nt & p);、TPoi nt () {cout«,,Destructor is called' n,/;} int getx(){return X;}int gety (){return Y;}private:int X, Y;};TPoi nt::TPoi nt(TPoi nt &p){X二p. X;Y 二p.Y;}int main (){TPoi nt pl (4, 9);TPoi nt p2 (pl);TPoi nt p3二p2;cout<v,,p3= ("vvp3. getx () vv", "vvp3. gety () vv") \n"; return 0;#in clude<iostream> using n amespace std;class My public:My(i nt aa){A=aa;B~=aa;}static void fun (My m);private:int A;static int B;};void My::fun(My m){cout〈v"A=〃vvm.Avve ndl; cout<v"B二"vvm. Bvve ndl;int My::B=100;int main (){My P( 6),Q(8);My::fu n( P);Q. fu n (Q);return 0;}6.分析并调试程序,完成下列问题〃sy4_2・ cpp#in clude<iostream>#in clude<cmath> using n amespace std; class Mypublic:My (double i=0){x=y=i;}My(double i,double j) {x=i;y=j;}My(My&m) {x=m. x;y=m. y;} friend double dist(M y&a, M y&b); private:double x, y;};double dist (M y&a, M y&b)double dx=a・x-b.x;double dy=a.y-b.y;retur n sqrt(dx*dx+dy*dy);}int main()My ml, m2 (15), m3 (13, 14);My m4(m3);cout〈〈"The dista ncel:〃v〈dist(ml, m3)v<e ndl; cout〈〈"The dista nce2:〃v〈dist(m2, m3)v<e ndl; cout〈〈"The dista nce3:〃v〈dist(m3, m4)v<e ndl; cout〈〈"The dista nce4:〃v〈dist(ml, m2)v<e ndl; :return 0;⑴指出所有的构造函数,它们在本程序中分别起什么作用?⑵ 指出设置默认参数的构造函数。
微机原理与汇编语言实验指导书

微机原理与汇语言实验指导书信控学院测控系曹玉波孙明革2010-08-21目录Ⅰ.汇编语言部分 (1)实验一汇编基本操作 (1)实验二利用DEBUG调试程序调试程序段 (4)实验三分支程序实验 (7)实验四循环程序实验 (9)实验五子程序实验 (10)实验六字符处理程序实验 (13)实验七汇编语言综合设计实验 (16)Ⅱ. 微机原理及应用部分 (17)实验一8255A可编程并行口实验 (17)实验二8253A定时/计数器实验 (20)实验三使用8259A的单级中断控制实验 (23)实验四使用ADC0809的A/D转换实验 (29)实验五使用DAC0832的D/A转换实验 (32)实验六使用8251A的串行接口应用实验 (35)附录:DVCC-8086JHN实验平台性能特点 (39)Ⅰ.汇编语言部分实验一汇编基本操作实验目的1、熟悉DIR、MD、CD等DOS系统常用命令;2、熟悉在PC机上建立、汇编、链接、调试、和运行汇编语言程序的全过程;3、设计一个完整的顺序结构汇编语言程序,学习数据传送和算术运算指令的用法。
实验内容一、示例题:在屏幕上显示信息:“1A”其宏汇编语言程序如下:DA TA SEGMENT ;定义数据段x db 48 ;定义字节型变量x, x值存放于内存DATA段字节偏移量0处y db 65 ;定义字节型变量y, y值存放于内存DATA段字节偏移量1处DA TA ENDSCODE SEGMENT ;定义代码段(伪指令,编译器使用)ASSUME CS:CODE,DS:DATA(伪指令,编译器使用)1 ST: MOV AX,DATA ;数据段在内在重定位,以便程序能够正确引用的在数据段中2 MOV DS,AX ;定义的变量3 MOV DL,x ;x值即48D(或31H)-“1”的ASCII码存入寄器DL4 MOV AH,2 ;5 INT 21H ;调用2号DOS中断,用于显示DL中存放的字符6 MOV BX,017 MOV DL,[BX] ;通过BX寄存器间接址将y值存入DL(与第3行有相同的作用)8 MOV AH,29 INT 21H ;此段语句功能同上一段10 MOV AH,4CH11 INT 21H ;4C号DOS中断,功能是结束程序,将系统控制权返给操作系统CODE ENDS ;以下两句为伪指令,不占用内存,编译器使用END START实验步骤(假设MASM6汇编程序在D:\ MASM6目录下),方框框起的部分为键盘输入。
编译原理课程设计

福建农林大学计算机与信息学院计算机类课程设计报告课程名称:编译原理课程设计题目:语法分析器姓名:系:计算机专业:计算机科学与技术年级:学号:指导教师:职称:福建农林大学计算机与信息学院计算机类课程设计结果评定评语:成绩:指导教师签字:任务下达日期:评定日期:目录1 正则表达式 (1)1.1 正则表达式 (1)1.2 确定化(化简)后的状态转换图 (1)1.3 分析程序代码 (1)1.4 程序运行截图 (2)1.5 小结 (2)2 LL(1)分析 (3)2.1 LL(1)文法 (3)2.2 LL(1)预测分析表 (3)2.3 分析程序代码 (3)2.4 程序运行截图 (4)2.5 小结 (4)3 算符优先分析 (5)3.1 算符优先文法 (5)3.2 算符优先关系表 (5)3.3 分析程序代码 (5)3.4 程序运行截图 (7)3.5 小结 (7)4 LR分析 (8)4.1 LR文法 (8)4.2 LR分析表 (8)4.3 分析程序代码 (8)4.4 程序运行截图 (9)4.5 小结 (9)总结 (10)参考文献: (10)11 正则表达式1.1 正则表达式(a|b)*(aa|bb)(a|b)*1.2 确定化(化简)后的状态转换图1.3 分析程序代码#include<stdio.h>int exch[4][2]={1,2,3,2,1,3,3,3}; void judge(char *s) { int cur = 0, i = 0; while(s[i]) { if(s[i]-'a' > 1 || s[i] < 'a') break; cur=exch[cur][ s[i++] - 'a']; } if(s[i] == 0 && cur == 3) printf ("%s √ Right !\n\n",s); else printf ("%s × Wrong !\n\n",s); }void main() { char str[100]; while(1) {printf("有限自动机,判断是否符合 (a|b)*(aa|bb)(a|b)*\n"); printf("请输入字符串: "); gets(str); judge(str); } }abCBADababab1.4 程序运行截图1.输入正确的:2.输入错误的:1.5 小结刚开始做觉得比较生疏,总会犯些小错。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福建农林大学计算机与信息学院实验报告
系:计算机专业:计算机科学与技术年级:2014
姓名学号:实验室号__ 计算机号
实验时间:2016-10-29指导教师签字:刘庆连成绩:
实验六字符处理程序设计
1.实验目的
(1)熟悉串操作指令的功能与应用;
(2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。
2.实验内容
从键盘键入一个字符串,存入内存BUF为首地址的单元中,现要求统计其中含有小写字母的个数,并将统计结果以两位十进制数形式显示在屏幕上。
附参考源程序:
DATA SEGMENT
BUF DB 90 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DA TA
START: MOV AX, DA TA
MOV DS, AX
MOV CX, 0
LEA DI, BUF
AGAIN: MOV AH, 1
INT 21H
CMP AL, 0DH
JZ DONE
MOV [DI], AL
INC DI
INC CX
JMP AGAIN
DONE: MOV DL, 0DH
MOV AH, 2
INT 21H
MOV DL, 0AH
INT 21H
LEA SI, BUF
MOV CH, 0
MOV BL, 0
CLD
NEXT1: LODSB
CMP AL, 61H
JB NEXT2
CMP AL, 7AH
JA NEXT1
INC BL
NEXT2: LOOP NTXT1
MOV AL, BL
MOV AH, 0
MOV CL, 10
DIV CL
XCHG AH, AL
PUSH AX
MOV DL, AH
OR DL, 30H
MOV AH, 2
INT 21H
POP AX
MOV DL, AL
OR DL, 30H
INT 21H
MOV AH, 4CH INT 21H
CODE EDNS
END START
4. 实验结果
运行结果如下
分析:输入ABCDefg,其中有efg三个小写字母,然后输入两位16进制的03,结果与预想一致.
5. 总结
通过本次上机实验,熟悉了串操作指令的功能与应用,掌握了串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。
附录:
实现代码如下
DATA SEGMENT
BUF DB 90 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, 0
LEA DI, BUF
AGAIN: MOV AH, 1
INT 21H
CMP AL, 0DH
JZ DONE
MOV[DI], AL
INC DI
INC CX
JMP AGAIN DONE: MOV DL, 0DH
MOV AH, 2
INT 21H
MOV DL, 0AH
INT 21H
LEA SI, BUF
MOV CH, 0
MOV BL, 0
CLD
NEXT1: LODSB
CMP AL, 61H
JB NEXT2
CMP AL, 7AH
JA NEXT1
INC BL NEXT2: LOOP NEXT1
MOV AL, BL
MOV AH, 0
MOV CL, 10
DIV CL
XCHG AH, AL
PUSH AX
MOV DL, AH
OR DL, 30H
MOV AH, 2
INT 21H
POP AX
MOV DL, AL
OR DL, 30H
INT 21H
MOV AH, 4CH INT 21H
CODE ENDS
END START。