华科汇编语言程序设计实验5

合集下载

华中科技大学计算机原理实验报告

华中科技大学计算机原理实验报告

电气学科大类《计算机原理与应用实验》课程实验报告电气与电子工程学院级姓名:学号:专业班号:日期:2014年1月7日实验成绩:评阅人:实验评分表目录实验评分表错误!未指定书签。

实验一:软件安装与使用错误!未指定书签。

一、实验目的错误!未指定书签。

二、实验设备错误!未指定书签。

三、实验任务错误!未指定书签。

四、实验原理错误!未指定书签。

五、实验内容错误!未指定书签。

六、实验过程及结果错误!未指定书签。

七、实验感想八、参考文献实验二:汇编语言实例讲解与程序编写一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验三:基于软件的最小系统硬件设计一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验四:基于最小系统的汇编程序设计一、实验目的错误!未指定书签。

二、实验设备错误!未指定书签。

三、实验任务错误!未指定书签。

四、实验原理错误!未指定书签。

五、实验内容六、实验过程及结果七、实验感想八、参考文献实验五:并行接口实验(演示实验)一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验六:工频测频接口电路设计与实现一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验一:软件安装与使用一、实验目的通过本实验学习软件的安装与使用。

二、实验设备微机一台,仿真软件三、实验任务.安装仿真软件。

.利用仿真软件编程。

四、实验原理仿真软件就是在下的一种仿真软件,它可以仿真模拟的程序运行,并且可以直观地观察寄存器的变化情况。

结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟),还有一个循序渐进的指导工具。

这对刚开始学组合语言的人会是一个很有用的工具。

它会在模拟器中一步一步的编译程序码并执行,视觉化的工作环境让它更容易使用。

汇编语言程序设计实验教程

汇编语言程序设计实验教程
保留版权(C) 秦晓梅 EMail:qinxm@ 11
实验二 汇编语言程序设计
例题:编制程序,使S=1+2×3+3 ×4+4 ×5+¨ ¨ ¨+N ×(N+1),直到N ×(N+1)项大于200为止. .MODEL SMALL .STACK 200H .DATA SUM DW 00 .CODE START:MOV AX,@DATA MOV DS,AX MOV DX,0001 MOV BL,2
保留版权(C) 秦晓梅 EMail:qinxm@ 14
实验三 指令系统与寻址方式
一,编写指令时,应注意以下几个问题: 1,注意区别立即寻址方式和直接寻址方 式. 如:MOV AX,300;将数据300送入AX 寄存器 MOV AX,[300];将数据段中的 300单元的内容送入AX寄存器.
保留版权(C) 秦晓梅 EMail:qinxm@
7
实验一 DEBUG程序的使用
一,实验目的 1,学习使用DEBUG程序的各种命令. 2,利用DEBUG学习8086/8088CPU指令系统. 3,了解计算机取指令,执行指令的工作过程. 4,掌握用DEBUG调试用户程序的方法. 二,实验任务 1,掌握DEBUG程序的各种命令,重点是A,U,R,D, T,G,Q命令的使用. 2,用命令A汇编下列命令,判断指令正误并说明原因. (1)ROR AX,8 (2)LEA DI,[AX]
保留版权(C) 秦晓梅 EMail:qinxm@ 3
上机步骤
1.确定源程序的存放目录 建议同学在C(或D)盘建立一个工作子目录,将 汇编语言常用的软件装入工作子目录之下.同学在工 作子目录下,完成编辑,汇编和连接等项操作,生成 的用户文件也存放在工作子目录之下. 2 .建立ASM源程序 在DOS环境下键入:EDIT↙ 这条命令执行EDIT.EXE程序,自动进入编辑状态, 屏幕顶部显示主菜单,底部行显示提示信息,中间的 22行为编辑窗口,用户使用编辑命令逐行输入源程序. 编辑后文件存盘时,要键入"Alt+F"键打开File菜单, 选择其中的Save功能,并通过会话给出文件名(注意: 文件名为.ASM 后缀),才能将编辑后的文件存盘.

华中科技大学c语言课程设计实验报告_图文

华中科技大学c语言课程设计实验报告_图文
struct login_widget {
GtkWidget *window; //主窗体 GtkWidget *label_tips; //用于信息提示的标签 GtkWidget *button_login; //两个按钮,一个点击后登录,一个点击后退出 GtkWidget *button_exit; GtkWidget *entry_username; //两个文本框,用于输入用户名和密码 GtkWidget *entry_pwd; GtkWidget *label_username; // 两 个 标 签 用 于 显 示 username 文 本 框 和 password 文本框提示 GtkWidget *label_pwd; GtkWidget *vbox; //垂直布局盒子,包含以下三个水平布局盒子 GtkWidget *hbox_username; //包含用户名提示标签和用户名文本框,下面 的 HBOX 作用类似 GtkWidget *hbox_pwd; GtkWidget *hbox_button; } wgt;
/*treeview 中对应 treeiter*/
} MEMBER_NODE;
中文字段名 姓名 身份证号 工作单位 性别 年龄 职称 成果排名 所属成果名称
类型及长度 char[20] char[18] char[30] char int char[15] int char[40]
number name dept_name sex age title rank achs_name
华中科技大学计算机科学与技术学院
《C 语言程序设计》课程设计
基础部分实验报告 题目: 科技成果信息管理系统
专业: 班级: 学号: 姓名: 成绩:
计算机科学与技术 1204

华中科技大学汇编实验报告-推荐下载

华中科技大学汇编实验报告-推荐下载

课程实验报告课程名称:汇编语言程序设计实验实验名称:实验一简单程序设计 TD的使用实验时间: 2016-3-22,14:00-17:30 实验地点:南一楼804室74号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威同组学生:无报告日期:2016年 3 月23日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。

除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!学生签名:日期:成绩评定实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分)(报告规范、完整、通顺、详实等)总成绩(100分)指导教师签字:日期:查和对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查,并中资试卷目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (2)3.1.3源程序 (2)3.1.4实验步骤 (2)3.1.5实验记录 (2)3.2任务2 (4)3.2.1设计思想及存储单元分配 (4)3.2.2流程图 (4)3.2.3源程序 (4)3.2.4实验步骤 (4)3.2.5实验记录 (4)3.3任务3 (6)3.3.1设计思想及存储单元分配 (6)3.3.2流程图 (6)3.3.3源程序 (6)3.3.4实验步骤 (7)3.3.5实验记录 (7)4体会 (7)参考文献 (8)1实验目的与要求掌握汇编源程序编译工具、汇编程序、连接程序、调试工具的使用;理解数、符号、寻址方式等在计算机内的表现形式;理解指令执行与标志位之间的关系;熟悉常用的DOS功能调用。

2实验内容任务1. 《80X86汇编语言程序设计》教材中P31的1.14题。

汇编语言程序设计实验指导

汇编语言程序设计实验指导

汇编语言程序设计实验指导【实验提要】以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6. X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。

旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086 CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。

(带*号的为选作内容)实验一调试工具DEBUG的应用实验目的通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG的功能;2、DEBUG命令: A,D,E,F,H,R,T,U的使用;3、BCD码、ASCII码及用十六进制数表示二进制码的方法;4、寄存器: AX,BX,CX,DX,FLAGS,IP。

内容及步骤注:本次实验可以参照教材上关于DEBUG的叙述内容进行。

一、DEBUG 命令使用1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。

2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。

注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。

3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。

4、用命令 F230 23F 12 重复上二项实验,观察结果并比较。

5、用命令 E200 41 42 43 44 45将A-E的ASCII码写入地址为200开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。

6、用H命令检查下列各组十六进制数的和与差(补码表示):(1)56H,34H (2)23H,45H (3)AB,3045H注:输入 H 12 34 则在下一行显示0046 FFDE,即二者的补码和与差。

汇编语言实验5-循环程序设计

汇编语言实验5-循环程序设计

汇编语言实验报告Assembly Language Programming Lab Reports______________________________________________________________________________班级:_________ 姓名:___________ 学号:___________ 实验日期:_____________学院:_____计算机与通信工程学院____ 专业:_______计算机科学与技术___________实验顺序:___实验五____ 实验名称:____________循环程序设计________________实验分数:_______ 考评日期:________ 指导教师:______________________________________________________________________________一.实验目的1、掌握两种循环结构,DO WHILE的循环结构用CMP指令和条件转移指令构成。

DO UNTIL用loop,loope,loopne这三种指令实现。

2、掌握以下指令掌握循环指令,loop,loope,loopne。

掌握串处理指令,movs,cmps,scas,lods,stos 以及和他们联合使用的重复前缀指令rep,repz,repnz。

掌握伪指令EQU 及操作符'$'的使用。

掌握cmp,test和条件转移指令构成的循环结构。

3、掌握循环程序的设计过程,写出设计方法,给出程序框图,写出循环程序。

4、掌握多重循环中,可以由内层循环向外层循环跳转,或者直接向外层程序跳转,但是不允许从外向内跳转。

5、会用循环实现排序算法。

______________________________________________________________________________二.实验环境操作系统:windows xp编译程序:masm 5.0______________________________________________________________________________三.实验原理1、loop指令循环2、二层、三层循环嵌套______________________________________________________________________________四.实验步骤及结果分析1.简单的循环程序。

《汇编语言程序设计》实验报告

《汇编语言程序设计》实验报告

《汇编语言程序设计》实验报告班级:090342B学号:*********姓名:***指导教师:***实验日期:实验一实验题目Debug基本命令使用完成日期2011,3,29实验二实验题目汇编语言程序的上机过程完成日期2011,4,16实验三实验题目顺序程序设计完成日期2011,4,19实验四实验题目分支程序设计完成日期2011,4,28START:MOV AX,DATAMOV DS,AXMOV BX,BUFMOV CL,0COPA: AND BX,BXJE EXITSHL BX,1JNC COPAINC CLJMP COPAEXIT: MOV COUNT,CLMOV AH,4CHINT 21HCODE ENDSEND START四、实验结果(可以抓图粘贴)1.两数均为奇数时两数均为偶数时两数一奇一偶时2.3.4.五、本次上机的体会或收获在分支程序的编写过程中,最重要的是判断指令的选择和各部分程序段的逻辑顺序,其次是各种指令以及寻址方式的熟练运用。

这次实验反应出的问题有程序分支后不能汇合到应在的点,主要是因为考虑不周;还有由于自己的不经意,写错指令导致程序不能正常运行;此外,本次上机还让我体会到了程序验证的重要性,比如第一个程序的调试,由于没有调试所有可能出现的情况,导致在我誊写报告的时候出现了错误结果,后经改正才使得程序准确运行。

实验五实验题目循环程序设计完成日期2011,5,3end start四、实验结果(可以抓图粘贴)1.2.3.(1)字符串相等(2)字符串不相等4.5.六、本次上机的体会或收获通过本次实验,基本掌握了串操作指令的使用方法,同时对循环程序的多种设计有了进一步的了解和掌握。

在循环程序设计中,最重要的是对循环次数和循环终止条件的设置,只有二者得以正确设置,程序才能正确运行。

除此,程序书写时一定要注意固定部分的书写,确保固定语句的搭配无误。

实验六实验题目DOS中断调用程序设计完成日期2011,5,13四、实验结果(可以抓图粘贴)1.2.3.五、本次上机的体会或收获本次实验主要是对1号、2号、9号DOS功能的调用,通过实验加深了对中断功能调用的理解,但对于各功能连用时的操作还存在疑惑,尤其是该实验的第二题,程序的输出结果总会带有一些不相关的字符串。

华中科技大学汇编实验报告6

华中科技大学汇编实验报告6

华中科技大学汇编实验报告6————————————————————————————————作者:————————————————————————————————日期:ﻩ课程实验报告课程名称:汇编语言程序设计实验实验名称:实验六输入输出与中断处理程序设计实验时间: 2016-4-26,14:00-17:30实验地点:南一楼804室74号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号: U201414813姓名:唐礼威同组学生:无报告日期:2016年 5 月2日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。

除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!学生签名:日期:成绩评定实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分)(报告规范、完整、通顺、详实等)总成绩(100分) 指导教师签字:日期:ﻬ目录1ﻩ实验目的与要求 (1)2实验内容ﻩ13实验过程2ﻩ3.1任务12ﻩ3.1.1ﻩ设计思想及存储单元分配........................................................... 错误!未定义书签。

3.1.2ﻩ流程图..................................................................................................................... 23.1.3ﻩ源程序2ﻩ3.1.4实验步骤 (3)3.1.5实验记录3ﻩ3.2ﻩ任务2.................................................................................................. 错误!未定义书签。

华中科技大学计算机学院C 实验报告 实验五

华中科技大学计算机学院C  实验报告 实验五

课程实验报告课程名称:面向对象程序设计实验名称:面向对象的整型队列编程院系:计算机科学与技术专业班级:CS1209班学号:姓名:指导教师:李春花2015年01月22日一、需求分析1.题目要求整型队列是一种先进后出的存储结构,对其进行的操作通常包括判断队列是否为空、向队列顶添加一个整型元素、出队列等。

整型队列类型及其操作函数采用面向对象的C++语言定义,请将完成上述操作的所有函数采用C++编程,然后写一个main函数对队列的所有操作函数进行测试。

注意,请用实验三的SATCK组合形成新的类QUEQUE。

请说明如果删掉virtual有什么不同。

class QUEUE{STACK s1,s2;public:QUEUE(int m);//初始化队列:每个栈最多m个元素QUEUE(const QUEUE&s);//用队列s拷贝初始化队列virtual operator int()const;//返回队列的实际元素个数virtual QUEUE&operator<<(int e);//将e入队列,并返回队列virtual QUEUE&operator>>(int&e);//出队列到e,并返回队列virtual QUEUE&operator=(const QUEUE&s);//赋s给队列,并返回被赋值的队列virtual void print()const;//打印队列virtual~QUEUE();//销毁队列};2.需求分析采用面向对象的C++语言定义,构建整型队列并对其进行的操作通常包括判断队列是否为空、向队列顶添加一个整型元素、出队列等,再写一个main函数对队列的所有操作函数进行测试。

二、系统设计用两个栈实现队列,先判栈S2是否为空,如果为空,对S1进行入栈操作,如果不是空,栈S2数据元素倒入到S1,然后对S1进行入栈操作。

出队列时。

实验五汇编语言程序设计实验(一)

实验五汇编语言程序设计实验(一)

实验五汇编语言程序设计实验(一)一、实验目的1、了解和掌握汇编语言子程序和主程序的设计。

2、掌握循环程序的设计。

3、掌握汇编语言主程序与子程序的调用和参数传递。

4、进一步熟悉在PC机上建立,汇编,链接,调试和运行8086、8088汇编语言程序的过程。

二、实验内容1、复习汇编语言源程序的上机过程:2、编写一个完整程序(包含循环设计和子程序设计)在以strg为首地址的缓冲区中存放着1个字符串,以-1作为结束标志,编程统计字符串长度,并将结果存入lenth单元。

要求统计字符串用子程序完成。

data segmentstrg db ‘abcd’,-1lenth dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,strgcall scountmov lenth,bxmov ah,4chint 21hscount proc nearpush sixor bx,bxmov si,dxnext:cmp byte ptr[si],-1jz overinc bxinc sijmp nextover:pop siretscount endpcode endsend start三、实验器材IBM PC 微机一台四、实验要求1、正确理解本次实验的目的,内容和原理。

2、能编写相应的程序五、实验报告要求完成下面任务:从键盘输入1个长度小于100的字符串,存入以buff 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。

写出操作步骤,程序清单,程序注释,实验现象。

实验五 复杂的汇编语言程序的设计

实验五 复杂的汇编语言程序的设计

实验五复杂的汇编语言程序的设计
一、实验目的:
掌握复杂的汇编语言程序的设计方法与技巧,包括:数据定义伪指令的使用、系统功能调用、子程序调用、循环结构、分支结构等。

二、实验内容:
设计一个汇编语言程序,其中包括数据段、堆栈段及代码段,在数据段中定义8个字节数据,把这些数据转换成十六进制数的ASCII码存在上述数据之后,然后在显示器上显示这些数据,每个数据用空格分隔。

三、实验步骤:
1、设计源程序(参考课本178页例题7.1);
2、对源程序进行编辑、编译、连接,生成可执行程序;
3、运行程序并察看结果。

1。

华中科技大学汇编实验报告4

华中科技大学汇编实验报告4

课程实验报告课程名称:汇编语言程序设计实验实验名称:实验四子程序的设计与调用,模块化程序设计实验时间: 2016-4-12,14:00-17:30 实验地点:南一楼804室73号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威同组学生:鲁凯报告日期:2016年 4 月18日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。

除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!学生签名:日期:成绩评定指导教师签字:日期:目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (3)3.1.3源程序 (4)3.1.4实验步骤 (12)3.1.5实验记录 (12)4体会 (14)参考文献 (15)1实验目的与要求(1) 掌握子程序设计的方法与技巧,熟悉子程序的参数传递方法和调用原理;(2) 掌握宏指令、模块化程序的设计方法;(3) 掌握较大规模程序的合作开发与调试方法。

2实验内容进一步修改与增强实验二的学生成绩查询程序的功能,具体要求如下:(1)程序执行时首先显示一个功能菜单:选择1=录入学生姓名和各科考试成绩,2=计算平均分,3=成绩排序,4=输出成绩单,5=程序退出。

提示:由于学生姓名和成绩是通过程序录入的,因此,定义学生成绩表缓冲区时,初始值都可以置零。

为避免录入成绩的时间过程太长,假定学生人数在5人左右,具体人数自行决定。

(2)2人一组,一人负责包括菜单显示、程序退出在内的主程序,以及菜单中的功能1和2;另一人负责菜单中的功能3和4。

各自汇编自己的模块,然后连接生成一个程序。

注意,在每个模块的开始,注明编写者的名字以及同组同学的名字。

(3)录入学生姓名和各科考试成绩时,首先显示录入的是第几个学生的信息,然后分别在提示之后输入姓名和各科成绩(可以借鉴书上十进制转二进制的子程序F10T2)。

华中科技大学汇编实验报告5

华中科技大学汇编实验报告5

课程实验报告课程名称:汇编语言程序设计实验实验名称:实验五汇编语言与C语言混合编程实验时间: 2016-4-19,14:00-17:30 实验地点:南一楼804室74号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威同组学生:无报告日期:2016年4月23日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。

除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!学生签名:日期:成绩评定指导教师签字:日期:目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (3)3.1.3源程序 (3)3.1.4实验步骤 (6)3.1.5实验记录 (6)3.2任务2 (7)3.2.1设计思想及存储单元分配 (7)3.2.2流程图 (8)3.2.3源程序 (8)3.2.4实验步骤 (11)3.2.5实验记录 (11)4体会 (11)参考文献 (12)1实验目的与要求(1)掌握汇编语言程序与C语言程序混合编程的方法;(2)熟悉C编译器的基本优化方法;(3)了解C语言编译器的命名方法,主、子程序之间参数传递的机制。

2实验内容任务1:在C 语言程序中嵌入汇编语言指令语句序列对于实验二的程序进行改造,主控程序、以及输入输出等功能用C语言实现,学生姓名搜索和成绩计算用C程序中嵌入汇编指令语句序列的方式实现。

任务2:在C语言程序中调用汇编语言实现的函数对于实验二的程序进行改造,主控程序、以及输入输出等功能用C语言实现,学生姓名搜索和成绩计算用独立的汇编语言子程序的方式实现;在C语言程序中调用汇编语言子程序。

要求:(1)在不同的C语言开发环境中实现与汇编语言程序的混合编程,其操作方法有可能是不同的。

汇编语言程序设计实验

汇编语言程序设计实验

汇编语言程序设计实验报告班级姓名学号《汇编语言程序设计》实验一、实验教学目标与基本要求汇编语言实验主要使学生掌握DEBUG调用程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法.要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计、子程序设计和中断程序设计.二、实验课程内容实验一 DEBUG(用于测试和调试 MS-DOS 可执行文件的程序)命令的使用(1学时)除了q 命令之外,所有 Debug 命令都接受参数.可以用逗号或空格分隔参数,但是只有在两个十六进制值之间才需要这些分隔符.实验目的:掌握DEBUG中各命令的使用方法;掌握在DEBUG命令使用后观察内存单元、寄存器、标志位的内容及意义;学会使用DEBUG来调试程序.实验内容:使用以下DEBUG命令,观察并记录结果(所留空间不够,可以附页).1.程序调用命令C>DEBUG [D:] [PATH] [FILENAME[.EXT]] [PARM1] [PARM2]其中,文件名是被调试文件的名字.如未键入文件名.可用DEBUG命令N和L把需要文件装入存储器后再调试.D指定驱动器,PATH为路径,FILENAME为文件名,PARM为命令参数2.显示存储单元命令-D [ADDRESS]或;ADDRESS 地址-D [RANGE] ;RANGE 范围3.修改存储单元内容命令-E ADDRESS [LIST]4.检查和修改寄存器内容命令-R [REGISTER NAME] ;Register name 寄存器名字5.汇编命令-A [ADDRESS]6.跟踪命令-T [=ADDRESS] [VALUE] ;Value 变量值7.运行命令-G [=ADDRESS ] [ADDRESS2 [ADDRESS3]8.反汇编命令-U [ADDRESS]-U [RANGE]9.命名命令-N FILESPECS [FILESPECS]FILESPECS的格式可为[D:][PATH]FILENAME [.EXT]10.装入命令-L [ADDRESS[DRIVE SECTOR SECTOR]] ;DRIVE SECTOR 磁盘扇区11.写命令W ADDRESS DRIVE SECTOR12.退出命令-Q实验二汇编语言实验操作方法(1学时)实验目的:掌握在DEBUG下运行汇编指令或简单小程序;熟悉标准汇编程序上机流程.实验内容:设计实验使用数据,分析得出理论结果;记录实验结果,与理论结果比较.(所留空间不够,可以附页)1.在DEBUG下运行汇编指令或简单小程序(如:实现1+2;0F3A6+0FFFB等)在DEBUG提示符下,用汇编命令A:输入汇编指令或简单小程序,用单步命令T或全程命令G来执行,并检查执行中间结果与最后结果.2.标准汇编程序上机方法 (如:给出一个AL*7的程序,用加法及移位指令实现)A.建立ASM文件,用EDIT .COM全屏幕编辑文件或其他编辑文件建立扩展名为ASM的源程序.B.用MASM(或ASM)产生扩展名为OBJ目标文件.C.用LINK产生扩展名为EXE可执行文件.D.在DEBUG下,把文件调入内存,调试程序.E.在DOS下可直接执行扩展名为EXE的文件.附:汇编语言的工作环境.A.硬件环境IBM-PC及其系列机内存256K字节以上外存:硬盘或至少一个软驱CPU:80586以上显示器:单色或彩色显示器键盘:标准ASCII码键盘B.软件环境编缉程序:或其他编缉程序汇编程序:MASM.EXE 或ASM.EXE连接程序:LINK.EXE调试程序: 或DEBUG.EXE实验三汇编语言指令练习(2学时)实验目的:1.掌握DEBUG中汇编命令A,反汇编命令U,单步命令T,显示存储单元命令D,修改存储器单元命令E,修改与显示寄存器单元命令R,退出Q等命令的用法.2.熟悉汇编中传送、逻辑等指令.3.了解指令不同的寻址方式,注意规定或限制使用的寄存器如:双操作数指令中,源操作数和目的操作数的地址不能同时为存储器地址,段跨越前缀不能使用CS,操作对象是地址还是地址中的内容,指令隐含使用的寄存器..实验内容:对DEBUG中A,U,T,D,E,R,Q等命令按不同用法进行练习;汇编中传送、逻辑等指令.1:基本题:MOV.PUSH.POP.AND.OR.XOR.TEXT.ADD.SUB.MUL.DIV.2:掌握题:在DEBUG状态下把三个数从大到小排序.3:实验步骤A.在DOS提示符下,在MASM子目录下,按DEBUG及回车.B.在DEBUG提示符下,按A进入小汇编,输入源指令.C.用U反汇编,检查输入源指令是否正确,用T或G,调试与运行指令.D.检查指令运行结果,用E,R检查与修改内存、寄存器内容.E.重复B.C.D过程.实验准备:按实验内容要求,理解指令功能,编写不同寻址方式的指令清单.实验报告:(所留空间不够,可以附页)1.实验目的,要求,内容及算法思想.2.指令的寻址方式,注意规定或限制使用的寄存器.3.指令清单.4.实验心得.实验四顺序程序设计(2学时)实验目的:掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图.说明流程图中各功能的含义和表示法.分配工作单元和存储空间.根据程序算法流程选择合适的指令编制汇编语言源程序.本实验着重掌握顺序程序的设计基本方法和技巧.实验要求:1.程序要结构化:简明、易读和易调试2.执行速度较快3.占用存储空间较少实验内容:1:按实验内容要求,确定算法,画流程图,编写程序2:基本题:计算表达式的值: w=(v-(x*y+z-540))/x3:掌握题:将一字节压缩BCD码转换为二个ASCII码.实验步骤:1.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.2.调试与运行程序:用单步,短点,连续等方法调试与运行程,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF,I等,检查指令执行结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.3.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.实验报告:(所留空间不够,可以附页)1.目的,要求,内容及算法思想.2.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.3.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.4.实验心得及有意义的建议.实验五分支程序设计(4学时)实验目的:掌握分支程序设计的原理和方法,重点掌握各种分支程序中形成判断条件而产生的程序段的设计方法和技巧.实验要求:1.如何产生条件2.如何对条件进行判断3.如何实现分支实验内容:1.按实验内容要求,确定算法,画流程图,编写程序2.基本题: 计算函数值: Y=1 X>0Y=0 X=0Y=-1 X<03.掌握题: 多路分支,假定将各分支程序进行编号,若存在0,1,…,N的N+1个分支程序.现根据当前的编号,转入到相应的分支程序.若各分支程序的入口地址分别为:ADDR0,ADDR1,…,ADDRN.1.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.2.调试与运行程序:用单步,短点,连续等方法调试与运行程序,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.3.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果. 实验报告:(所留空间不够,可以附页)1.实验目的,要求,内容及算法思想.2.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.3.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.4.实验心得及有意义的建议.实验六循环程序设计(4学时)实验目的:掌握循环程序设计的原理和方法,重点掌握循环程序结构的形式和常用循环程序的控制方法和技巧.实验要求:1.置循环参数的初值2.循环体构成3.如何实现循环控制实验内容:1.按实验内容要求,确定算法,画流程图,编写程序2.基本题: 统计某地址中正元素的个数3.掌握题:把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来;假定给出4名学生5门课的成绩,计算每个学生的平均成绩和每门课的平均成绩;冒泡排序.A.认真阅读本实验指导实验步骤:1.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.2.调试与运行程序:用单步,短点,连续等方法调试与运行程序,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.3.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.实验报告:(所留空间不够,可以附页)1.目的,要求,内容及算法思想.2.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.3.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.4.实验心得及有意义的建议.实验七子程序设计(2学时)实验目的:掌握子程序设计的原理和方法,重点掌握子程序结构的形式和常用子程序的控制方法和技巧.采用子程序设计以增加程序的可读性,有利于程序的模块化和自顶向下的设计方法的实现.实验要求:1.子程序定义及相对应的调用方法.2.子程序设计时需建立子程序的功能说明.3.子程序现场保护和现场恢复.4.子程序的输入参数和输出参数的确定及传递方法,可利用寄存器,内存或堆栈传递参数.5.子程序嵌套调用时,注意任何存放断点和寻找短点进行返回.6.掌握常用DOS系统功能子程序的调用.实验内容:1.按实验内容要求,确定算法,画流程图,编写程序.2.基本题:十进制数到十六进制数转化程序.程序要求从键盘取得一个十进制数,然后以十六进制形式在屏幕上显示出来.3.掌握题: 在屏幕上显示4行“hello!what is your name?”,要求用子程序调用的方法实现;计算N! (N≥0)的程序实验步骤:1.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.2.调试与运行程序:用单步,短点,连续等方法调试与运行程序,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.3.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.实验报告:(所留空间不够,可以附页)1.目的,要求,内容及算法思想.2.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.3.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.4.实验心得及有意义的建议.实验八中断程序设计(2学时)实验目的:掌握软中断程序设计的原理和方法,重点掌握软中断程序入口、出口地址的产生。

(完整版)汇编语言程序设计实验篇(emu8086),推荐文档

(完整版)汇编语言程序设计实验篇(emu8086),推荐文档

按钮,保存相应的程序段。
2. EXE TEMPLATE 程序
本章与 DOS 功能调用和汇编源程序相关的实验都是用 EXE TEMPLATE 程序完成的。
打开 emu8086,在“welcome…”对话框中,单击
按钮,创ቤተ መጻሕፍቲ ባይዱ文件。
我去人也就有人!为UR扼腕入站内信不存在向你偶同意调剖沙
在“choose code template”对话框中,选择“EXE template-advanced executable
3. 实验原理
通用数据传送指令包括:1)通用数据传送指令,如 MOV,PUSH,POP,XCHG,CBW,CWD;2)目标地址传送指令,如 LDS,LES;3)标志传送指令,如 LAHF,SAHF,PUSHF,POPF;4)输入输出指令,如 IN,OUT,LEA
寻址方式包括:1)立即寻址;2)直接寻址;3)寄存器寻址;4)寄存器间接寻值; 5)寄存器相对寻址;6)基址-变址寻址;7)基址—变址—相对寻址;8)隐含寻址
逻辑运算指令包括:AND,OR,NOT,XOR,TEST
4. 实验内容
(1)创建 COM TEMPLATE 程序,输入以下程序段,单步执行并记录标志位的变化情况
(提示:在 emulator 对话框中,单击
按钮察看标志寄存器的值)。程序段及结果表
格如表 1-2。 表 1-2 算术逻辑运算实验结果表格
标志位 CF ZF SF OF PF AF
4. 实验内容
(1)创建 COM TEMPLATE 程序,输入以下程序段,观察程序的执行情况,程序段如下:
MOV BL,08H
;BX=?
MOV CL,BL
;CL=?
MOV AX,03FFH

汇编语言综合实验

汇编语言综合实验

华北科技学院综合性实 验 报 告课程名称汇 编 语 言实验学期 2017 至 2018 学年 第 1 学期学生所在系部计算机学院网络工程系年级三年级专业班级网络B15- 学生姓名学号任课教师实验成绩计算机学院制《 汇 编 语 言》课程综合性实验报告开课实验室:基础实验室一 日期:2017年12月10日实验题目学生成绩排序一、实验目的进行汇编语言程序设计应用的综合性训练。

综合运用汇编语言循环程序、子程序、宏指令编程方法,提高汇编语言程序设计能力的应用水平。

序、宏指令编程方法,提高汇编语言程序设计能力的应用水平。

二、设备与环境PC 兼容机、Windows 操作系统、汇编程序masm for windows 2015 三、实验内容编写程序,接收从键盘输入某班学生的学号、姓名、成绩,对学生的成绩进行排序,最后把学号、姓名、学生成绩、名次显示出来。

排序,最后把学号、姓名、学生成绩、名次显示出来。

四、实验结果及分析⑴代码功能⑴代码功能该代码的功能是实现对已经输入的学生按成绩进行排序,输入时按学号输出时 按照成绩的由小到大输出,在成绩交换位置时成绩对应的姓名和学号也会跟随一起变 化使姓名和分数对应显示。

化使姓名和分数对应显示。

⑵变量的定义⑵变量的定义①缓冲区和存储单元的定义①缓冲区和存储单元的定义这个过程是个关键的过程,因为在程序中汇涉及到使用单元空间的单元值,如果这个过程是个关键的过程,因为在程序中汇涉及到使用单元空间的单元值,如果 不能明确的定义变量和缓冲区,在输入学生信息,输出学生信息都不能达到想要的效 果,而且在程序中执行循环时也会因为赋值不准确导致程序出现错误,而且这种错误 系统不会提示,这就意味着查找问题很困难,增加了编码的难度和工作量。

系统不会提示,这就意味着查找问题很困难,增加了编码的难度和工作量。

②宏定义及其使用②宏定义及其使用在进行编码时为了使代码量减少,应该适当定义一些宏,此程序定义了在进行编码时为了使代码量减少,应该适当定义一些宏,此程序定义了 5 个宏,个宏, hong1 实现的功能是定义了回车换行因为在对学生成绩输出时会用到换行而且是反实现的功能是定义了回车换行因为在对学生成绩输出时会用到换行而且是反 复的使用,因此定义回车换行的宏可以减少一定的代码量。

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

课程实验报告课程名称:汇编语言程序设计实验实验名称:实验五 WIN32编程实验时间: 2017-5-3,14:30-17:30 实验地点:南一楼804室83号实验台指导教师:班鹏新专业班级:计算机科学与技术201503班学号:U201514558 姓名:刘伟光同组学生:无报告日期:2017年 5 月3日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。

除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!学生签名:日期:2017.5.3 成绩评定指导教师签字:日期:目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (2)3.1.3源程序 (2)3.1.4实验步骤 (7)3.1.5实验记录与分析 (7)4总结与体会 (9)1实验目的与要求熟悉WIN32程序的设计和调试方法;熟悉宏汇编语言中INVOKE、结构变量、简化段定义等功能;进一步理解机器语言、汇编语言、高级语言之间以及实方式、保护方式之间的一些关系。

2实验内容任务1 宏与子程序设计编写一个基于窗口的WIN32程序,实现学生成绩表信息的平均值计算及显示功能(借鉴前面实验中的一些做法),具体要求如下描述。

功能一:编写一个基于窗口的WIN32程序的菜单框架,具有以下的下拉菜单项:File Action HelpExit Average AboutList点菜单File下的Exit选项时结束程序;点菜单Help下的选项About,弹出一个消息框,显示本人信息,类似图5.1所示。

点菜单Action下的选项Average、List将分别实现计算平均值或显示所有成绩的功能(详见功能二的描述)。

功能二:每个学生的相关信息包括:姓名(结尾含1个以上的数值0,共占10个字节),语文成绩(1个字节),数学成绩(1个字节),英语成绩(一个字节),平均成绩(1个字节),等级(1个字节)。

要求采用结构变量存放学生的相关信息。

学生人数至少5人。

姓名和各科成绩直接在数据段中给定,不必运行时输入。

成绩表中最后一个学生必须使用自己的姓名。

(1)点菜单项Average时,计算平均成绩并给出等级(等级的定义见实验一,但这里不用单独显示等级)。

平均成绩的计算仍按照实验一的公式进行。

平均成绩和等级保存到上述结构变量的相应字段中。

用TD32观察计算结果。

点菜单项List时,要求能在窗口中列出所有学生信息,包括姓名、各科成绩、平均成绩、等级等。

如图5.2所示。

平均成绩尚未计算时,平均成绩及等级显示为空白。

3实验过程3.1任务13.1.1设计思想及存储单元分配此次任务使用的32位编程使用的是结构体。

定义了一个学生的结构体名字用十个字节定义,三门成绩分别用三个字符定义,为了方便输出,将平均成绩用一个字来表示,用一个字符来表示该学生的等级。

除此之外,还定义了3个数据chinese,math,english来方便成绩的输出。

3.1.2流程图实验五流程图如图3.1.1所示。

3.1.1开始界面的程序流程图3.1.3源程序.386.model flat,stdcalloption casemap:noneWinMain proto :DWORD,:DWORD,:DWORD,:DWORDWndProc proto :DWORD,:DWORD,:DWORD,:DWORDDisplay proto :DWORDAverage proto :DWORDinclude test5.INCinclude windows.incinclude user32.incinclude kernel32.incinclude gdi32.incinclude shell32.incincludelib user32.libincludelib kernel32.libincludelib gdi32.libincludelib shell32.libstudent structmyname db 10 dup(0)chinese db 0math db 0english db 0average dw 0grade db 0student ends.dataClassName db 'TryWinClass',0AppName db 'Liuweiguang first Window',0 ;窗口名称MenuName db 'MyMenu',0DlgName db 'MyDialog',0AboutMsg db 'Made by CS1503guang',0 ;提示窗内容sucMsg db 'Success',0hInstance dd 0CommandLine dd 0buf student <'yuang',89,75,88,0,'A'> ;学生结构集合student <'zhangsan',60,85,46,0,'A'>student <'lisi',95,90,95,00,'A'>student <'wangwu',80,65,85,00,'A'>student <'guang',30,40,50,00,'A'>msg_name db 'name',0msg_chinese db 'chinese',0msg_math db 'math',0msg_english db 'english',0msg_average db 'average',0msg_grade db 'grade',0chinese db '97','80','95','80', '85' ;便于输出的学生成绩math db '98','85','90','75', '90'english db '99','90','95','85', '90'average db '00','00','00','00', '00'po db 10.codeStart:invoke GetModuleHandle,NULLmov hInstance,eaxinvoke GetCommandLinemov CommandLine,eaxinvoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULTinvoke ExitProcess,eax;;WinMain proc hInst:DWORD,hPrevInst:DWORD,CmdLine:DWORD,CmdShow:DWORD ;传参LOCAL wc:WNDCLASSEXLOCAL msg:MSGLOCAL hWnd:HWNDinvoke RtlZeroMemory,addr wc,sizeof wcmov wc.cbSize,SIZEOF WNDCLASSEXmov wc.style, CS_HREDRAW or CS_VREDRAWmov wc.lpfnWndProc, offset WndProcmov wc.cbClsExtra,NULLmov wc.cbWndExtra,NULLpush hInstpop wc.hInstancemov wc.hbrBackground,COLOR_WINDOW+1mov wc.lpszMenuName, offset MenuNamemov wc.lpszClassName,offset ClassNameinvoke LoadIcon,NULL,IDI_APPLICATIONmov wc.hIcon,eaxmov wc.hIconSm,0invoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor,eaxinvoke RegisterClassEx, addr wcINVOKE CreateWindowEx,NULL,addr ClassName,addr AppName,\ WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\hInst,NULLmov hWnd,eaxINVOKE ShowWindow,hWnd,SW_SHOWNORMALINVOKE UpdateWindow,hWnd;;MsgLoop: INVOKE GetMessage,addr msg,NULL,0,0cmp EAX,0je ExitLoopINVOKE TranslateMessage,addr msgINVOKE DispatchMessage,addr msgjmp MsgLoopExitLoop: mov eax,msg.wParamretWinMain endpWndProc proc hWnd:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORDLOCAL hdc:HDC.IF uMsg == WM_DESTROYinvoke PostQuitMessage,NULL.ELSEIF uMsg == WM_KEYDOWN.IF wParam == VK_F1 ;如果按下F1键invoke MessageBox,hWnd,addr AboutMsg,addr AppName,0 ;;your code.ENDIF.ELSEIF uMsg == WM_COMMAND.IF wParam == IDM_FILE_EXIT ;如果退出invoke SendMessage,hWnd,WM_CLOSE,0,0.ELSEIF wParam == IDM_Action_Averageinvoke Average,5invoke MessageBox,hWnd,addr sucMsg,addr AppName,0.ELSEIF wParam == IDM_Action_Listinvoke Display,hWnd.ELSEIF wParam == IDM_HELP_ABOUT ;如果按下about键invoke MessageBox,hWnd,addr AboutMsg,addr AppName,0.ENDIF;;redraw window again.ELSEinvoke DefWindowProc,hWnd,uMsg,wParam,lParamret.ENDIFxor eax,eaxretWndProc endpDisplay proc hWnd:DWORDXX equ 10YY equ 10XX_GAP equ 100YY_GAP equ 30LOCAL hdc:HDCinvoke GetDC,hWndmov hdc,eaxinvoke TextOut,hdc,XX+0*XX_GAP,YY+0*YY_GAP,offset msg_name,4invoke TextOut,hdc,XX+1*XX_GAP,YY+0*YY_GAP,offset msg_chinese,7invoke TextOut,hdc,XX+2*XX_GAP,YY+0*YY_GAP,offset msg_math,4invoke TextOut,hdc,XX+3*XX_GAP,YY+0*YY_GAP,offset msg_english,7invoke TextOut,hdc,XX+4*XX_GAP,YY+0*YY_GAP,offset msg_average,7invoke TextOut,hdc,XX+5*XX_GAP,YY+0*YY_GAP,offset msg_grade,5;输出各个学生的成绩invoke TextOut,hdc,XX+0*XX_GAP,YY+1*YY_GAP,offset buf[0*16].myname,5invoke TextOut,hdc,XX+1*XX_GAP,YY+1*YY_GAP,offset chinese+0,2invoke TextOut,hdc,XX+2*XX_GAP,YY+1*YY_GAP,offset math+0, 2invoke TextOut,hdc,XX+3*XX_GAP,YY+1*YY_GAP,offset english+0,2invoke TextOut,hdc,XX+4*XX_GAP,YY+1*YY_GAP,offset buf[0*16].average,2invoke TextOut,hdc,XX+5*XX_GAP,YY+1*YY_GAP,offset buf[0*16].grade,1;;invoke TextOut,hdc,XX+0*XX_GAP,YY+2*YY_GAP,offset buf[1*16].myname,8invoke TextOut,hdc,XX+1*XX_GAP,YY+2*YY_GAP,offset chinese+2,2invoke TextOut,hdc,XX+2*XX_GAP,YY+2*YY_GAP,offset math+2, 2invoke TextOut,hdc,XX+3*XX_GAP,YY+2*YY_GAP,offset english+2,2invoke TextOut,hdc,XX+4*XX_GAP,YY+2*YY_GAP,offset buf[1*16].average,2invoke TextOut,hdc,XX+5*XX_GAP,YY+2*YY_GAP,offset buf[1*16].grade,1;;invoke TextOut,hdc,XX+0*XX_GAP,YY+3*YY_GAP,offset buf[2*16].myname,4invoke TextOut,hdc,XX+1*XX_GAP,YY+3*YY_GAP,offset chinese+4,2invoke TextOut,hdc,XX+2*XX_GAP,YY+3*YY_GAP,offset math+4, 2invoke TextOut,hdc,XX+3*XX_GAP,YY+3*YY_GAP,offset english+4,2invoke TextOut,hdc,XX+4*XX_GAP,YY+3*YY_GAP,offset buf[2*16].average,2invoke TextOut,hdc,XX+5*XX_GAP,YY+3*YY_GAP,offset buf[2*16].grade,1;;invoke TextOut,hdc,XX+0*XX_GAP,YY+4*YY_GAP,offset buf[3*16].myname,6invoke TextOut,hdc,XX+1*XX_GAP,YY+4*YY_GAP,offset chinese+6,2invoke TextOut,hdc,XX+2*XX_GAP,YY+4*YY_GAP,offset math+6, 2invoke TextOut,hdc,XX+3*XX_GAP,YY+4*YY_GAP,offset english+6,2invoke TextOut,hdc,XX+4*XX_GAP,YY+4*YY_GAP,offset buf[3*16].average,2invoke TextOut,hdc,XX+5*XX_GAP,YY+4*YY_GAP,offset buf[3*16].grade,1;;invoke TextOut,hdc,XX+0*XX_GAP,YY+5*YY_GAP,offset buf[4*16].myname,5invoke TextOut,hdc,XX+1*XX_GAP,YY+5*YY_GAP,offset chinese+8,2invoke TextOut,hdc,XX+2*XX_GAP,YY+5*YY_GAP,offset math+8, 2invoke TextOut,hdc,XX+3*XX_GAP,YY+5*YY_GAP,offset english+8,2invoke TextOut,hdc,XX+4*XX_GAP,YY+5*YY_GAP,offset buf[4*16].average,2invoke TextOut,hdc,XX+5*XX_GAP,YY+5*YY_GAP,offset buf[4*16].grade,1retDisplay endpAverage proc number:DWORDpush EAX ;保护现场push ebxpush ecxpush edxpush esimov ecx,0avg_loop:cmp ecx, numberjge avg_finishmov eax,0mov edx,0;置零imul ebx, ecx, 16mov al, buf[ebx].chinesemov dl, buf[ebx].mathsal eax,2sal edx,1add eax,edxmov edx,0mov dl, buf[ebx].englishadd ax,dxmov dl,7div dl.if al > 90mov buf[ebx].grade, 'A'.elseif al > 80mov buf[ebx].grade, 'B'.elseif al > 70mov buf[ebx].grade, 'C'.elseif al > 60mov buf[ebx].grade, 'D'.elsemov buf[ebx].grade, 'F'.endifmov ah,0div poadd ax,3030hmov word ptr buf[ebx].average, axinc ecxjmp avg_loopavg_finish:pop esipop edxpop ecxpop ebxpop eaxretAverage endpend Start3.1.4实验步骤1.准备上机环境,编辑、汇编、连接文件。

相关文档
最新文档