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

合集下载

华中科技大学计算机学院C语言课设实验报告参考模板

华中科技大学计算机学院C语言课设实验报告参考模板

华中科技大学计算机科学与技术学院《C语言程序设计》课程设计实验报告题目:科研项目信息管理系统专业:计算机班级:学号:姓名:成绩:指导教师:李开完成日期:2009年10 月20 日科研项目信息管理系统一、系统功能结构模块图二、数据结构设计及其用法说明typedef struct lakey{char name[30];/*团队名称*/int total;/*自然科学基金的科研项目数*/float dudu;/*经费数*/struct lakey *next;}*plakey;/*统计3中用到的数据结构*/typedef struct emmey{char name[30];/*团队名称*/int teacher;/*老师人数*/int harden;/*项目数*/float bizhi;/*比值*/struct emmey *next;}*pemmey;/*统计4中用到的数据结构*/typedef struct kPro{char code[15];/*项目编号*/char sort;/*项目种类*/int aking1;char time[8];/*项目时间*/float dudu;/*项目经费*/int aking2;char beiler[15];/*负责人*/int aking3;char keynoName[30];/*所在团队名称*/struct kPro *next;}harden,*pHarden;typedef struct Komo{int teacher;/*老师人数*/char name[20];/*院系名称*/int student;/*学生人数*/float bizhi;/*二者比值*/struct Komo *next;}*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/typedef struct kTea{char name[30];/*团队名称*/char beiler[15];/*负责人*/int stuNum;/*学生人数*/int aking2;int coco;/*老师人数*/char colName[20];/*所在院系的名称*/int aking1;struct kTea *next;pHarden child;}keyno,*pKeyno;typedef struct edward{char name[20];/*院系名称*/int totalnum;/*项目总数*/int num973;/*973项目数*/int num863;/*863项目数*/float amount;/*经费数*/struct edward *next;}*pedward;/*统计2中用到的数据结构*/typedef struct kCol{char name[20];/*院系名称*/int aking;char beiler[15];/*院系负责人*/struct kCol *next;char call[15];/*负责人电话号码*/pKeyno child;}kekey,*pKekey;三、程序结构四、各模块的功能1、pKekey Charge(pKekey alpha)/*这个函数将文件中的内容写入链表中*/2、pKekey temption(int aking,int aking1,int aking2,pKekey item1,pKeynoitem2,pHarden item3,pKekey alpha,int sort)/*这个函数用于向指定位置(aking)添加指定节点(item),alpha是头结点。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.利用仿真软件编程。

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

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

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

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

华中科技大学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题。

华科汇编第一次实验报告

华科汇编第一次实验报告

汇编实验报告姓名:班级:CS1209 学号:一、实验目的(1) 掌握汇编源程序开发的过程:编译、汇编MASM、连接LINK、用TD调试。

(2)编写简单的汇编代码,加强对汇编语言的理解。

二、实验内容及要求(1)、《80X86汇编语言程序设计》P299中的程序实例。

要求:重复7.4.3节中的整个过程,初步掌握TD的使用方法。

(2)、《80X86汇编语言程序设计》P31中的1.14题。

要求:直接在TD中输入指令进行求和(如MOV AH, x1、MOV AL, x2、ADD AH, AL),记录执行指令后标志位SF、OF、CF、ZF的值(验证自己的作业情况)。

(3)、编写程序缓冲区BUF中有若干个有符号短整数(2个字节),找出其中的绝对值最大的数并存放到变量RESULT中。

要求:在BUF中定义不同的正负数,用TD查看变量RESULT的值是否正确。

三、实验步骤题目一,从键盘中输入一个字符,若该字符为‘1’,则在下一行输出字符串‘11111111111!’后返回DOS;若该字符为‘2’,则在下一行输出字符串‘22222222222!‘后返回DOS;若该字符为其他字符,则在下一行输出字符串’Other Character’后返回DOS。

通过TD调试找出下面代码的错误并改正。

1、用记事本建立汇编源程序文件WAN.ASM.386STACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSDATA SEGMENT USE16BUF1 DB 0AH,0DH,'1111111111! $'BUF2 DB 0AH,0DH,'2222222222! $'BUF3 DB 0AH,0DH,'Other Character!',0AH,0DHDATA ENDSCODE SEGMENT USE16ASSUME DS:DATA,CS:CODE,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AH,1INT 21H ;等待从键盘输入一个字符CMP AL,'1'JE A1CMP AL,'2'JE A2JMP A3A1: LEA DX,BUF1MOV AH,9INT 21HA2: LEA DX,BUF2MOV AH,9INT 21HA3: LEA DX,BUF3MOV AH,9INT 21HEXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.编译连接该程序3.运行程序中出现了如下问题。

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

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

《汇编语言程序设计》实验报告班级: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功能的调用,通过实验加深了对中断功能调用的理解,但对于各功能连用时的操作还存在疑惑,尤其是该实验的第二题,程序的输出结果总会带有一些不相关的字符串。

04 第四章 汇编语言程序设计 单片机 华中科技大学

04 第四章 汇编语言程序设计 单片机 华中科技大学

伪指令
ORG:Origin : 起始地址指令,设定程序的起始地址。 起始地址指令,设定程序的起始地址。 指令地址 2000H 2002H 2002H 说明: 说明: 1. 一个程序中,可以多次使用ORG指令 一个程序中,可以多次使用 指令 2. 若ORG指令不带操作数,这汇编后目标程序的起始地址 指令不带操作数, 指令不带操作数 为0000H 机器码 78 30 E6 源程序 ORG 2000H R0, MAIN: MOV R0,#30H @R0 MOV A,@R0
汇编结果: MN的值为 汇编结果: 的值为1000H 的值为 说明: 说明: 1. 用DATA定义的标识符可以先使用,后定义 定义的标识符可以先使用, 定义的标识符可以先使用 2. 用EQU定义的标识符只能先定义后使用 定义的标识符只能先定义后使用
伪指令
DB:Define Byte : 定义字节数据 从指定的地址单元开始,存储若干字节的数据或 从指定的地址单元开始,存储若干字节的数据或ASCII码 码 常用于定义数据常数表
假设开始时dptr0r3130那么2xr3260100000100所以如果还是以a为偏移量将得到错误的结果为了修正偏移量应该将产生的进位100000100考虑进来所以应该加上一行指令0000000000000000incdph第一章汇编语言程序设计子程序循环程序程序设计中某一段程序重复执行多次可采用循环程序
使用方法: 使用方法: 字符名称 例: COUNT ADDR EQU 数或汇编符号 EQU 16 EQU 3000H MOV A, COUNT ;COUNT=16H ;ADDR=3000H
伪指令
DATA: : 把地址赋给字符名称; 把地址赋给字符名称;
使用方法: 使用方法: 字符名称 例: MN DATA 操作数 DATA 1000H

华中科技大学汇编实验报告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.................................................................................................. 错误!未定义书签。

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

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

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

特此声明!学生签名:日期: 2017.4.19 成绩评定实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分)(报告规范、完整、通顺、详实等)总成绩(100分)指导教师签字:日期:目录1实验目的与要求 (3)2实验内容 (3)3实验过程 (4)3.1任务1 (4)3.1.1设计思想及存储单元分配 (4)3.1.2流程图 (4)3.1.3源程序 (4)3.1.4实验步骤 (5)3.1.5实验记录 (5)3.2任务2 (7)3.2.1设计思想及存储单元分配 (7)3.2.2流程图 (7)3.2.3源程序 (7)3.2.4实验步骤 (10)3.2.5实验记录 (10)3.3任务3 (12)3.3.1设计思想及存储单元分配 (12)3.3.2流程图 (12)3.3.3源程序 (12)3.3.4实验步骤 (14)3.3.5实验记录 (14)3.4任务4 (15)3.4.1设计思想及存储单元分配 (15)3.4.2流程图 (15)3.4.3源程序 (16)3.4.4实验步骤 (23)3.4.5实验记录 (23)3.5任务5 (24)3.5.1设计思想及存储单元分配 (24)3.5.2流程图 (24)3.5.3源程序 (24)3.5.4实验步骤 (24)3.5.5实验记录 (24)4体会 (27)参考文献 (28)1实验目的与要求(1) 掌握中断矢量表的概念;(2)熟悉I/O访问,BIOS功能调用方法;(3) 掌握实方式下中断处理程序的编制与调试方法。

2实验内容任务1:用三种方式获取中断类型码16H对应的中断处理程序的入口地址。

要求:首先要进入虚拟机状态,然后(1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息。

(2)编写程序,用16H功能调用方式获取(16H的使用可查阅教材附录),观察功能调用相应的出口参数与“(1)”看到的结果是否相同(使用TD观看出口参数即可)。

(3)编写程序,直接读取相应内存单元,观察读到的数据与“(1)”看到的结果是否相同(使用TD观看程序的执行结果即可)。

任务2:编写一个接管键盘中断的中断服务程序并驻留内存,要求在程序返回DOS操作系统后,键盘上的小写字母都变成了大写字母。

要求:(1)在 DOS虚拟机或DOS窗口下执行程序,中断服务程序驻留内存。

(2)在DOS命令行下键入小写字母,屏幕显示为大写,键入大写时不变。

执行TD,在代码区输入指令“mov AX,0”看是否能发生变化。

(3)选作:另外编写一个中断服务程序的卸载程序,将键盘中断服务程序恢复到原来的状态任务3:读取CMOS内指定单元的信息,按照16进制形式显示在屏幕上。

要求:(1)先输入待读取的CMOS内部单元的地址编号(可以只处理编号小于10的地址单元)。

再使用IN/OUT指令,读取CMOS内的指定单元的信息。

(2)将读取的信息用16进制的形式显示在屏幕上。

若是时间信息,可以人工判断一下是否正确。

3实验过程3.1任务13.1.1设计思想及存储单元分配用三种方式获取中断类型码10H对应的中断处理程序的入口地址。

1.直接在td中观察指定ds:58H中的值和ds:5A中的值。

2.系统功能调用35H,入口参数为AL=16H,取中断信息。

3.直接把主存中的DS:[58H],DS:[5AH]赋值给寄存器BX和CX。

3.1.2流程图无3.1.3源程序1.程序名41.386STACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSCODE SEGMENT USE16ASSUME CS:CODESTART: XOR AX,AXMOV DS,AXMOV AX,3516HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.程序名42.386STACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSCODE SEGMENT USE16ASSUME CS:CODE, SS:STACKSTART: XOR AX,AXMOV DS,AXXOR BX,BXXOR CX,CXMOV BX,DS:[58H]MOV CX,DS:[5aH]MOV AH,4CHINT 21HCODE ENDSEND START3.1.4实验步骤1.直接运行td,直接计算16h所调用的中断矢量表的位置的段首址和偏移地址,分别是58h和5Ah。

在数据段中输入ds:58h,观察其值。

2.将程序41编译、链接,调试直到没有错误。

运行td 41,在td中单步调试,观察es与bx的改变情况;3.将程序42编译、链接,调试直到没有错误。

运行td 42,在td中单步调试,观察寄存器的值。

4.总结计算中断指令表的规律和总结错误。

3.1.5实验记录1.实验环境条件:16M内存;WINDOWS XP命令行窗口;EDIT.EXE2.0;MASM.EXE 6.0;LINK.EXE 5.2; TD.EXE 5.0。

2.方法一,直接观察ds段,可以观察到从0:40h开始低2个字节为11E0,高2个字节为F000;观察如图3.1.1所示。

图3.1.1 直接观察td中的主存3.方法二,调用35号系统功能,在TD内观察到es为11E0,bx为11E0;观察如图3.1.2所示。

图3.1.2 调用35号功能观察分析:可以直接调用35号调用来获取中断入口地址。

4.方法三,将0:40h开始的低2个字节移至bx,高2个字节移至cx,得到cx为F000,bx为11E0;观察如图3.1.3所示。

图3.1.3 通过寄存器观察中断矢量表5.比较上述三种方法得到的结果,发现它们一致,说明以上方法实施得到的结果准确无误。

6.(思考题)总结分析:在计算中断矢量表位置时,计算第n个中断指令可用ds:n*4和ds:n*4+2分别得到其位置,值得注意的是在TD中使用的是16进制,需要做一些适量转化.。

在这次中总结错误为,如果汇编代码没有执行语句MOV DS,AX的话,其内存中保存的值不会是中断矢量表。

错误如图3.1.4所示:图3.1.4 没有执行MOV DS,AX的主存3.2任务23.2.1设计思想及存储单元分配设计思想:修改键盘驱动中断程序(int 16h),将中断矢量表0:58h开始的4个字节修改为新的中断程序的偏移地址和段首址,并保存号旧的键盘驱动中断程序的偏移地址和段首址。

在新的中断程序中,先判断用户调用的是否为键盘驱动中断程序的读入键盘功能,若不是,则直接调用旧的键盘驱动中断程序;若是,则对输入进行处理。

实际上我们改变出口参数中AL的值即是键入字符的ASCII码即可实现。

3.2.2流程图任务2流程图如图3.2.1所示。

图3.2.1任务2流程图3.2.3源程序程序名43 接管中断程序.386DATA SEGMENT USE16DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,SS:STACKOLD_INT DW ?,?NEW16H:CMP AH,00HJE ATBCMP AH,10HJE ATBJMP DWORD PTR OLD_INTATB:PUSHFCALL DWORD PTR OLD_INTCMP AL,97 ;比较输入的ascii码 JAE NEXT1JMP QUITNEXT1: CMP AL,122JBE TOBIGJMP QUITTOBIG: sub AL,32QUIT: IRETSTART: XOR AX,AXMOV DS,AXMOV AX,DS:[16H*4]MOV OLD_INT,AX ;保存偏移部分 MOV AX,DS:[16H*4+2]MOV OLD_INT+2,AX ;保存段值CLIMOV WORD PTR DS:[16H*4],OFFSET NEW16H MOV DS:[16H*4+2],CSSTIMOV DX,OFFSET START+15SHR DX,4ADD DX,10HMOV AL,0MOV AH,31HINT 21HCODE ENDSSTACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSEND START程序名44 卸载中断指令.386DATA SEGMENT USE16DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,SS:STACKOLD_INT DW ?,?NEW16H:CMP AH,00HJE ATBCMP AH,10HJE ATBJMP DWORD PTR OLD_INTATB:PUSHFCALL DWORD PTR OLD_INTCMP AL,97 ;比较输入的ascii码 JAE NEXT1JMP QUITNEXT1: CMP AL,122JBE TOBIGJMP QUITTOBIG: sub AL,32QUIT: IRETSTART: XOR AX,AXMOV DS,AXMOV AX,DS:[16H*4]MOV OLD_INT,AX ;保存偏移部分 MOV AX,DS:[16H*4+2]MOV OLD_INT+2,AX ;保存段值CLIMOV WORD PTR DS:[16H*4],11E0HMOV WORD PTR DS:[16H*4+2],F000HSTIMOV DX,OFFSET START+15SHR DX,4ADD DX,10HMOV AL,0MOV AH,31HINT 21HCODE ENDSSTACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSEND START3.2.4实验步骤1.编译,链接。

2. 观察提示信息,若出错,则用编辑程序修改错误,修改后再重新编译。

3. 在键盘键入小写字母和大写字母,用空格符号分开,观察输出。

4.(思考题)在DOS命令行下键入小写字母,屏幕显示为大写,键入大写时不变。

执行TD,在代码区输入指令“mov AX,0”看是否能发生变化。

5. (思考题)编写中断服务程序的终止程序,并做观察。

相关文档
最新文档