汇编语言第四次上机实验报告

合集下载

西安交通大学第四次汇编上机报告

西安交通大学第四次汇编上机报告

西安交通大学第四次汇编上机报告80x86 汇编语言程序设计课内实验报告班级实验时间2021.6.10姓名学号实验内容概述(1)试编制一程序,要求测出一个子程序的运行时间(指该子程序从被调用、执行、再返回调用程序所花费的时间),并把其运行时间按照时分秒(HH:MM:SS)的形式在屏幕上输出。

(使用时钟服务INT 1AH)(2)编写程序,使类型1CH 的中断向量指向中断处理程序COUNT,COUNT 统计1CH 中断次数并存入字变量单元NUM 中。

程序启动后等待用户输入,输入字符Q 后退出,并将NUM 值用十六进制形式显示出来。

例如NUM 的内容为1234h,则在屏幕上显示1234h。

(3)编写一个程序,接收从键盘输入的10 个十进制数字(你的学号),输入回车符则停止输入,然后将这些数字加密后(用XLAT 指令变换)存入内存缓冲区BUFFER。

实验步骤(1)定义时分秒数据段,调用子程序ENCRYPT,子程序中调用DOS 系统的INT1AH 中的时钟服务,将得到的值赋给HH、MM、SS,最后调用INT21H 的9号功能,在屏幕上显示出来(2)定义数据段,修改1 号中断为COUNT,保存1CH 中断向量,然后使类型1CH 的中断向量指向中断处理程序COUNT,COUNT 统计1CH 中断次数并存入字变量单元NUM 中。

调用INT21H0A 号功能读取用户在缓存区的键入字符,当检测到输入字符Q 后退出,用02 号功能将NUM 值用十六进制形式显示出来(3)调用INT21H0A 号功能将键盘输入读取至缓存区,接收从键盘输入的10个十进制数字,同时判断当输入回车符则停止输入,然后将这些数字加密后(用XLAT 指令变换)存入内存缓冲区BUFFER。

实验中遇到的问题及其解决方法本次实验主要是做了对DOS 和BIOS 功能的使用,过程很顺利,没有遇到困难。

实验结果正确年月日建议无备注无。

微机原理与应用第四次实验报告

微机原理与应用第四次实验报告

微机原理与应用第四次实验报告实验6 汇编语言程序结构一、实验目的1.掌握汇编语言项目上机过程2.掌握汇编语言程序结构和常用伪操作3.掌握汇编语言程序设计和调试方法4.掌握MSP430F1xx基本I/O控制方法二、实验任务1.学习汇编指示性语句(可在simulator下完成)在EWH8下新建项目Lab_6,编写下面程序L6_directives.s43(程序清单见后页,该程序只是为了学习指示性语句,程序本身并没有实现什么特定功能),利用project/remove移出模板文件test_asm.s43,点击project/add/files将L6_directives.s43添加到项目中。

1) 利用EW430下的view/memory查看DATA16_C段中定义的存储单元内容和地址,在memory/go的窗口内输入存储单元的符号(如number1)即可查看到该符号对应的存储单元地址和内容,注意在L6_directives.s43程序中使用这些存储单元的内容和地址的方法;利用view/disassembly反汇编程序,对比源程序,利用每条指令后的注释,学习其中用到的指示性操作,如:#define、SFB、SFE、SIZEOF、$等,并能在今后的程序设计中使用。

2) 在L6_directives.s43中,number4和number1分别被定义成了什么?二者有何不同?#number4和#number1这两个操作有何不同?MOV #number4, R7和MOV number4, R7执行的结果会相同吗?为什么?3) 如图6-1所示,点击项目中的msp430x14x.h文件,了解该文件中用到的指示性语句,今后的实验中会用到该文件中的定义。

答2.编程控制实验板上发光二级管按下面4种规律循环显示1) 8个LED灯顺时针一个一个单独点亮,每次只有一个灯亮,其他灯灭;2) 4个奇数号LED灯和4个偶数号LED灯交替点亮各一次;3) 8个LED灯两两点亮,顺序为LED1和8,LED2和7,LED3和6,LED4和5,每次只有两个灯亮,其他灯灭;4) 8个LED灯全亮,全灭注意:在灯的状态变化中,需留一定延时,以便视觉能感受到灯的亮灭,要求编写一延时子程,需要延时的地方,用CALL指令调用该子程。

汇编语言第四次上机实验报告

汇编语言第四次上机实验报告

汇编语言第四次上机实验报告时间: 2013/5/10 7:00-9:30 地点:南一楼803实验人员:计科10班王涛学号: U201114445一、题目1、用三种方式获取中断类型码10H对应的中断处理程序的入口地址。

(1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息,指出中断类型码10H 对应的中断处理程序的入口地址。

(使用TD观看即可)。

使用TD观看时,在调试工具下调入以前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H 时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。

(2)编写程序,用DOS系统功能调用方式获取,观察相应的出口参数与(1)看到的结果是否相同(使用TD观看即可)。

(3)编写程序,直接读取相应内存单元,观察读到的数据与(1)看到的结果是否相同.2、编制时钟显示程序。

要求每隔1s在屏幕右下角显示“年-月-日时:分:秒”,并将程序驻留在内存。

3、安装MASM32软件包,以其中的一个例子(如example\3dframes)为例,试用软件包中的集成汇编、连接和调试(TD32.EXE)功能。

软件包从汇编教学网站上下载,操作参见《80X86汇编语言程序设计上机指南》第七章。

二、实验要求1. 在调试工具下调入之前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。

操作提示:由于INT 21H内部的代码较长,为便于从中断处理程序返回到主程序,可在主程序INT 21H后面的指令上先设置好断点,当不再想跟踪中断处理程序时按F9即可。

实验报告的3、4、5 三个部分不用写。

2. 提示:CMOS内部07,08,09单元中分别存放着日、月、年的信息,“年”只显示低2位即可。

汇编教学网站(http://202.114.1.86)上有CMOS参考资料。

汇编上机实验报告心得体会

汇编上机实验报告心得体会

汇编语言程序设计第一次上机作业1.从键盘上接受一个字符,找出他的前导字符和后继字符,按顺序显示这三个字符。

寄存器分配: AL :存输入值x DL :输出显示 流程图:如右图所示 DA TA SEGMENTA DB 0DA TA ENDSSTACK SEGMENT STACKDB 200 DUP(0) STACK ENDSCODE SEGMENT ASSUME DS:DA TA,SS:STACK,CS:CODE S: MOV AX,DA TAMOV DS,AX MOV AH,1INT 21H INC AL MOV DL,AL MOV AH,2 INT 21HDEC ALMOV DL,AL MOV AH,2 INT 21H DEC AL MOV DL,AL MOV AH,2 INT 21H CODE ENDS END S2.从键盘上输入一个数字字符,如不是,显示‘not odd ’,否则显示‘odd ’。

寄存器分配: AL :存输入值x DL :输出显示流程图:如右图所示 程序代码如下:DA TA SEGMENT A DB 0BUF DB,'NOT ODD$' EA DB,'ODD$' DA TA ENDSSTACK SEGMENT STACK DB 200 DUP(0) STACK ENDSCODE SEGMENTASSUME DS:DA TA,SS:STACK,CS:CODE S: MOV AX,DA TA MOV DS,AX MOV AH,1 INT 21H CMP AL,'0' JNGE B CMP AL,'9' JGE B LEA DX,EA MOV AH,9 INT 21H JMP CB: LEA DX,BUF MOV AH,9 INT 21HC: MOV AH,4CH INT 21H CODE ENDS END S第二次上机作业1.将以H为首地址的字节存储区中的技能被3整除又能被13整除的无符号整数的个数(假定<=9)显示出来;同时对应的显示它们分别对应的地址偏移量。

汇编语言实验报告四

汇编语言实验报告四

实验4实验学时: 2 实验地点:二综实验日期:一、实验目的掌握汇编编程规范,熟悉编程环境。

二、实验内容编程计算3550H-2320H,按16进制输出计算所得的差1230H。

再输出3550H-2321H的差,检验程序的正确性。

提示:考虑依次将1230H(即0001 0010 0011 0000B)从高位到低位,每4位二进制数一组分离出来,再将4位二进制数转换为ASCII码,利用DOS系统功能调用的2号子功能输出,就得到16进制数据的输出效果。

本题要求综合应用移位操作、逻辑操作等指令,并利用条件转移指令实现简单的循环程序,程序流程如图1所示。

DOS系统功能调用的2号子功能格式见dos调用表。

图1 16进制数据输出程序流程图三、实验步骤算法及关键代码1.分析1)关于rol指令rol bx,t:把目的地址中的数据循环左移t次,每次从最高位(最左)移出的数据位都补充到最低位(最右),最后从最高位移出的数据位保存到CF标志位。

2)将dl4位二进制转换为ASCII码add dl,30h2.主要代码如下DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV bx,3550hMOV ax,2320hsub bx,axmov cx,4;此处输入代码段代码B: rol bx,1rol bx,1rol bx,1rol bx,1mov dl,bland dl,00001111badd dl,30h;二进制转换为ASCII码mov ah,02hint 21hloop BMOV AH,4CHINT 21HCODES ENDSEND START3.运行4.执行结果如下四.实验小结(简单说明实验过程中出现的问题和解决方法)1. 出现错误“MOV AH,2h INT 21H ”未写在主程序段B内,导致没有输出。

《汇编语言》实验报告

《汇编语言》实验报告

《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。

实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。

汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。

本实验通过编写汇编语言程序,加深对汇编语言的理解。

二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。

2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。

3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。

b.设置段寄存器,将数据段地址加载到DS寄存器中。

c.设置显示模式和光标位置。

d.将字符串逐个字符输出到屏幕上。

e.关闭显示模式。

4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。

5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。

三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。

通过程序分析和调试过程,加深了对汇编语言的理解和掌握。

四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。

通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。

同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。

在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。

总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。

汇编上机实验报告

汇编上机实验报告

汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。

实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。

程序运行正常,输出结果与预期一致。

实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。

程序运行正常,输出结果与预期一致。

实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。

程序运行正常,输出结果与预期一致。

实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。

汇编语言实验报告4

汇编语言实验报告4

程及屏幕字符显示程序一、实验目的1、熟练掌握汇编语言的程序格式,程序设计方法;学会使用masm6.11对源程序进行编译、链接、调试和运行2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。

3、利用^Break退出程序的方法及局限性。

4、汇编程序的编写二、实验任务1学习汇编语言程序的上机过程2. 利用INT 21的09H号功能调用显示字符串。

验证以下程序1)用A命令在100H处键入下列程序:MOV AH, 9MOV DX,110INT 21INT 202)用A命令在110H处键入下列字符串的ASCII码:DB 'This is a sample!$'3)用N命令和W命令将此程序(包括数据区)存入文件名为的磁盘文件中。

(存入前BX:CX必须置为文件长度值)。

4)用Q命令退出DEBUG。

5)在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG 检查程序有无错误。

(给出结果截图)3、利用INT 21H 2号功能显示字符: 1)用A命令在100H处键入下列程序: XOR DL,DLMOV CX,100LOP: MOV AH,2INT 21INC DLPUSH CXMOV CX,8DELY: PUSH CXMOV CX,256J: LOOP JPOP CXLOOP DELYPOP CXLOOP LOPINT 202)用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。

仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?3)按CTRL+BREAK退出此程序,若一次不行可多做几次。

4 编写一个简化的段定义结构程序:先提示输入数字“Input number:0-9”,然后在下一行显示输入的数字,结束;如果不是键入了0-9 数字,就提示错误“ERROR!”,继续等待输入数字。

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

汇编语言第四次上机实验报告时间: 2013/5/10 7:00-9:30 地点:南一楼803实验人员:计科10班王涛学号: U201114445一、题目1、用三种方式获取中断类型码10H对应的中断处理程序的入口地址。

(1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息,指出中断类型码10H 对应的中断处理程序的入口地址。

(使用TD观看即可)。

使用TD观看时,在调试工具下调入以前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H 时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。

(2)编写程序,用DOS系统功能调用方式获取,观察相应的出口参数与(1)看到的结果是否相同(使用TD观看即可)。

(3)编写程序,直接读取相应内存单元,观察读到的数据与(1)看到的结果是否相同.2、编制时钟显示程序。

要求每隔1s在屏幕右下角显示“年-月-日时:分:秒”,并将程序驻留在内存。

3、安装MASM32软件包,以其中的一个例子(如example\3dframes)为例,试用软件包中的集成汇编、连接和调试(TD32.EXE)功能。

软件包从汇编教学网站上下载,操作参见《80X86汇编语言程序设计上机指南》第七章。

二、实验要求1. 在调试工具下调入之前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。

操作提示:由于INT 21H内部的代码较长,为便于从中断处理程序返回到主程序,可在主程序INT 21H后面的指令上先设置好断点,当不再想跟踪中断处理程序时按F9即可。

实验报告的3、4、5 三个部分不用写。

2. 提示:CMOS内部07,08,09单元中分别存放着日、月、年的信息,“年”只显示低2位即可。

汇编教学网站(http://202.114.1.86)上有CMOS参考资料。

程序可参见教材6.2节的例1和例2。

实验报告要完整。

3.在TD32中注意观察调用WIN API函数的指令序列特点,注意感受WINDOWS消息机制,掌握WINDOWS窗口程序的基本调试方法。

实验报告的3、4、5 三个部分不用写。

三、寄存器分配和变量定义说明题目一:(1)略(2)系统功能调用35H,入口参数为AL=10H,取中断信息。

(3)直接把主存中的DS:[40H]→IP,DS:[42H]→CS赋值给寄存器BX和CX题目二:略题目三:略四、流程图题目一:略题目二:题目三:略五、源程序题目一:(1)略(2):.386CODE SEGMENT USE16ASSUME CS:CODESTART: XOR AX,AXMOV DS,AXMOV AX,3510HINT 21HMOV AH,4CHINT 21HCODE ENDS子程序NEW08H 流程框END START(3):.386CODE SEGMENT USE16ASSUME CS:CODESTART:XOR AX,AXMOV DS,AXXOR BX,BXXOR CX,CXMOV BX,DS:[40H]MOV CX,DS:[42H]MOV AH,4CHINT 21HCODE ENDSEND START题目二:.386STACK SEGMENT USE16 STACK ;主程序的堆栈段DB 200 DUP (?)STACK ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:CODE,SS:STACKCOUNT DB 18 ;“滴答”计数YEAR DB ?,?,'-' ;年的ASCII码MONTH DB ?,?,'-' ;月的ASCII码DAY DB ?,?,' ' ;日的ASCII码HOUR DB ?,?,':' ;时的ASCII码MIN DB ?,?,':' ;分的ASCII码SEC DB ?,? ;秒的ASCII码BUF_LEN = $-YEAR ;计算显示信息长度CURSOR DW ? ;原光标位置OLD_INT DW ?,? ;原INT 08H的中断矢量;新的INT 08H的代码NEW08H PROC FARPUSHFCALL DWORD PTR CS: OLD_INT;完成原功能DEC CS:COUNT ;(倒)计数JZ DISP ;计满18次,转时钟显示IRET ;未计满,中断返回DISP: MOV CS:COUNT,18 ;重置计数返回STI ;开中断PUSHA ;保护现场PUSH DSPUSH ESMOV AX,CS ;将DS、ES指向CSMOV DS,AXMOV ES,AXCALL GET_TIME ;获取当前日期和时间,并转换成ASCII码MOV BH,0 ;获取0号显示页面当前的光标位置MOV AH,3INT 10HMOV CURSOR,DX ;保存原光标位置MOV BP,OFFSET YEAR ;ES:[BP]指向显示信息的起始地址MOV BH,0 ;显示到0号页面MOV DH,25 ;显示在26行MOV DL,80-BUF_LEN ;显示在最后几列(光标位置设到右上角)MOV BL,0AH ;显示字符的属性(亮绿色)MOV CX,BUF_LEN ;显示的字符串长度MOV AL,0 ;BL包含显示属性,写后光标不动MOV AH,13H ;调用显示字符串的功能INT 10H ;在右下角显示出当前时间MOV BH,0 ;对0号页面操作MOV DX,CURSOR ;恢复原来的光标位置MOV AH,2 ;设置光标位置的功能号INT 10H ;还原光标位置(保证主程序的光标位置不受影响)POP ESPOP DSPOPA ;恢复现场IRET ;中断返回NEW08H ENDP;取日期和时间子程序,从RT/COMS RAM中取得年月日时分秒;并转化成ASCII码存放在对应变量中GET_TIME PROCMOV AL,9 ;9是“年”信息的偏移地址OUT 70H,AL ;设定将要访问的单元是偏移值为9的“年信息”JMP $+2 ;延时,保证端口操作的可靠性IN AL,71H ;读取“年”信息MOV AH,AL ;将2位压缩的BCD码转化成未压缩的BCD码AND AL,0FHSHR AH,4ADD AX,3030H ;转换成对应的ASCII码XCHG AH,AL ;高位放在前面显示MOV WORD PTR YEAR,AX;保存到YEAR变量指示的前2个字节中MOV AL,8 ;8是“月”信息的偏移地址OUT 70H,ALJMP $+2IN AL,71H ;读取“月”信息MOV AH,AL ;转换成对应的ASCII码AND AL,0FHSHR AH,4ADD AX,3030HXCHG AH,ALMOV WORD PTR MONTH,AX;保存到MONTH变量指示的前2个字节中MOV AL,7 ;7是“日”信息的偏移地址OUT 70H,ALJMP $+2IN AL,71H ;读取“日”信息MOV AH,AL ;转换成对应的ASCII码AND AL,0FHSHR AH,4ADD AX,3030HXCHG AH,ALMOV WORD PTR DAY,AX ;保存到DAY变量指示的前2个字节中MOV AL,4 ;4是“时”信息的偏移地址OUT 70H,ALJMP $+2IN AL,71H ;读取“时”信息MOV AH,AL ;转换成对应的ASCII码AND AL,0FHSHR AH,4ADD AX,3030HXCHG AH,ALMOV WORD PTR HOUR,AX;保存到HOUR变量指示的前2个字节中MOV AL,2 ;2是“分”信息的偏移地址OUT 70H,ALJMP $+2IN AL,71H ;读取“分”信息MOV AH,AL ;转换成对应的ASCII码AND AL,0FHSHR AH,4ADD AX,3030HXCHG AH,ALMOV WORD PTR MIN ,AX;保存到MIN变量指示的前2个字节中MOV AL,0 ;0是“秒”信息的偏移地址OUT 70H,ALJMP $+2IN AL,71H ;读取“秒”信息MOV AH,AL ;转换成对应的ASCII码AND AL,0FHSHR AH,4ADD AX,3030HXCHG AH,ALMOV WORD PTR SEC ,AX;保存到SEC变量指示的前2个字节中RETGET_TIME ENDP;初始化(中断处理程序的安装)及主程序BEGIN: PUSH CSPOP DSMOV AX,3508H ;获取原08H的中断矢量INT 21H ;系统功能调用35HMOV OLD_INT ,BX ;保存中断矢量MOV OLD_INT+2,ESMOV DX ,OFFSET NEW08HMOV AX,2508H ;系统新的08H中断矢量INT 21H ;系统功能调用35H;... ;主程序的其他工作STI ;开中断MOV DX,OFFSET BEGIN+15;计算中断处理程序占用的字节数,+15是为了在计算节数时能向上取整MOV CL,4SHR DX,CL ;把字节数换算成节数(每节代表16个字节)ADD DX,100H ;驻留的长度还需包括程序前缀的内容MOV AL,0 ;退出码为0MOV AH,31H ;退出时,将(DX)节的主存单元驻留(不释放)INT 21HCODE ENDSEND BEGIN题目三:略六、实验步骤题目一:(1)直接在TD中观察中断矢量表,得出IP和CS的值。

(2)①录入源代码存盘为2.asm,汇编源程序2.asm ,并链接生成EXE文件,若报错则找出错误修改后重新存盘进行汇编,直至完全通过。

②在TD中单步执行2.exe,运行至21H后观察记录BX和ES中的值。

(3)①录入源代码存盘为3.asm,汇编源程序3.asm ,并链接生成EXE文件,若报错则找出错误修改后重新存盘进行汇编,直至完全通过。

②在TD中单步执行3.exe,观察并记录BX和CX中的值。

题目二:①录入源代码存盘为showt.asm,汇编源程序showt.asm ,并链接生成EXE文件,若报错则找出错误修改后重新存盘进行汇编,直至完全通过。

②运行showt.exe,观察结果是否与预想一致。

③在TD中观察程序运行情况。

题目三:①下载并安装MASM32软件包,找到其中的一个例子example\3dframes②汇编源文件 ml /c /coff 3dframes.asm③将资源文件rsrc.rc转换成目标文件 rc rsrc.rccvtres /machine:ix86 rsrc.res④连接link 3dframes.obj rsrc.obj⑤执行3dframes⑥用TD32观察程序运行情况七、实验记录八、心得。

相关文档
最新文档