华科汇编语言程序设计实验5
华中科技大学计算机原理实验报告

电气学科大类《计算机原理与应用实验》课程实验报告电气与电子工程学院级姓名:学号:专业班号:日期:2014年1月7日实验成绩:评阅人:实验评分表目录实验评分表错误!未指定书签。
实验一:软件安装与使用错误!未指定书签。
一、实验目的错误!未指定书签。
二、实验设备错误!未指定书签。
三、实验任务错误!未指定书签。
四、实验原理错误!未指定书签。
五、实验内容错误!未指定书签。
六、实验过程及结果错误!未指定书签。
七、实验感想八、参考文献实验二:汇编语言实例讲解与程序编写一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验三:基于软件的最小系统硬件设计一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验四:基于最小系统的汇编程序设计一、实验目的错误!未指定书签。
二、实验设备错误!未指定书签。
三、实验任务错误!未指定书签。
四、实验原理错误!未指定书签。
五、实验内容六、实验过程及结果七、实验感想八、参考文献实验五:并行接口实验(演示实验)一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验六:工频测频接口电路设计与实现一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验一:软件安装与使用一、实验目的通过本实验学习软件的安装与使用。
二、实验设备微机一台,仿真软件三、实验任务.安装仿真软件。
.利用仿真软件编程。
四、实验原理仿真软件就是在下的一种仿真软件,它可以仿真模拟的程序运行,并且可以直观地观察寄存器的变化情况。
结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟),还有一个循序渐进的指导工具。
这对刚开始学组合语言的人会是一个很有用的工具。
它会在模拟器中一步一步的编译程序码并执行,视觉化的工作环境让它更容易使用。
汇编语言程序设计实验教程

实验二 汇编语言程序设计
例题:编制程序,使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语言课程设计实验报告_图文

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-循环程序设计

汇编语言实验报告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————————————————————————————————作者:————————————————————————————————日期:ﻩ课程实验报告课程名称:汇编语言程序设计实验实验名称:实验六输入输出与中断处理程序设计实验时间: 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.................................................................................................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.准备上机环境,编辑、汇编、连接文件。