参照C语言版本,用Java写的语义分析程序,采用递归下降分析法,对算术表达式、赋值语句进行语义分析并生成四元式序列。
在实验三递归下降分析法的基础上改的。
用Eclipse做的,有运行结果截图。
2023/11/10 8:58:10 12KB 编译原理 递归下降 语义分析 Java
1
华中科技大学汇编实验源代码及实验报告2.1任务1.《80X86汇编语言程序设计》教材中P31的1.14题。
要求:(1)直接在TD中输入指令,完成两个数的求和、求差的功能。
求和/差后的结果放在(AH)中。
(2)请事先指出执行指令后(AH)、标志位SF、OF、CF、ZF的内容。
(3)记录上机执行后的结果,与(2)中对应的内容比较。
(4)求差运算中,若将A、B视为有符号数,且A>B,标志位有何特点?若将A、B视为无符号数,且A>B,标志位又有何特点?2.2任务2.《80X86汇编语言程序设计》教材中P45的2.3题。
要求:(1)分别记录执行到“MOVCX,10”和“INT21H”之前的(BX),(BP),(SI),(DI)各是多少。
(2)记录程序执行到退出之前数据段开始40个字节的内容,指出程序运行结果是否与设想的一致。
(3)在标号LOPA前加上一段程序,实现新的功能:先显示提示信息“Pressanykeytobegin!”,然后,在按了一个键之后继续执行LOPA处的程序。
2.3任务3.《80X86汇编语言程序设计》教材中P45的2.4题的改写。
要求:(1)实现的功能不变,对数据段中变量访问时所用到的寻址方式中的寄存器改成32位寄存器。
(2)内存单元中数据的访问采用变址寻址方式。
(3)记录程序执行到退出之前数据段开始40个字节的内容,检查程序运行结果是否与设想的一致。
(4)在TD代码窗口中观察并记录机器指令代码在内存中的存放形式,并与TD中提供的反汇编语句及自己编写的源程序语句进行对照,也与任务2做对比。
(相似语句记录一条即可,重点理解机器码与汇编语句的对应关系,尤其注意操作数寻址方式的形式)。
(5)观察连续存放的二进制串在反汇编成汇编语言语句时,从不同字节位置开始反汇编,结果怎样?理解IP/EIP指明指令起始位置的重要性。
2.4设计实现一个学生成绩查询的程序。
1、实验背景在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。
2、功能一:提示并输入待查询成绩的学生姓名(1)使用9号DOS系统功能调用,提示用户输入学生姓名。
(2)使用10号DOS系统功能调用,输入学生姓名。
输入的姓名字符串放在以in_name为首址的存储区中。
(3)若只是输入了回车,则回到“(1)”处重新提示与输入;
若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。
3、功能二:以学生姓名查询有无该学生(1)使用循环程序结构,在成绩表中查找该学生。
(2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。
(3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。
4、功能三:计算所有学生的平均成绩使用算数运算相关指令计算并保存每一个学生的平均成绩。
平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。
要求避免溢出。
5、功能四:将功能二查到的学生的平均成绩进行等级判断,并显示判断结果。
(1)平均成绩等级显示方式:若平均成绩大于等于90分,显示“A”;
大于等于80分,显示“B”;
大于等于70分,显示“C”;
大于等于60分,显示“D”;
小于60分,显示“F”。
提示:使用分支程序结构,采用2号DOS系统功能调用显示结果。
(2)使用转移指令回到“功能一(1)”处(提示并输入姓名)
2023/11/8 19:29:41 282KB 汇编
1
跑马灯:前面板:水平指针滑动杆——用于调节彩灯间的延时时间。
指示灯——用以显示程序运行结果。
开关——用于结束当前操作。
程序框图:本程序主要用到平铺式顺序结构和层叠式顺序结构顺序执行程序语句,用真假常量来控制灯亮与不亮。
本程序还用到了while循环和for循环,循环是用于达到闪烁和同步递进循环,整个程序几乎每一帧都用到了延时,单位是毫秒,延时的目地是使本程序更具有可观性,特别效果:单个流水闪烁·双路同步流水闪烁·四路同步流水闪烁·全体同步闪烁谢谢老师的观赏!
2023/11/8 11:35:52 408KB 跑马灯
1
C语言写的八数码搜索过程,有源代码+运行结果截图
2023/11/6 11:27:27 108KB 八数码 启发式搜索 C语言 人工智能
1
Alamouti空时分组编码及运行结果,是研究Alamouti方案比较合适的matlab代码
2023/11/5 16:24:01 22KB Alamouti
1
大型财物管理数据库设计完整版,含代码!用户发展战略项目整体目标财务管理的任务会计学的理论基础基础资料维护财务管理系统E-R图实例功能创建数据库程序运行结果……
1
详细讲解了DES加密算法的原理和实现过程,有运行结果图和实验总结和体会。
2023/11/2 4:55:02 128KB DES算法,代码,实验报告
1
利用哈夫曼编码进行住处通讯可以大大提高信道利用率,缩短住处传输时间,降低成本,但是,这要求在发送端通过一个编码系统将传输的数据预先编码,在接收端通过一个译码系统对传来的数据进行译码(复原),对于双向传输信息的信道,每端都一个完整的编码译码系统,试为这样的住处收发站写一个哈夫曼友的编码译码系统.
2023/11/1 22:15:50 8KB 哈夫曼编码 C语言 数据结构实验
1
本文档包含湘潭大学人工智能课程实验之实验一------采用状态空间法求解八数码问题,包含实验完整可执行代码,包含代码完整流程图,代码基本原理、代码每个子模块的分析及程序运行结果
1
对主成分分析(PCA)的C++代码实现,里面有对PCA实现步骤的详细讲解,并把自己写的PCA代码与Opencv自带的PCA函数的运行结果进行了对比。
2023/10/12 12:15:09 5.94MB PCA 代码 Opencv 主成分分析
1
共 140 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡