北京理工大学汇编实验二报告

合集下载

北理工汇编实验报告

北理工汇编实验报告

汇编语言实验报告实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)班级:05811101姓名:李雨晴学号:1120111452汇编语言实验报告实验一 DOS 环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM 的使用;3、熟练掌握连接程序LINK 的使用;4、熟练掌握DEBUG 的使用;二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识汇编语言程序设计上机开发过程如图1.1 所示。

四、实验内容与步骤1、汇编、链接并调试给出的简单程序,找出程序中的错误。

(一)录入并建立汇编语言源程序文件(ASM 文件)(二)用汇编程序MASM 将ASM 文件汇编成目标程序文件(OBJ 文件)(三)用连接程序LINK 生成可执行程序文件(EXE 文件)(四)程序的调试2、完成程序设计:分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative 和Zero 中,数组元素个数保存在其第一个字中。

使用Debug 查看Positive、Negative 和Zero 三个变量的数据。

五、实验过程及结果:实验一:1.输入给出的程序2:运行输入的程序,发现了三处错误:根据错误提示,发现错误为ADDITION后未打冒号,CMP错打为COM。

修改原代码:改为:3:代码编译成功,生成OBJ文件,再生成EXE文件,可成功运行。

4:在原程序代码后添加两行代码,以验证ADDITION的逻辑正确性,改动如下:现实在DATA1中添加字节型sum ,再将ADDITION的运行结果,从AX送到sum中去。

5:调试发现ADDITION并没用正确运行。

检查语句逻辑性发现,应将JAE改成JB,才能实现累加并终结。

改为:6:重新进行DEBUG调试:实验二:分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative 和Zero 中,数组元素个数保存在其第一个字中。

北京理工大学微机原理实验报告

北京理工大学微机原理实验报告

微机原理与接口技术实验报告实验内容:汇编语言程序设计实验组别:12姓名:班级:学号:一、实验目的1、熟悉IDE86集成开发环境的使用。

2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。

3、熟悉DOS命令调用,以达到输入输出、返回DOS系统等目的。

4、掌握利用汇编实现求和与求最值的方法。

5、掌握利用汇编实现数制转换的方法。

6、巩固理论知识,锻炼动手编程,独立思考的能力。

二、实验内容(具体内容)1、求从TABLE开始的10个无符号字节数的和,并将结果放在SUM字单元中。

并查看前5个,前8个数之和以及各寄存器和内存的状态。

2、在1的基础上修改程序,求出10个数中的最大值和最小值,最后将最大最小值分别赋给MAX及MIN。

3、求1到 100 的累加和,并用十进制形式将结果显示在屏幕上。

要求实现数据显示,并返回DOS状态。

三、实验方法1、设计思路(1)实验1的设计思路:先将10个要相加的数存在以TABLE为首的10个连续的存储单元中,然后利用循环结构依次取出数值放在AL中并累加,若有进位则加到AH中直至循环10次累加结束,将累加的结果放在SUM中并返回DOS状态。

(2)实验2的设计思路:先将10个要比较的数放在以TABLE为首的10个连续的存储单元中。

将第一个数首先赋给AL和AH(分别存储相对最小和最大值)在利用LOOP循环结构,依次和下面的数进行比较,每次把相对的最大值与最小值存储到AH和AL中直至循环9次比较结束,将AH和AL里面的最大值与最小值赋给MAX和MIN,返回DOS状态(3)实验3的设计思路:先在内存中定义COUNT=100,表示1-100求和,若相求1-n的和并显示只需COUNT的值为n即可,同时定义一块以DNUM为首地址的数据区用于存储累加和的十进制数对应的ASCII码。

先利用AX和LOOP求出1-COUNT的累加和存在AX中;在进行数值转化,AX 依次除10取余数保存,将16进制数转化为10进制ASCII码值并存在DUNM中。

北京理工大学汇编语言实验四 分支和循环程序设计实验

北京理工大学汇编语言实验四 分支和循环程序设计实验

实验四分支和循环程序设计实验(设计性实验)一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;4.了解汇编语言循环程序设计的基本流程;5.熟悉汇编语言循环基本指令的使用方法;6.掌握利用汇编语言的循环指令完成循环程序设计方法。

二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识在实际应用中,经常根据一些条件来选择一条分支执行。

汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。

1.无条件转移指令JMP无条件转移指令JMP 是使程序无条件转移至目标处,又分为段内转移、段间转移。

2.条件转移指令JXX条件转移指令可分为三大类:1).简单条件转移指令指令。

根据单个标志位的状态判断转移条件。

标志位指令转移条件意义JC CF=1 有进位/借位CFJNC CF=0 无进位/借位JE/JZ ZF=1 相等/等于0ZFJNE/JNZ ZF=0 不相等/不等于0JS SF=1 是负数SFJNS SF=0 是正数JO OF=1 有溢出OFJNO OF=0 无溢出JP/JPE PF=1 有偶数个1PFJNP/JPO PF=0 有奇数个12).无符号数条件转移指令。

假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下:指令转移条件意义JA/JNBE CF=0 AND ZF=0 A>BJAE/JNB CF=0 OR ZF=1 A>=BJB/JNAE CF=1 AND ZF=0 A<BJBE/JNA CF=1 OR ZF=1 A<=B3).带符号数条件转移指令。

指令转移条件意义JG/JNLE SF=OF AND ZF=0 A>BJGE/JNL SF=OF OR ZF=1 A>=BJL/JNGE SF OF AND ZF=0 A<BJLE/JNG SF OF OR ZF=1 A<=B在汇编程序设计中,要熟练使用循环指令和跳转等指令来实现循环,理解循环体结构中的初始化部分、循环体、结束部分,并且要结合前面分支结构相关的知识点,加深对循环结构的理解和掌握。

北京理工大学汇编语言实验报告实验五子程序设计实验

北京理工大学汇编语言实验报告实验五子程序设计实验

北京理⼯⼤学汇编语⾔实验报告实验五⼦程序设计实验实验五⼦程序设计实验(设计性实验)⼀、实验要求和⽬的1.熟悉汇编语⾔程序设计结构;2.熟悉汇编语⾔⼦程序设计⽅法;3.熟悉利⽤汇编语⾔⼦程序参数传递⽅法;4.熟悉汇编语⾔字符串处理基本指令的使⽤⽅法;5.掌握利⽤汇编语⾔实现字符串的输⼊输出程序设计⽅法;6.掌握数制转换程序实现⽅法。

⼆、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应⽤程序。

三、实验涉及的主要知识A)⼦程序知识要点:1、掌握⼦程序的定义语句;过程名 PROC [near/far]过程体RET过程名 ENDP2.⼦程序结构形式⼀个完整的⼦程序⼀般应包含下列内容:1. )⼦程序的说明部分在设计了程序时,要建⽴⼦程序的⽂档说明,使⽤户能清楚此⼦程序的功能和调⽤⽅法. 说明时,应含如下内容:.⼦程序名:命名时要名中见意..⼦程序的功能:说明⼦程序完成的任务;.⼦程序⼊⼝参数:说明⼦程序运⾏所需参数及存放位置;.⼦程序出⼝参数:说明⼦程序运⾏结果的参数及存放位置;.⼦程序所占⽤的寄存器和⼯作单元;.⼦程序调⽤⽰例;2、)掌握⼦程序的调⽤与返回在汇编语⾔中,⼦程序的调⽤⽤CALL,返回⽤RET 指令来完成。

.段内调⽤与返回:调⽤⼦程序指令与⼦程序同在⼀个段内。

因此只修改IP;.段间调⽤与返回:调⽤⼦程序与⼦程序分别在不同的段,因此在返回时,需同时修改CS:IP。

⼀般利⽤堆栈实现现场保护和恢复的格式:过程名PROC [NEAR/FAR]PUSH BXPUSH DXPOP DXPOP AXRET过程名 ENDP4.⼦程序的参数传递⽅法1.寄存器传递参数这种⽅式是最基本的参数传递⽅式。

2.存储器单元传(变量)递参数这种⽅法是在主程序调⽤⼦程序前,将⼊⼝参数存放到约定的存储单元中;⼦程序运⾏时到约定存储位置读取参数;⼦程序执⾏结束后将结果也放在约定存储单元中。

北理工数据结构实验报告2

北理工数据结构实验报告2

《数据结构与算法设计》实验报告——实验二学院:自动化学院班级:____学号:__姓名:_____一、实验目的1、熟悉VC 环境,学习使用C 语言实现栈的存储结构。

2、通过编程、上机调试,进一步理解栈的基本概念。

3、锻炼动手编程,独立思考的能力。

二、实验内容实现简单计算器的功能,请按照四则运算加、减、乘、除、幂(^)和括号的优先关系和惯例,编写计算器程序。

要求支持运算符:+、-、*、/、%、()和=:① 从键盘输入一个完整的表达式,以回车作为表达式输入结束的标志;② 输入表达式中的数值均为大于等于零的整数,如果中间计算过程中出现小数也只取整进行计算。

例如,输入:4+2*5= 输出:14 输入:(4+2)*(2-10)= 输出:-48 三、程序设计 1、概要设计为实现上述程序功能,应使用两个栈,分别寄存操作数与运算符。

为此,需要栈的抽象数据结构。

(1)、栈的抽象数据类型定义为: ADT Stack{数据对象:D={|,1,2,,,0}i i a a ElemSet i n n ∈=≥数据关系:R1=11{,|,,2,,}i i i i a a a a D i n --<>∈=约定n a端为栈顶,1a端为栈底。

基本操作:InitStack(&S)操作结果:创建一个空栈S。

GetTop(S,&e)初始条件:栈S已存在且非空。

操作结果:用e返回S的栈顶元素。

Push(&S,e)初始条件:栈S已存在。

操作结果:插入元素e为新的栈顶元素。

Pop(&S,&e)初始条件:栈S已存在且非空。

操作结果:删除S的栈顶元素,并用e返回其值。

In(m,a[])操作结果:若m是运算符,返回TRUE。

Precede(m, n)初始条件:m,n为运算符。

操作结果:若m优先级大于n,返回>,反之亦然。

Operation(a, theta,b)初始条件:a,b为整数,theta为运算符。

数字信号实验报告二,北京理工大学,实验报告

数字信号实验报告二,北京理工大学,实验报告

实验三利用FFT计算线性卷积一、实验目的1.掌握利用FFT计算线性卷积的原理及具体实现方法。

2.加深理解重叠相加法和重叠保留法。

3.考察利用FFT计算线性卷积各种方法的适用范围。

二、实验设备与环境计算机、MATLAB软件环境三、实验基础理论1.线性卷积与圆周卷积设为L点序列,为M点序列,和的线性卷积为的长度为L+M-1。

和的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,和的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。

可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以利用圆周卷积来计算,必须选择;同时为了能使用基2-FFT 完成卷积运算,要求N =。

采用补零的办法是和的长度均为N 。

(2)计算和的N 点FFTFFT −−−→(3)组成卷积(4)利用IFFT 计算IDFT ,得到线性卷积(k)()IFFT Y y n −−−→3.分段卷积我们考察单位取样响应为的线性系统,输入为,输出为,则当输入序列时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量的存储单元。

为此,我们把,分别求出每段的卷积,合在一起其到最后的总输出。

这种方法称为分段卷积。

分段卷积可细分为重叠相加法和重叠保留法。

重叠保留法:设的长度为,的长度为M 。

我们把序列分成多段N 点序列,每段与前一段重叠M-1个样本。

由于第一段没有前一段保留信号,为了修正,我们在第一个输入段前面填充M-1个零。

计算每一段的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。

所以我们将每段卷积结果的前M-1个样本舍去,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来得到总的输出。

利用FFT 实现重叠保留法的步骤如下:(1)在前面填充M-1个零,扩大以后的序列为1ˆ(){0,0,0,()}M x n x n -=个(2)将分为若干N 点子段,设L=N-M+1为每一段的有效数据长度,则第i 段〖ˆ(m)x1,0,01iL m iL N i n N ≤≤+-≥≤≤- (3)计算每一段与的N 点圆周卷积,利用FFT 计算圆周卷积:FFT−−−→(k)()IFFT i i Y y n −−−→(4)舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果。

实验2实验报告

实验2实验报告

实验2实验报告在我们探索知识的道路上,实验就像是一个个神秘的冒险,每一次都充满了未知和惊喜。

今天,我要和大家分享的就是实验 2 的奇妙之旅。

这次实验的主题是关于具体实验主题。

为了能顺利完成这个实验,我们可是做了充分的准备。

老师提前给我们讲解了实验的原理和步骤,让我们心里有了个底。

实验开始啦!我紧张又兴奋地摆弄着实验器材,就像一个即将出征的战士在检查自己的武器装备。

我小心翼翼地拿起实验器材名称,眼睛紧紧盯着它,生怕一个不小心就出了差错。

旁边的小伙伴也都全神贯注,教室里安静得只能听到我们紧张的呼吸声。

按照预定的步骤,我先进行了第一步操作。

这一步看起来简单,可真做起来还真不容易。

我得控制好操作的关键因素,稍微有一点偏差,可能就会影响整个实验结果。

我深吸一口气,告诉自己要稳住。

经过几次尝试,终于成功地完成了这一步,心里不禁小小地欢呼了一下。

接下来的步骤越来越复杂,我感觉自己的大脑在飞速运转。

在进行关键步骤名称的时候,我遇到了一个大难题。

怎么都达不到预期的效果,我急得满头大汗。

这时,我想起老师说过的话:“遇到问题不要慌,要冷静思考。

”于是,我停下手中的动作,重新审视了一遍实验步骤,仔细观察了其他同学的操作,终于发现了自己的错误。

原来是我在错误的具体方面上出了岔子。

找到问题所在后,我迅速调整,终于顺利地度过了这个难关。

在整个实验过程中,我和小伙伴们互相帮助,互相鼓励。

当有人遇到困难时,大家都会停下自己的工作,一起出谋划策。

这种团队合作的氛围让我感到特别温暖,也让我明白了在学习的道路上,我们不是一个人在战斗。

经过一番努力,实验终于接近尾声。

当看到最终的实验结果时,那种成就感简直无法用言语来形容。

我们的努力没有白费,实验成功啦!通过这次实验,我不仅学到了知识,还锻炼了自己的动手能力和解决问题的能力。

更重要的是,我明白了做任何事情都要有耐心、细心,遇到困难不能轻易放弃。

这就是我的实验 2 之旅,充满了挑战和收获。

北京理工大学电子信息类汇编语言实验报告――文件操作.

北京理工大学电子信息类汇编语言实验报告――文件操作.

第六章磁盘文件存取实验(设计性实验一、实验要求和目的1. 理解文件、目录的概念;2. 了解 FCB(文件控制块方式文件管理方法;3. 掌握文件代号式文件存取方式;4. 学习使用文件指针读取文件二、软硬件环境1. 硬件环境:计算机系统 windows;2. 软件环境:装有 MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识单元DOS 功能调用中断(INT 21H提供了两类磁盘文件管理功能,一类是 FCB(文件控制块方式,另一类是文件代号式存取方式。

对于文件的管理,实际上是对文件的读写管理, DOS 设计了四种存取文件方式:顺序存取方式、随机存取方式、随机分块存取方式和代号法存取方式。

文件的处理步骤A 写之前必须先建立文件、读之前必须先打开文件。

B 写文件之后一定要关闭文件。

通过关闭文件,使操作系统确认此文件放在磁盘哪一部分,写后不关闭会导致写入文件不完整。

1、文件代号式存取方式: 当用户需要打开或建立一个文件时,必须提供文件标识符。

文件标识符用ASCII Z 字符串表示。

ASCII Z 字符串是指文件标识符的 ASCII 字符串后面再加1 个“0”字符。

文件标识符的字符串包括驱动器名、路径名和文件名。

其格式为[d:][path]filename[.exe]其中 d 为驱动器名,path 为路径名,.exe 为文件名后缀。

中断 21H 提供了许多有关目录和文件操作的功能,其中文件代号式存取方式常用的功能如下:2、操作目录的常用功能39H——创建目录 3BH——设置当前目录3AH——删除目录 47H——读取当前目录有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅相关资料之目录控制功能。

3、用文件句柄操作文件的常用功能3CH——创建文件 4EH——查找到第一个文件3DH——打开文件 4FH——查找下一个文件3EH——关闭文件 56H——文件换名3FH——读文件或设备 57H——读取/设置文件的日期和时间40H——写文件或设备 5AH——创建临时文件41H——删除文件 5BH——创建新文件42H——设置文件指针 67H——设置文件句柄数(最多文件数43H——读取/设置文件属性 6CH——扩展的打开文件功能有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅相关资料之文件操作功能。

北理工数学实验报告

北理工数学实验报告

实验名称:线性代数实验——矩阵运算与线性方程组的求解实验目的:1. 理解矩阵的基本概念和运算规则。

2. 掌握线性方程组的求解方法。

3. 利用数学软件进行矩阵运算和线性方程组的求解。

实验时间:2023年X月X日实验地点:北理工计算机实验室实验器材:1. 计算机2. MATLAB软件3. 纸和笔实验内容:一、矩阵的基本运算1. 矩阵加法:给定两个矩阵A和B,它们的行数和列数必须相同。

矩阵加法是将对应位置的元素相加。

2. 矩阵减法:与矩阵加法类似,矩阵减法是将对应位置的元素相减。

3. 矩阵乘法:给定两个矩阵A和B,如果A的列数等于B的行数,则A与B可以进行乘法运算。

矩阵乘法的结果是一个新矩阵,其元素是A的行与B的列对应元素的乘积之和。

4. 转置矩阵:给定一个矩阵A,其转置矩阵A'的行数等于A的列数,列数等于A 的行数。

转置矩阵的元素是A中对应位置的元素。

二、线性方程组的求解1. 高斯消元法:通过行变换将线性方程组转化为上三角矩阵,然后逐步求解未知数。

2. 克莱姆法则:当线性方程组系数矩阵的行列式不为零时,可以求出每个未知数的唯一解。

3. MATLAB求解:利用MATLAB中的函数求解线性方程组。

实验步骤:1. 创建矩阵:在MATLAB中创建两个矩阵A和B,并观察它们的性质。

2. 矩阵运算:进行矩阵加法、减法、乘法和转置运算,并观察结果。

3. 线性方程组求解:利用高斯消元法、克莱姆法则和MATLAB函数求解线性方程组。

实验结果与分析:1. 矩阵运算:通过实验,我们掌握了矩阵的基本运算规则,并成功进行了矩阵加法、减法、乘法和转置运算。

2. 线性方程组求解:利用高斯消元法、克莱姆法则和MATLAB函数求解线性方程组,得到了正确的解。

3. MATLAB求解:通过MATLAB函数求解线性方程组,我们发现MATLAB具有强大的矩阵运算和线性方程组求解功能,能够方便地解决实际问题。

实验总结:本次实验使我们深入了解了矩阵的基本概念和运算规则,掌握了线性方程组的求解方法。

北理工汇编语言实验报告3

北理工汇编语言实验报告3

汇编语言实验报告实验三字符串操作实验(设计性实验)班级:05611102姓名:肖枫学号:1120111431实验日期:2013.9.7下午一、实验要求和目的1.了解汇编语言字符串处理基本流程;2.熟悉汇编语言字符串处理基本指令的使用方法;3.掌握利用汇编语言实现字符串处理的程序设计方法。

二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识1、字符串处理基本操作流程(1)利用SI 寄存器保存源串首地址;(2)利用DI 寄存器保存目的串首地址;(3)利用CX 寄存器保存字符串长度;(4)利用CLD 或STD 指令设置字符串处理方向;(5)利用字符串处理指令实现相关处理。

其中,CLD 指令使DF=0,在执行串处理指令时可使地址自动增量;STD 使DF=1,在执行串处理指令时可使地址自动减量。

提示:字符串处理一般都涉及到源串和目的串,汇编语言规定源串在数据段中定义,目的串在附加段中定义。

2、重复前缀指令,重复次数由计数寄存器CX 中存放的值决定,指令每重复执行一次,计数器CX 中值减1,当CX 中值减至0 时,停止重复执行,继续执行下一条指令REP 无条件重复前缀,重复串操作直到计数寄存器的内容CX 为0 为止。

经常与REP配合工作的字符串处理指令有MOVS、STOS 和LODS。

REPE/REPZ 判断计数寄存器的内容CX 是否为0 或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REPZ 配合工作的串指令有CMPS 和SCAS。

REPNE/REPNZ 判断计数寄存器的内容是否为0 或ZF=1(即比较的两个操作数相等),只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REPZ 配合工作的串指令有CMPS 和SCAS。

3、字符串处理基本指令(1)MOVS 传送指令格式:MOVS DST,SRC 或MOVSB(传送字节)或MOVSW(传送字)。

北理大学计算机实验基础-实验二-实验报告表答案

北理大学计算机实验基础-实验二-实验报告表答案

实验二实验报告表
实验名称:
学号姓名:班级:实验时间:
实验报告表2-1 数值型数据在计算机中的二进制实验记录表
说明:本实验对计算机内存数据的存放拟定为:①整数用两个字节存储,并负数只考虑原码;②实数用4个字节存储,其中阶码部分占一个字节。

!
实验报告表2-2 其他进制数据与二进制转化实验记录表
实验报告表2-3 数据的原码、补码和反码表示实验记录表
,
实验报告表2-4 二进制算术运算实验记录表
实验报告表2-5溢出实验记录表
|
实验报告表2-6浮点数的小数点浮动实验记录表
实验报考表2-7 表示浮点数的二进制串中阶码位数改变实验记录表。

北理计算机与网络实验(II)(汇编语言实验3)

北理计算机与网络实验(II)(汇编语言实验3)

本科实验报告实验名称:实验三字符串操作实验实验三字符串操作实验1.实验目的1)熟悉串操作指令的功能与应用;2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序;3)了解汇编语言字符串处理基本流程;2.实验软硬件环境1)硬件环境:惠普64位一体化计算机及局域网;2)软件环境:windows 8,红蜘蛛管理系统,MASM for Windows。

3.实验相关知识1)字符串操作流程♦SI寄存器保存源串首地址;♦DI寄存器保存目的串首地址;♦CX寄存器保存字符串长度;♦CLD或STD指令设置字符串处理方向;♦当CLD指令使DF=0,在执行串处理指令时可使地址自动增量;STD使DF=1,在执行串处理指令时可使地址自动减量。

2)重复前缀指令♦重复次数由计数寄存器CX中存放的值决定,指令每重复执行一次,计数器CX中值减1,当CX中值减至0时,停止重复执行,继续执行下一条指令。

♦当REP无条件重复前缀,重复串操作直到计数寄存器的内容CX为0为止。

经常与REP配合工作的字符串处理指令有MOVS、STOS和LODS。

♦当REPE/REPZ判断计数寄存器的内容CX是否为0或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REPZ配合工作的串指令有CMPS和SCAS。

♦当REPNE/REPNZ判断计数寄存器的内容是否为0或ZF=1(即比较的两个操作数相等),只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REPZ配合工作的串指令有CMPS和SCAS。

3)字符串操作指令♦lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI;♦stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI;♦movsb、movsw:把DS:SI指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据DF标志分别增减SI和DI;♦scasb、scasw:把AL或AX中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI;♦cmpsb、cmpsw:把DS:SI指向的存储单元中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI;♦rep:重复其后的串操作指令。

北京理工大学物理化学课程实验报告 2

北京理工大学物理化学课程实验报告 2
别不准、对于折光率值把握不准等一系列系统误差,对于本次实验的精 确度和准确度有很大影响,误差不可避免; 5. 实验中气压与标准大气压不等,配制溶液时浓度不精确。 6. 利用 Excel 软件作曲线拟合时,液相线拟合存在一定的偏差,对于恒沸 温度和恒沸组成的交点把握不精确。
八、 思考题
1. 本次实验过程中,如何判断气、液相是否已达到平衡?
T /K T /K T /K
气 液
气 气
液 液
A x2 x4
x1 x3
a
BAx bBA Nhomakorabeax
c
C7.1 二元体系 T-x 图
1
B

2
下面以 a 为例,简单说明绘制沸点-组成图的原理。加热总组成为 x1 的溶液, 体系的温度上升,达液相线上 1 点时溶液开始沸腾,组成为 x2 的气相开始生成, 但气相量很少(趋于 0),x1、x2 二点代表达到平衡时液、气两相组成。继续加热, 气相量逐渐增多,沸点继续上升,气、液二相组成分别在气相线和液相线上变化, 当达某温度(如 2 点),并维持温度不变时,则 x3、x4 为该温度下液、气两相组 成,气相、液相的量之比按杠杆规则确定。从相律 f = c - p +2 可知,当外压恒定 时,在气、液两相共存区域自由度等于 1,当温度一定时,则气、液两相的组成也 就确定,总组成一定,由杠杆规则可知两相的量之比也已确定。因此,在一定的实 验装置中,全回流的加热溶液,在总组成、总量不变时,当气相的量与液相的量之 比也不变时(达气-液平衡),则体系的温度也就恒定。分别取出气、液两相的样品, 分析其组成,得到该温度下,气、液两相平衡时各相的组成。改变溶液总组成,得 到另一温度下,气、液两相平衡时各相的组成。测得溶液若干总组成下的气液平衡 温度及气、液相组成,分别将气相点用线连接即为气相线,将液相点用线连接即为 液相线,得到沸点-组成图。

《大学物理实验2》实验报告

《大学物理实验2》实验报告

2R x /cm
下盘质量 m 0 ,待测圆环的质量 m ,圆柱体的质量 m 两圆盘的垂直距离 H
0
. ,r .

下盘
, 根据公式(2-16)计算出 R
表 2 累积法测周期的数据记录表 数据记录 与处理
摆动 50 个 周期所 需时间 下盘加圆环 1 2 3 平均 1 2 3 平均 下盘加两圆柱 1 2 3 平均 周 期
北京理工大学珠海学院
物理实验示范中心
北京理工大学珠海学院大学物理实验报告
小组内编号: _____ 实验名称 姓名: _________ 学号: __________ 班级: __________实验时间: ____________
铁磁材料磁滞回线
实验目的
实验仪器
实验原理
1
北京理工大学珠海学院
物理实验示范中心
s.
b.两盘间距 H 0 的B类不定度:用卷尺或钢板尺测量,最小分度为 小分度的一半,其分布为正态分布,则 H 0 的不确定度 u H
mm, Δ 仪 取最 mm.
Δ 仪 3

c.下盘半径 R 的B类不定度: 用游标尺测下盘孔间距 b , 游标卡尺最小分度为 它的误差限为 Δ 仪 mm. 其分布为均匀分布, 则 R 的不确定度 u R mm,
北京理工大学珠海学院大学物理实验报告
小组内编号: _____ 实验名称 姓名: _________ 学号: __________ 班级: __________实验时间: ____________
光栅实验
实验目的
实验仪器
实验原理
12
北京理工大学珠海学院
物理实验示范中心
实验原理
实验步骤
13

北理工嵌入式系统实验报告

北理工嵌入式系统实验报告

嵌入式系统实验报告目录实验二 (1)实验三 (4)实验四 (7)实验六 (17)填充三角形实验 (24)实验二基于ARM的汇编语言程序设计简介一、实验目的1. 了解ARM 汇编语言的基本框架,学会使用ARM 的汇编语言编程二、实验内容1. 用汇编语言编写一个简单的应用程序三、实验设备1. EL-ARM-830 教学实验箱,PentiumII 以上的PC 机,仿真调试电缆,串口电缆。

2. PC 操作系统WIN98 或WIN2000 或WINXP,ADS1.2 集成开发环境,仿真调试驱动程序四、汇编语言简介1. ARM汇编的一些简要的书写规范ARM 汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。

ARM 汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。

在ARM 汇编中,ARM 指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。

注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。

详细的汇编语句及规范请参照ARM汇编的相关书籍、文档,也可参照我们提供的文档。

2. ARM汇编语言程序的基本结构在ARM 汇编语言程序中,是以程序段为单位来组织代码。

段是相对独立的指令或数据序列,具有特定的名称。

段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。

一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。

可执行映像文件通常由以下几部分构成:◆一个或多个代码段,代码段为只读属性。

◆零个或多个包含初始化数据的数据段,数据段的属性为可读写。

◆零个或多个不包含初始化数据的数据段,数据段的属性为可读写。

链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位EL - ARM - 830 实验指导书39置。

源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。

北理工汇编语言实验报告5

北理工汇编语言实验报告5

汇编语言实验报告实验五子程序设计实验(设计性实验)班级:05611102姓名:肖枫学号:1120111431实验日期:2013.9.11晚上实验四子程序设计实验(设计性实验)一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言子程序设计方法;3.熟悉利用汇编语言子程序参数传递方法;4.熟悉汇编语言字符串处理基本指令的使用方法;5.掌握利用汇编语言实现字符串的输入输出程序设计方法;6.掌握数制转换程序实现方法。

二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识A)子程序知识要点:1、掌握子程序的定义语句;过程名 PROC [near/far]过程体RET过程名 ENDP2.子程序结构形式一个完整的子程序一般应包含下列内容:1. )子程序的说明部分在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容:.子程序名:命名时要名中见意..子程序的功能:说明子程序完成的任务;.子程序入口参数:说明子程序运行所需参数及存放位置;.子程序出口参数:说明子程序运行结果的参数及存放位置;.子程序所占用的寄存器和工作单元;.子程序调用示例;2、)掌握子程序的调用与返回在汇编语言中,子程序的调用用CALL,返回用RET 指令来完成。

.段内调用与返回:调用子程序指令与子程序同在一个段内。

因此只修改IP;.段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。

3.)子程序的现场保护与恢复保护现场:在子程序设计时,CPU 内部寄存器内容的保护和恢复。

一般利用堆栈实现现场保护和恢复的格式:过程名PROC [NEAR/FAR]PUSH AXPUSH BX..PUSH DX...POP DX...POP AXRET过程名 ENDP4.子程序的参数传递方法1.寄存器传递参数这种方式是最基本的参数传递方式。

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

北京理工大学汇编实验二报告本科实验报告实验名称:算术运算类操作实验课程名称:CPU与汇编实验实验时间:2015.10.29 任课教师:王耀威实验地点:10-102实验教师:潘丽敏实验类型:□原理验证■综合设计□自主创新学生姓名:王晓玥学号/班级:1120131332/05111311 组号:学院:信息与电子学院同组搭档:专业:信息工程成绩:一、实验要求和目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。

6、掌握 BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识1、加减法处理指令主要有加法指令 ADD,带进位加法 ADC,减法指令 SUB,带进位减法指令 SBB。

2.乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令 IDIV,以及符号位从字节扩展到字的指令 CBW 和从字扩展到双字的指令 CWD。

3.BCD 码的调整指令主要有非压缩的BCD 码加法调整指令DAA,压缩的 BCD 码减法调整指令 DAS,非压缩的 BCD 码加法调整指令 AAA,非压缩的 BCD 码减法调整指令 AAS,乘法的非压缩 BCD码调整指令 AAM,除法的非压缩 BCD 码调整指令 AAD。

8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表 1 所示的数据类型进行数据运算。

表 1-2-1 数据类型数据运算表数制二进制BCD码带符号无符号组合非组合运算符+、-、×、÷+、-+、-、×、÷操作数字节、字、多精度字节(二位数字)字节(一位数字)四、实验内容与步骤1、对于两组无符号数,087H 和 034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:(1)实验流程将一组操作数分别用ADD,SUB,MUL,DIV运算(2)实验代码:DATAS SEGMENTBUF1 DB 087HBUF2 DB 034HBUF3 DB 4 DUP(?);此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,0MOV SI,AX;两数相加MOV AL,BUF1MOV BL,BUF2ADD AL,BLMOV BUF3[SI],ALMOV AL,0MOV AL,0INC SIMOV BUF3[SI],AL;两数相减MOV AL,BUF1MOV BL,BUF2SUB AL,BLINC SIMOV BUF3[SI],ALMOV AL,0SBB AL,0INC SIMOV BUF3[SI],AL;两数相乘MOV AL,BUF1MOV BL,BUF2MUL BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;两数相除,AL中存放商,AH中存放余数MOV AX,0MOV AL,BUF1MOV BL,BUF2DIV BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;此处输入代码段代码MOV AH,4CHINT 21HCODES ENDSEND START(3)实验结果:1)第一组操作数87H,34H2)第二组操作数0C2H,5FH(4)计算结果计算状态标志表达式结果CF AF ZF OF SF PF 087H+034H 00BB 0 0 0 0 1 1 087H-034H 0053 0 0 0 1 0 1 087H*034H 1B6C 1 0 0 1 0 0 087H/084H 02(1F) 1 0 0 0 0 1 0C2H+05FH 0121 0 0 0 0 0 0 0C2H-O5FH 0063 0 0 1 0 0 1 0C2H*05FH 47FE 0 0 0 0 0 1 0C2H/05FH 02(04) 0 0 0 0 0 0(5)各运算对状态标志位的影响及其意义。

状态加法减法乘法除法标志位CF 最高有效位向高位有进位为1,否则为0 最高有效位向高位有借位为1,否则为CF OF=0,乘积的高一半为0(字节操作的AH或字操作的DX);CF OF=1,乘积的高一半不为0不确定AF 无影响ZF 运算结果非0,ZF=0,否则为1无影响OF 两个不同符号数相加,或同符号数相加,结果同符号数相减,或不同符号数相减时结果符号CF OF=0,乘积的高一半为0(字节操作的AH或符号与其相同,则为0;同符号数相加,结果符号与其相反,则为1 与减数不同,则为0;两数符号相反,结果符号与减数相同,则为1字操作的DX);CF OF=1,乘积的高一半不为0SF 结果不为负则为0;否则为1无影响PF 无影响2、在数据段定义了两个多精度的有符号 16 进制数,FIRST 和 SECOND ,1)求两数的和与差,并将结果存放在 THIRD 为首地址的缓冲区中;2)如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在FORTH 为首地址的缓冲区中。

试编程实现上述运算。

FIRST DB 45 H,82H,96 H,57HSECOND DB 12 H,46H,83 H,45H (1)程序流程图将两组数字存入内用ADC从最低位对操作数进行相是否否是上次运是否(2)程序代码:DATAS SEGMENTFIRST DB 45H,82H,96H,57H SECOND DB 12H,46H,83H,45H THIRD DB 8 DUP (?)FORTH DB 8 DUP (?)DATAS ENDS相加结束,进进行十进制结束调整STACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,0MOV BX,4MOV CX,4L:MOV AL,[BX+3]ADC AL,[BX-1]MOV [BX+7],ALDEC BXLOOP LMOV BX,4MOV CX,4M:MOV AL,[BX-1]SBB AL,[BX+3]DEC BXLOOP MMOV BX,4MOV CX,4N:MOV AL,[BX+3]ADC AL,[BX-1]DAAMOV [BX+15],ALDEC BXLOOP NMOV BX,4MOV CX,4O:MOV AL,[BX-1]SBB AL,[BX+3]DASDEC BXLOOP OMOV AH,4CHINT 21HCODES ENDSEND START(3)运行结果16 进制结果10 进制结果FIRST +SECOND 57 C9 19 9C 58 29 80 02 FIRST -SECOND 33 3C 13 12 33 36 13 123、编程计算((Z +X*Y -328) -V)/ Y,其中 X、Y、Z、V 均为 16 位带符号数,假设初始数据分别装入 X、Y、Z、V 单元,要求上式计算结果的商存入 AX,余数存入 DX 寄存器。

同学自行给出初始值加以验证程序。

(1)流程图及代码DATAS SEGMENTX DW 0D9HY DW 05CHZ DW 22HV DW 33Hresult DW 2 DUP(?);此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AX,XIMUL YMOV BX,AXMOV CX,DXMOV AX,ZCWDADD BX,AXADC CX,DXSUB BX,328SBB CX,0MOV AX,VCWDSUB BX,AXSBB CX,DXMOV AX,BXMOV DX,CXIDIV YMOV RESULT,AXMOV RESULT+2,DX;此处输入代码段代码MOV AH,4CHINT 21HCODES ENDSEND START(2)运行结果运算结果为AX=00D5H,DX=0017H,经验证,结果正确。

相关文档
最新文档