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

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.利用仿真软件编程。

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

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

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

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

华中科技大学计算机系统基础实验报告

华中科技大学计算机系统基础实验报告

课程实验报告课程名称:计算机系统基础专业班级:学号:姓名:指导教师:报告日期:2016年5月24 日计算机科学与技术学院目录实验1: (2)实验2: (9)实验3: (22)实验总结 (30)实验1:数据表示1.1 实验概述本实验的目的是更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。

实验中,你需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中你将加深对数据二进制编码表示的了解。

实验语言:c; 实验环境: linux1.2 实验内容需要完成bits.c 中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。

1.3 实验设计源码如下:/** lsbZero - set 0 to the least significant bit of x* Example: lsbZero(0x87654321) = 0x87654320* Legal ops: ! ~ & ^ | + << >>* Max ops: 5* Rating: 1*/int lsbZero(int x) {//x右移一位再左移一位实现把最低有效位置0x = x>>1;x = x<<1;return x;}/** byteNot - bit-inversion to byte n from word x* Bytes numbered from 0 (LSB) to 3 (MSB)* Examples: getByteNot(0x12345678,1) = 0x1234A978* Legal ops: ! ~ & ^ | + << >>* Max ops: 6* Rating: 2*/int byteNot(int x, int n) {//x第n个字节每位都和1异或实现取反int y = 0xff;n = n<<3;y = y<<n;x = (x^y);return x;}/** byteXor - compare the nth byte of x and y, if it is same, return 0, if not, return 1* example: byteXor(0x12345678, 0x87654321, 1) = 1* byteXor(0x12345678, 0x87344321, 2) = 0* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 2*/int byteXor(int x, int y, int n) {//把x和y的第n个字节取出来异或,再转换为逻辑的0和1n = n<<3;x = x>>n;y = y>>n;x = x&(0xff);y = y&(0xff);return !!(x^y);}/** logicalAnd - x && y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int logicalAnd(int x, int y) {//把x和y分别转化为逻辑的0和1,再相与x = (!(!x))&(!(!y));return x;}/** logicalOr - x || y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int logicalOr(int x, int y) {//把x和y分别转化为逻辑的0和1,再相或x = (!(!x))|(!(!y));return x;}/** rotateLeft - Rotate x to the left by n* Can assume that 0 <= n <= 31* Examples: rotateLeft(0x87654321,4) = 0x76543218* Legal ops: ~ & ^ | + << >> !* Max ops: 25* Rating: 3*/int rotateLeft(int x, int n) {//先构造低n位为1,高(32-n)位为0的数z,x左移n位后的数加上x右移(32-n)位的数&z即可int z;z = ~(((1<<31)>>31)<<n);x = ((x>>(32+(~n+1)))&z)+(x<<n);return x;}/** parityCheck - returns 1 if x contains an odd number of 1's* Examples: parityCheck(5) = 0, parityCheck(7) = 1* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 4*/int parityCheck(int x) {//每次将数的低半数位与高半数位比较,再把y右移31位,最后把y转化为逻辑的0和1int y;y = x<<16;y = y^x;y = y^(y<<8);y = y^(y<<4);y = y^(y<<2);y = y^(y<<1);y = y>>31;return !(!y);}/** mul2OK - Determine if can compute 2*x without overflow* Examples: mul2OK(0x30000000) = 1* mul2OK(0x40000000) = 0** Legal ops: ~ & ^ | + << >>* Max ops: 20* Rating: 2*/int mul2OK(int x) {//把x第31位和30位分别和1做按位与,再异或,再和1异或int m;m = ((x>>31)&0x1)^((x>>30)&0x1);return m^0x1;}/** mult3div2 - multiplies by 3/2 rounding toward 0,* Should exactly duplicate effect of C expression (x*3/2),* including overflow behavior.* Examples: mult3div2(11) = 16* mult3div2(-9) = -13* mult3div2(1073741824) = -536870912(overflow)* Legal ops: ! ~ & ^ | + << >>* Max ops: 12* Rating: 2*/int mult3div2(int x) {//左移一位再+x即x*3,右移一位的时候,当y的最高位和最低位都为0时还要+1int y = (x<<1)+x;y = (y>>1)+(((y>>31)&1)&(((y<<31)>>31)&1));return y;}/** subOK - Determine if can compute x-y without overflow* Example: subOK(0x80000000,0x80000000) = 1,* subOK(0x80000000,0x70000000) = 0,* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int subOK(int x, int y) {//x的最高有效位和y的最高有效位不同且x和(x-y)的最高位不同才能判断溢出int m = (x>>31)&1;int n = (y>>31)&1;x = (m^n)&(m^(((x+(~y+1))>>31)&1));return (!x);}/** absVal - absolute value of x* Example: absVal(-1) = 1.* You may assume -TMax <= x <= TMax* Legal ops: ! ~ & ^ | + << >>* Max ops: 10* Rating: 4*/int absVal(int x) {//x最高位为0时就是x,最高位为1时是~x+1int y = x>>31;x = (y&(~x+1))+((~y)&x);return x;}/** float_abs - Return bit-level equivalent of absolute value of f for * floating point argument f.* Both the argument and result are passed as unsigned int's, but * they are to be interpreted as the bit-level representations of * single-precision floating point values.* When argument is NaN, return argument..* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while* Max ops: 10* Rating: 2*/unsigned float_abs(unsigned uf) {int x=uf&(~(1<<31));if(x>0x7f800000){return uf;}else return x;}/** float_f2i - Return bit-level equivalent of expression (int) f* for floating point argument f.* Argument is passed as unsigned int, but* it is to be interpreted as the bit-level representation of a* single-precision floating point value.* Anything out of range (including NaN and infinity) should return * 0x80000000u.* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while* Max ops: 30* Rating: 4*/int float_f2i(unsigned uf) {unsigned num=0x80000000;int x=(uf&0x007fffff)^0x00800000;int order=0;order=(uf&0x7f800000)>>23;if(order>158){return num;}if(order<127) return 0;else if(((uf>>31)&1)==1){if(order>150){return ~(x<<(order-150))+1;}else return ~(x>>(150-order))+1;}else{if(order>150) return x<<(order-150);else return x>>(150-order);}}1.4 实验过程编写源码,运行btest,得出实验结果。

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

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

课程实验报告课程名称:汇编语言程序设计实验实验名称:实验一简单程序设计 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.运行程序中出现了如下问题。

华中科技大学电力系统综合实验报告汇编

华中科技大学电力系统综合实验报告汇编

电力系统综合实验报告第一部分综合实验台1、实验目的通过实验加深对电力系统暂态稳定性内容的理解,在对不同类型短路数据的分析中锻炼独立思考的能力,进一步了解不同短路故障对电力系统的危害。

实验方式为在理想实验台上模拟最简单的电力系统暂态稳定性问题,以期巩固学生在前一阶段的学习中对相关内容的掌握。

2、实验原理与接线电力系统中不同类型的短路故障引起的最大短路电流可由下式得到,推导过程可参见《电力系统分析》一书相关章节内容。

单相接地短路:两相相间短路:两相接地短路:三相对称短路:如下图1实验接线模拟了单机无穷大系统。

图1单机无穷大系统3、实验结果与数据分析⑴、不同故障类型对短路电流影响在下表中根据QF1~QF6的开断来选择单机无穷大系统的运行方式。

XL1接入双回线运行、XL2接入双回线运行。

表格 1 短路切除时间0.5s单相接地短路实验数据表格 3 短路切除时间0.5s两相接地短路实验数据根据以上表格得出以下结论:1)在各种不同类型的短路中,系统以双回线运行时短路电流较系统单回线运行时短路电流更大,与序网分析结果一致。

2)在各种不同类型的短路中,XL1接入时短路电流相对XL2接入时短路电流更小,以单相短路为例进行分析,可知接入XL阻抗越小,短路电流越大。

判断实验台设置中XL1大于XL2。

3)对比各组实验数据,发现短路电流大小在不同短路类型中呈现有以下关系。

两相相间短路两相接地短路三相接地短路单相接地短路根据相关实验原理分析,由于,一般有三相接地短路两相接地短路单相接地短路两相相间短路。

实验台中元件参数不可测量,经分析判断本次实验中负序阻抗偏小导致了两相短路电流偏大的现象发生。

4)小组实验中发现通过实验台面板调节似乎无法改变内部默认参数,继电器动作阈值无法重新整定,动作电流始终为5A,导致实验中多次出现未按预期跳闸的现象发生。

可能因为设备老化或内部模块未连接。

⑵、不同故障切除时间对短路电流影响表格 5 不同短路切除时间最大短路电流记录由I第二部分 动模实验记录的量:故障线路首端和末端电压电流(6个波形)电压电流的测量可以通过电压电流表计模型测量,也可以通过断路器和节点测量。

汇编语言实验报告_6

汇编语言实验报告_6

青岛理工大学课程实验报告
课程名称汇编语言程序设计班级实验日期
2013.11.3
姓名学号实验成绩
实验
名称
子程序
实验目的及要求1.掌握子程序设计相关指令和伪指令的使用方法
2.掌握子程序设计方法, 特别是参数传递方法
3.掌握主程序和子程序之间的调用关系和调用方法
4.熟悉循环和子程序结合应用解答问题的思路
实验环境1.命令行方式
2.MASM.EXE LINK.EXE DEBUG.EXE
实验内容1.设DATA1开始的内存单元中, 存放着一串带符号字数据, 要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA1开始的单元。

然后在显示器输出排好序的数据, 中间用’,’隔开。

2.输出数据使用子程序方式。

算法描述及实验步骤步骤:
(1)设置数据段地址
(2)设置堆栈段地址
(3)设置堆栈指针
(4)调用9号功能, 输出一个提示性字符串。

(5)循环进入子程序, 输出原始数据。

(6)在子程序内循环输出每一位的十进制数字。

(7)主程序进行内外循环, 进行冒泡排序。

(8)再一次调用子程序输出排序后的结果。

调试过程及实验结果调试过程:
(2)(1)在输出时, 调用DOS 9号功能, 并不是只要语句MOV AH,09H
(3)它是存在入口条件的, 入口条件:DS:DX=输出字符缓冲区首地址。

所以前面必须加上MOV DX,OFFSET NOTE1。

(4)汇编语言是不会再输出汉字的。

(5)子程序结束时一定要有RET
(6)冒泡排序也遇到一些困难。

调试结果:。

汇编实验报告

汇编实验报告

汇编语言实验报告学院:计算机学院专业:网络工程指导老师:纪平实验一汇编语言程序调试方法一、实验目的,1,熟悉汇编语言运行环境和方法2,了解如何使用汇编语言编制程序3,熟悉debug有关命令的使用方法4,利用debug掌握有关指令的功能5,利用debug运行简单的程序段二、实验内容1,学会输入、编辑汇编语言程序2,学会对汇编语言程序进行汇编、连接和运行3,进入和退出debug程序4,学会debug中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

三、实验准备1,仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。

2,准备好程序清单、设计好调试步骤、测试方法、对运行结果的分析3,编写一个程序:比较2个字符串所含的字符是否相同。

若相同则显示’Match.’,否则显示’No match!’。

4,仔细阅读有关debug命令的内容,对有关命令,都要事先准备好使用的例子。

四、实验步骤1,在DOS提示符下,进入masm目录。

2,在MASM目录下启动edit编辑程序,输入源程序,并对其进行汇编、连接和运行。

(1)调用edit输入、编辑源程序并保存在指定的目录中。

例:edit abc.asm(2)用汇编程序masm对源程序汇编产生目标文件obj。

例:masm abc(3)用连接程序link产生执行文件exe。

例:link abc(4)执行程序3,详细记录每一步所用的命令,以及查看结果的方法和具体结果。

五、实验结果1,输入sample.asm的源码;PROGRAM TITLE GOES HERE--Compare string;************************************************************************** **datarea segment ;define data segmentstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.';mess1 db 'Match',13,10,'$'mess2 db 'No match!',13,10,'$'datarea ends;************************************************************************** **program segment ;define code segment;----------------------------------------------------------------------------main proc farassume cs:program,ds:datarea,es:datareastart: ;starting execution address;set up stack for returnpush ds ;save old data segmentsub ax,ax ;put zero in AXpush ax ;save it on stack;set DS register to current data segmentmov ax,datarea ;datarea segment addrmov ds,ax ;into DS registermov es,ax ;into ES register;MAIN PART OF PROGRAM GOES HERElea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp:mov ah,09int 21hret ;return to DOSmain endp ;end of main part of program;--------------------------------------------------------------------program ends ;end of code segment;****************************************************************** **end start ;end assembly2,汇编生成目标文件3,连接生成exe文件4,执行程序5,调试程序-g命令在debug环境下运行该文件-d0(-d ds:ea)命令显示指定数据段地址中的内容-u命令显示汇编源程序-e ds:ea更改指定位置的内容实验二用DEBUG编程使用堆栈段AX和BX的内容进行交换等一、实验目的:1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

华中科技大学汇编实验报告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、操作系统:Windows 102、编程工具:MASM(Microsoft Macro Assembler)三、实验内容1、数据传送与运算编写程序实现不同寄存器之间的数据传送。

进行简单的算术运算,如加法、减法、乘法和除法,并将结果存储在指定的寄存器或内存单元中。

2、逻辑运算与移位操作进行逻辑运算,包括与、或、非和异或操作。

实现移位操作,如左移和右移,并观察数据的变化。

3、分支与循环结构使用条件跳转指令实现分支结构,根据不同的条件执行不同的代码段。

运用循环指令实现循环操作,如计数循环和条件循环。

4、子程序调用编写子程序来完成特定的功能,如计算阶乘、查找最大值等。

在主程序中调用子程序,并传递参数和获取返回值。

四、实验步骤1、数据传送与运算打开 MASM 编程工具,新建一个汇编源文件。

使用 MOV 指令将数据从一个寄存器传送到另一个寄存器,例如:MOV AX, BX 。

进行加法运算,使用 ADD 指令,如:ADD AX, CX 。

进行减法运算,使用 SUB 指令,如:SUB DX, BX 。

乘法运算使用 MUL 指令,除法运算使用 DIV 指令,并将结果存储在合适的位置。

2、逻辑运算与移位操作在源文件中使用 AND 、OR 、NOT 和 XOR 指令进行逻辑运算,例如:AND AX, BX 。

对于移位操作,使用 SHL (左移)和 SHR (右移)指令,如:SHL AX, 2 表示将 AX 的值左移 2 位。

3、分支与循环结构使用 CMP 指令比较两个值,然后根据比较结果使用 JZ (等于零跳转)、JL (小于跳转)、JG (大于跳转)等条件跳转指令实现分支结构。

对于循环结构,使用 LOOP 指令实现计数循环,例如:MOV CX, 10 ;LABEL: ;LOOP LABEL 。

汇编语言编程实验报告

汇编语言编程实验报告

汇编语言编程实验报告学号:姓名:成绩:目录一、实验一: ......................................................错误!未定义书签。

二、实验二: (4)三、实验三: (8)四、实验四: (10)五、实验五: ......................................................错误!未定义书签。

六、实验六: (19)七、汇编实验总结 (23)实验一一. 实验题目【汇编语言补充作业T20T20】编写完整程序,利用】编写完整程序,利用DOS 系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。

二. 程序流程及思路实现字符串输入,需要分成三个步骤:实现字符串输入,需要分成三个步骤:1、在数据段中定义一个缓存区为存放字符串做准备;2、DOS 系统功能调用0AH 号子功能,(DS:DX DS:DX))= = 输入缓冲区首址;输入缓冲区首址;输入缓冲区首址;3、在输入的字符串尾加上‘、在输入的字符串尾加上‘$$’字符,以作为输出结束条件。

’字符,以作为输出结束条件。

实现字符串输出,则需要注意的问题是:实现字符串输出,则需要注意的问题是:1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;和字符串实际字符数;2、输出回车换行可利用字符串:、输出回车换行可利用字符串:CR DB 0AH,0DH,CR DB 0AH,0DH,CR DB 0AH,0DH,’’$’。

’。

三. 源程序清单DATA SEGMENTN EQU 50MAXLEN DB N ;MAXLEN DB N ;缓冲区字符的最大长度缓冲区字符的最大长度缓冲区字符的最大长度ACTLEN DB ? ;ACTLEN DB ? ;实际字符个数实际字符个数实际字符个数STRING DB N DUP(?) ;STRING DB N DUP(?) ;字符空间字符空间字符空间CR DB 0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXLEA DX,MAXLENMOV AH,0AHINT 21H ;字符串输入字符串输入MOV AH,09HLEA DX,CRINT 21H ;回车换行回车换行MOV BL,MAXLEN+1 ;取实际的字符长度取实际的字符长度MOV BH,0LEA SI,MAXLEN+2 ;取字符开始的首地址取字符开始的首地址MOV BYTE PTR [SI+BX],'$' ;输出结尾要加上输出结尾要加上$ $MOV DX,SI ;把开始存放字符的首地址赋给DX(注:以下程序采用b方法)方法)。

汇编实验报告一实验总结

汇编实验报告一实验总结

汇编实验报告一实验总结
实验报告一:汇编实验总结
实验目的:通过汇编实验,掌握汇编语言的基本语法和编程技巧,加深对计算
机底层工作原理的理解。

实验过程:在实验中,我们首先学习了汇编语言的基本语法和指令格式,包括
寄存器的使用、内存地址的访问、算术运算和逻辑运算等。

随后,我们进行了
一系列的编程练习,包括编写简单的程序来实现加法、乘法、比较大小等功能。

在实验的最后阶段,我们还学习了如何调用系统中断来实现输入输出操作。

实验结果:通过本次实验,我们深入了解了汇编语言的编程技巧和应用场景。

我们不仅掌握了汇编语言的基本语法,还学会了如何编写简单的汇编程序来实
现一些基本的功能。

同时,通过实验,我们对计算机底层的工作原理有了更深
入的理解,对计算机系统的运行机制有了更清晰的认识。

实验总结:本次汇编实验让我们深入了解了汇编语言的基本知识和编程技巧,
为我们今后的学习和工作打下了坚实的基础。

通过实验,我们不仅学会了如何
使用汇编语言编写程序,还对计算机系统的底层工作原理有了更深入的理解。

希望在今后的学习和工作中,我们能够继续深入研究汇编语言,不断提高自己
的编程水平,为计算机科学技术的发展贡献自己的力量。

华中科技大学实践报告(2篇)

华中科技大学实践报告(2篇)

第1篇一、实践背景随着我国高等教育的快速发展,高校实践教学的重要性日益凸显。

华中科技大学作为我国著名的高等学府,一直致力于培养具有创新精神和实践能力的高素质人才。

为了让学生更好地将理论知识与实践相结合,提高学生的综合素质,我校特组织了本次实践活动。

二、实践目的1. 增强学生的实践能力,提高学生的综合素质;2. 培养学生的创新精神和团队协作能力;3. 使学生更好地了解社会,拓宽视野;4. 为学生提供展示自我、锻炼自我的平台。

三、实践内容本次实践活动主要包括以下几个方面:1. 企业实习:组织学生到企业进行实习,了解企业生产流程、管理模式等,提高学生的实践能力;2. 社会调研:组织学生进行社会调研,了解社会热点问题,提高学生的社会责任感;3. 科技创新:组织学生参加科技创新竞赛,培养学生的创新精神和实践能力;4. 志愿服务:组织学生参加志愿服务活动,培养学生的奉献精神和服务意识。

四、实践过程1. 企业实习本次企业实习活动共组织了50名学生参加,分别前往了华为、腾讯、阿里巴巴等知名企业进行实习。

在实习期间,学生们积极参与企业各项工作,深入了解了企业文化和工作氛围。

通过实习,学生们不仅提高了自己的实践能力,还拓宽了视野,为今后的就业打下了坚实基础。

2. 社会调研本次社会调研活动共组织了30名学生参加,围绕“共享单车”、“垃圾分类”等热点问题展开调研。

学生们深入社区、公园等地,通过问卷调查、访谈等方式收集了大量一手资料。

调研成果为政府部门提供了有益参考,同时也提高了学生的社会责任感。

3. 科技创新本次科技创新活动共组织了20名学生参加,学生们围绕“智能机器人”、“绿色能源”等主题展开研究。

在指导老师的帮助下,学生们成功完成了多个创新项目,并在全国大学生科技创新竞赛中取得了优异成绩。

4. 志愿服务本次志愿服务活动共组织了40名学生参加,学生们分别前往养老院、孤儿院等地开展志愿服务。

在活动中,学生们用实际行动传递了爱心,弘扬了正能量。

华中科技大学自动控制实验报告汇总

华中科技大学自动控制实验报告汇总

2012 级《信号与控制综合实验》课程实 验 报 告(基本实验一:信号与系统基本实验)姓 名 曹 学 号 U2012 专业班号 水电1204班同组者1 招 学 号 U2012 专业班号 水电1204班指导教师 日 期 2015.1.3实验成绩 评 阅 人电气学科大类实验评分表基本实验实验编号名称/内容(此列由学生自己填写)实验分值评分二阶系统的模拟与动态研究二阶系统的稳态性能研究设计性实验实验名称/内容实验分值评分线性控制系统的设计与校正控制系统状态反馈控制器设计创新性实验实验名称/内容实验分值评分教师评价意见总分目录实验十一二阶系统的模拟与动态研究 (4)实验十二二阶系统的稳态性能研究 (10)实验十四线性控制系统的设计与校正 (24)实验十六控制系统状态反馈控制器设计 (28)实验心得 (33)实验十一 二阶系统的模拟与动态性能研究一、实验目的1.掌握典型二阶系统动态性能指标的测试方法。

2.通过实验和理论分析计算的比较,研究二阶系统的参数对其动态性能的影响。

二、实验原理典型二阶系统的方框图如图11-1:其闭环传递函数为:22222)(1)()(nn n s s k s Ts Ks G s G s ωξωωφ++=++=+=式中: TKKTn ==ωξ;21ζ为系统的阻尼比,n ω为系统的无阻尼自然频率。

任何二阶系统都可以化为上述的标准形式。

调节系统的开环增益K ,或时间常数T 可使系统的阻尼比分别为:0<ζ<1,ζ=1和ζ>1三种。

实验中能观测对应于这三种情况下的系统阶跃响应曲线是完全不同的。

三、实验设备和模拟电路图图11-1 典型二阶振荡环节的方框图s11+Ts K )(s R )(s C 图11-2 二阶系统模拟电路图电子模拟装置、数字示波器四、实验内容1、分别设置ξ=0;0<ξ<1;ξ> 1,观察并记录r(t)为正负方波信号时的输出波形C(t);分析此时相对应的各σp、ts,加以定性的讨论。

华中科技大学汇编实验报告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语言开发环境中实现与汇编语言程序的混合编程,其操作方法有可能是不同的。

8份华中科技大学检测技术实验报告

8份华中科技大学检测技术实验报告

编者寄语内含8篇华中科技大学检测技术实验报告,基本涵盖各个实验。

其中最后一篇含有书上的各种设计性实验,可供大家参考。

华科的孩子,没事偷着乐吧。

电气学科大类《信号与控制综合实验》实验报告(基本实验一:检测技术基本实验)姓名学号专业班号指导教师日期实验成绩评阅人实验二十二差动变压器的标定一、实验目的通过实验学习差动变压测试系统的组成和标定方法。

二、实验原理差动变压器由衔铁、初级线圈、次级线圈和线圈骨架等组成。

初级线圈作为差动变压器激励用,相当于变压器的原边;次级线圈由两个结构尺寸和参数相同的相同线圈反相串接而成,相当于变压器的副边。

差动变压器是开磁路,工作是建立在互感基础上。

由于零残电压的存在会造成差动变压器零点附近的不灵敏区,电压经过放大器会使放大器末级趋向饱和,影响电路正常关系,因此必须采用适当的方法进行补偿。

零残电压中主要包含两种波形成份:1、基波分量:这是由于差动变压器两个次级绕组因材料或工艺差异造成等效电路参数(M、L、R)不同,线圈中的铜损电阻及导磁材料的铁损,线圈中线间电容的存在,都使得激励电流与所产生的磁通不同相。

2、高次谐波:主要是由导磁材料磁化曲线非线性引起,由于磁滞损耗和铁磁饱和的影响,使激励电流与磁通波形不一致,产生了非正弦波(主要是三次谐波)磁通,从而在二次绕组中感应处非正弦波的电动势。

减少零残电压的办法有:1、从设计和工艺制作上尽量保证线路和磁路的对程;2、采用相敏检波电路;3、选用补偿电路。

相敏检波器工作原理:相敏检波电路如图所示,图○1为输入信号端,○2为交流参考电压输入端,○3为输出端。

○4为直流参考电压输入端。

⑤、⑥为整形电路将正弦信号转换成的方波信号,使相敏检波器中的电子开关正常工作。

当○2、○4端输入控制电压信号时,通过差动放大器的作用使D和J处于开关状态,从而把○1端输入的正弦信号转换成半波整流信号。

相敏检波器原理图三、实验所需部件差动变压器、音频振荡器、电桥、差动放大器、移相器、相敏检波器、低通滤波器、电压表、示波器、测微仪四、实验步骤(一)了解相敏检波器工作原理1.调节音频振荡器输出频率为5KHZ,输出幅值2V,将音频振荡器00端接相敏检波器的输入端①,相敏检波器的输出端③与低通滤波器的输入端连接,低通滤波器的输出端接数字电压表2V。

汇编实验报告6

汇编实验报告6

汇编实验报告6汇编实验报告6引言:汇编语言是一种底层编程语言,它直接操作计算机硬件,提供了对计算机底层资源的更精确控制。

在本次实验中,我们将继续学习和实践汇编语言的相关知识,探索其在计算机系统中的作用和应用。

一、实验目的本次实验旨在加深我们对汇编语言的理解,并通过实践进一步掌握汇编语言的基本概念、语法和应用。

具体目标如下:1. 掌握汇编语言的基本指令和寻址方式;2. 理解和实现简单的汇编程序;3. 学会使用调试工具调试汇编程序。

二、实验环境本次实验使用的环境为Windows操作系统和MASM汇编器。

在实验开始前,我们需要确保已经正确安装了MASM汇编器,并配置好了相关环境变量。

三、实验过程1. 编写程序本次实验我们将编写一个简单的汇编程序,实现两个数相加并输出结果的功能。

首先,我们需要使用文本编辑器打开一个新的文件,并保存为.asm格式。

接下来,我们将按照汇编语言的语法规则,逐步编写程序。

2. 汇编程序的结构一个标准的汇编程序由三个部分组成:数据段、代码段和堆栈段。

在数据段中,我们定义了需要使用的变量和常量;在代码段中,我们编写了实际的汇编指令;而堆栈段则用于存储程序执行过程中的临时数据。

3. 汇编指令的使用在本次实验中,我们将使用一些常见的汇编指令,如MOV、ADD、SUB等。

这些指令用于操作寄存器、内存和立即数,实现数据的传输、运算和比较等功能。

4. 调试程序编写完汇编程序后,我们需要使用调试工具对程序进行调试,以确保程序的正确性。

调试工具可以帮助我们逐条执行程序,并查看寄存器和内存的变化,从而找出程序中的错误。

四、实验结果与分析经过编写和调试,我们成功地实现了两个数相加并输出结果的功能。

我们可以通过调试工具查看程序执行过程中寄存器和内存的变化,以验证程序的正确性。

同时,我们还可以对程序进行性能分析,了解其在不同输入情况下的执行效率。

五、实验总结通过本次实验,我们深入学习了汇编语言的基本概念和应用。

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

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

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

特此声明!学生签名:日期:成绩评定指导教师签字:日期:目录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实验步骤 (6)3.1.5实验记录 (7)3.2任务2 (7)3.2.1设计思想及存储单元分配 (7)3.2.2流程图 (9)3.2.3源程序 (9)3.2.4实验步骤 (12)3.2.5实验记录 (12)3.3任务3 (14)3.3.1设计思想及存储单元分配 (14)3.3.2流程图 (14)3.3.3源程序 (14)3.3.4实验步骤 (17)3.3.5实验记录 (17)4体会 (18)参考文献 (19)1实验目的与要求(1) 掌握中断矢量表的概念;(2)熟悉I/O访问,BIOS功能调用方法;(3) 掌握实方式下中断处理程序的编制与调试方法。

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

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

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

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

任务2:编写一个接管键盘中断的中断服务程序并驻留内存,要求在程序返回DOS 操作系统后,键盘的按键A变成了按键B,而B变成了A。

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

(2)在DOS命令行下按键A,屏幕显示为B,按B时屏幕显示为A。

执行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中观察即可。

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

3.直接把主存中的DS:[40H]→IP,DS:[42H]→CS赋值给寄存器BX和CX。

3.1.2流程图无3.1.3源程序1.程序名renwu61.386CODE SEGMENT USE16ASSUME CS:CODESTART: XOR AX,AXMOV DS,AXMOV AX,3510HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.程序名renwu62.386STACK SEGMENT USE16 STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT USE16ASSUME CS:CODE, SS:STACKSTART: XOR AX,AXMOV DS,AXXOR BX,BXXOR CX,CXMOV BX,DS:[40H]MOV CX,DS:[42H]MOV AH,4CHINT 21HCODE ENDSEND START3.1.4实验步骤1.直接运行td,置数据区为当前区执行Goto,在地址输入窗口输:40H{(0:[10*4])->IP,(0:[10*4+2]->CS}读取连续的4个字节,前两个为偏移地址,后两个为段值。

然后置代码区为当前区。

输入刚才得到的值,得到对应的程序。

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

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

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

3.1.5实验记录(包括实验条件、输入/输出、错误和修改等信息的记录)1.实验环境条件:16M内存;WINDOWS XP命令行窗口;EDIT.EXE 2.0;MASM.EXE 6.0;LINK.EXE 5.2; TD.EXE 5.0。

2.方法一,直接观察ds段,可以观察到从0:40h开始低2个字节为0F96,高2个字节为3002;3.方法二,调用35号系统功能,在TD内观察到es 为3002,bx为0F96;4.方法三,将0:40h开始的低2个字节移至bx,高2个字节移至cx,得到cx为3002,bx为0F96;5.比较上述三种方法得到的结果,发现它们一致,说明以上方法实施得到的结果准确无误3.2任务23.2.1设计思想及存储单元分配设计思想:修改键盘驱动中断程序(int 16h),将中断矢量表0:58h开始的4个字节修改为新的中断程序的偏移地址和段首址,并保存号旧的键盘驱动中断程序的偏移地址和段首址。

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

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

3.2.2流程图开始INT 36H的功能号为00H或10HY调用OLD_INT输入为AN输入为BN正常返回AL结束Y返回AL改为BY返回AL改为A N3.2.3源程序程序名renwu63.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,41H ;比较输入的ascii码JNZ NEXT1 ;MOV AL,42HJMP QUITNEXT1: CMP AL,42HJNZ NEXT2MOV AL,41HJMP QUITNEXT2: CMP AL,61HJNZ NEXT3MOV AL,62HJMP QUITNEXT3: CMP AL,62HJNZ QUITMOV AL,61HQUIT: 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 NEW16HMOV 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 START3.2.4实验步骤1. 使用编辑程序EDIT.EXE录入源程序renwu63,编译,链接。

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

3. 执行该程序输入a/A,观察是否输出b/B;输入b/B,观察是否输出a/A。

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

2. 在键盘键入a/A,发现屏幕回显b/B;在键盘键入b/B,发现屏幕回显a/A,证明程序编写得准确无误。

当输入ababAB,输出:3.通过编写代码发现,将旧的中断程序的偏移地址与首地址保存下来后,可有有两种方式调用旧的中断程序:Jmp dword ptr old_int;Call dword ptr old_int;前一种方式,可直接结束新的(不返回至)中断程序;后一种方式,可返回至新的中断程序。

3.3任务33.3.1设计思想及存储单元分配1号系统功能调用读入字符,将用户输入转化为数字,作为信息的偏移地址。

然后调用in 指令,从指定端口取出数据即可。

3.3.2流程图开始一号功能调用输入字符转化成数字INAX,DX存入AX输出AX数据结束3.3.3源程序程序名renwu64.386data segment use16buf db 2data endsstack segment use16 stackd b 200 dup(0)stack endscode segment use16a ssume ds:data,ss:stack,cs:codestart:mov ax, datamov ds, axlopa: mov ah, 1 ;读入输入int 21hsub al, 30h ;转化成十进制0~9 out 70h, al ;取出信息in al, 71hmov ah, aland al, 0fhshr ah, 4add ax, 3030h ;转化为ascll码xchg ah, almov bx, axlea si, bufmov word ptr [si+1], bx mov dl, 0ah ;输出换行mov ah, 2int 21hmov dl, 0dhmov ah, 2int 21hmov dl, bl ;输出信息mov ah, 2int 21hmov dl, bhmov ah, 2int 21hmov dl, 0ah ;输出换行mov ah, 2int 21hmov dl, 0dhmov ah, 2int 21hjmp lopa ;循环mov ah, 4chint 21hcode endsend start3.3.4实验步骤1. 录入源程序renwu64,编译,链接。

相关文档
最新文档