实验二 分支程序实验
实验二 分支结构程序设计实验
![实验二 分支结构程序设计实验](https://img.taocdn.com/s3/m/ffeb1221453610661ed9f4dc.png)
实验二 分支结构程序设计实验1、实验目的和要求:掌握汇编语言分支程序的设计方法;2、实验内容:编程序求分段函数Y 的值。
已知变量X 为16位带符号数, 分段函数的值要求 保存到字单元Y 中。
函数定义如下:1 (当X>0)Y = 0 (当x=0)—1 (当X<0)3、实验仪器与器材:计算机及EMU8086汇编软件等。
4、实验原理:分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
程序流程图是根据解题分析所绘制的程序执行流程图。
5、实验过程与测试数据(含电路图/程序流程框图):6、实验分析:自己分析7、实验体会:自己总结实验参考程序:DATA SEGMENTX DW -128Y DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV AX,XCMP AX,0JG ISPNJZ ISZNMOV Y,-1JMP FINISHISPN: MOV Y,1JMP FINISHISZN: MOV Y,0FINISH: MOV AH,4CHINT 21HCODE ENDSEND START思考题:把程序修改成如下的分段函数的值—1 (当X>=0)Y=1 (当X<0)。
北京邮电大学微机原理软件实验报告
![北京邮电大学微机原理软件实验报告](https://img.taocdn.com/s3/m/12d554cbaa00b52acfc7ca22.png)
信息与通信工程学院微机原理软件实验报告班级:姓名:学号:班内序号:时间:微机原理软件实验·报告实验一DEBUG 的使用一、实验目的1.掌握汇编程序的编辑,编译,连接和执行的全过程;2.学习和掌握用DEBUG 调试程序的方法。
二、实验内容1. 用编辑软件,输入以下汇编语言源程序:DAT SEGMENTA DB 20 ;(自定)B DB 15 ;(自定)Y DB 3 DUP (0)Z DB 0, 0DAT ENDSSTA SEGMENT STACKDW 50 DUP (?)STA ENDSCOD SEGMENTASSUME CS: COD, DS: DATSTAR PROC FARPUSH DSXOR AX, AXPUSH AXMOV AX, DATMOV DS, AXMOV AX, STAMOV SS, AXMOV AL, AMOV Z, ALMOV Z+1, ALCALL SUB1MOV AL,B微机原理软件实验·报告MOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL, ZMOV AH, Z+1MUL AHADD WORD PTR Y, AXADC BYTE PTR[Y+2], 0RETSUB1 ENDPCOD ENDSEND STAR2. 通过编译,连接形成可执行文件。
3. 用DEBUG 将可执行文件调入,并进行调试。
1) 用D 命令观察数据区在内存中的具体内容,记录单元A 和B 的具体地址。
2) 用U 命令对目标代码反汇编,观察反汇编后的结果。
注意发现源程序的起始位置,并记录这个起始地址。
3) 用T 命令作单步跟踪调试。
比较每条指令执行后的结果和原来的理解是否一致,得出程序运行的结果:它们是写在什么单元,具体内容是什么;并判断结果是否正确。
汇编语言与微机原理实验-分支程序设计实验
![汇编语言与微机原理实验-分支程序设计实验](https://img.taocdn.com/s3/m/993fde6f9b6648d7c1c746ff.png)
实验二分支程序设计实验姓名:学号:实验日期:一实验目的1、掌握分支程序的设计方法。
2、掌握宏定义及宏调用的基本方法。
3、了解小写和大写字母的ASCII码表示及其转换方法。
了解数字及其它字符在的ASCII码表示方法。
4、进一步掌握调试工具的使用方法二实验内容从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“You Input a Lowercase Letter!”;若输入为大写字母,显示“You Input a Uppercase Letter!”;若输入为数字,显示“You Input a Digit!”;若输入为其它字符,显示“You Input Other Letter!”。
1、编程指导数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH,小写字母的ASCII 码为61H~7AH。
本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。
字符串显示使用功能号为09H的DOS 功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。
2、流程图及程序框图(一):程序流程图(二)程序框架:DATA SEGMENTINFOR1 DB 0AH,0DH,"Please Press Any Key to input a letter:$"INFOR2 DB 0AH,0DH,"You Input a Lowercase Letter!$"INFOR3 DB 0AH,0DH,"You Input a Uppercase Letter!$"INFOR4 DB 0AH,0DH,"You Input a Digit!$"INFOR5 DB 0AH,0DH,"You Input Other Letter!$"DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:M OV AX,DATAMOV DS,AXMOV AH,09MOV DX,OFFSET INFOR1INT 21HMOV AH,09HCMP AL,'0'JB OTHERCMP AL,'9'JBE DIGITCMP AL,'A'JB OTHERCMP AL,'Z'JBE UPPERCMP AL,'a'JB OTHERCMP AL,'z'JBE LOWERJMP PENDLOWER:MOV AH,09HMOV DX,OFFSET INFOR2INT 21HJMP PENDUPPER:MOV AH,09HMOV DX,OFFSET INFOR3INT 21HJMP PENDDIGIT:MOV AH,09HMOV DX,OFFSET INFOR4INT 21HJMP PENDOTHER:MOV AH,09HMOV DX,OFFSET INFOR5INT 21HPEND:MOV AH,4CHINT 21HCODE ENDSEND START三实验习题选做题一:在屏幕上显示信息“Are you really want to exit?”,然后从键盘输入一个字符,若输入“Y”或“y”,显示“Thank you for your using!”后程序结束;若输入“N”或“n”,显示“Let’s continue!”后程序结束;若输入其它字符,显示“You press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
实验三---分支结构程序设计实验报告-
![实验三---分支结构程序设计实验报告-](https://img.taocdn.com/s3/m/f303d26459fb770bf78a6529647d27284b7337dc.png)
XXX大学软件类实验报告
课程名称:C语言程序设计学号:
姓名:
班级:
指导教师:
开课学期:
学院:
XXX大学教务处
4.switch语句。
四、实验过程及内容:(运行结果请抓图到对应题目的下方)
1. 先分析以下程序,写出运行结果,再上机检验。
实验结果:
2.先分析以下程序,写出运行结果,再上机检验。
实验结果:
3.先分析以下程序,写出运行结果,再上机检验。
实验结果:
4. 程序改错题。
以下程序的功能是将a、b、c三个数从小到大进行排序,即使得a≤b≤c.。
程序中有一些错误,试将其改正并上机验证。
实验结果:
5. 程序填空题。
以下程序的功能是:从键盘接收一个字符,如果是小写英文字母,则将其转换为相应的大写字母;如果是大写英文字母,则将其转换为相应的小写字母;如果是其他字符,则不做转换。
填空将程序补充完整并上机验证。
实验结果:
6. 编程题。
根据以下分段函数计算y的值,x的值由键盘输入。
保留两位小数
输入格式:-2
输出格式:y=-2.00
实验代码:
实验结果:
7.输入一个正整数作为年份,编程判断该年是否为闰年。
若是输出“Yes”,否则输出“No”。
提
示:能被4整除,但不能被100整除的年份;或者能被400整除的年份。
实验代码:
实验结果:。
单片机设计教案-项目4 任务3:分支程序结构
![单片机设计教案-项目4 任务3:分支程序结构](https://img.taocdn.com/s3/m/f5fe8bba7fd5360cbb1adb2e.png)
单片机应用技术
3 分支程序设计
若 (X)7 与 (Y)7 相 同 , 则 (X)7(Y)7 = 0 ; 若 (X)7 与 (Y)7 不 相 同 , 则 (X)7(Y)7=1。
本例中,(X)与(Y)的异或结果存放在累加器A中,因此判断ACC.7是否 为零即可知道两个数的符号相同与否。
② 比较两个有符号数的其它方法。 除了本例中使用的比较两个有符号数的方法之外,我们还可以利用溢出
标志OV的状态来判断两个有符号数的大小。具体算法如下: 若X-Y为正数,则 OV=0 时 X>Y;OV=1 时X<Y。 若X-Y为负数,则 OV=0 时 X<Y;OV=1 时X>Y。 采用这种比较方式的汇编语言源程序见习题4.10。
单片机应用技术
《单片机应用技术》
项目4:交通信号灯控制系统的设计与制作 任务3:分支程序设计
学习目标
单片机应用技术
在对单片机这部分内容进行学习的同时, 在掌握单片机分支程序结构的基础上,了 解其应用的条件,进而掌握单片机应用的 理论知识。
通过分析简易交通信号灯控制系统电路 的工作原理,理解并掌握并会设计交通信 号灯控制电路与制作。
X、 Y符号相同
N
Y X- Y
N
X= Y
Y
Y
X> = 0
N
CY= 1
N
Y
X< Y点 P 1.2连 接的 灯
X> Y点 P 1.1连 接的 灯
X= Y点 P 1.1连 接的 灯
X> Y点 P 1.1连 接的 灯
X< Y点 P 1.2连 接的 灯
结束
图2 比较两个有符号数X、Y的流程图
单片机应用技术
3 分支程序设计
A, X ;(X) →A
算法实验报告范文
![算法实验报告范文](https://img.taocdn.com/s3/m/5a187c79001ca300a6c30c22590102020740f26a.png)
算法实验报告范文《算法设计与分析》实验报告班级姓名学号年月日目录实验一二分查找程序实现…………………………………………………………………03页实验二棋盘覆盖问题(分治法).…………………………………………………………08页实验三0-1背包问题的动态规划算法设计……………………………………………….11页实验四背包问题的贪心算法………………………………………………………………14页实验五最小重量机器设计问题(回溯法)………………………………………………17页实验六最小重量机器设计问题(分支限界法)…………………………………………20页指导教师对实验报告的评语成绩:指导教师签字:年月日2实验一:二分查找程序实现一、实验时间:2022年10月8日,星期二,第一、二节地点:J13#328二、实验目的及要求目的:1、用c/c++语言实现二分搜索算法。
2、通过随机产生有序表的方法,测出在平均意义下算法比较次数随问题规模的变化曲线,并作图。
三、实验环境平台:Win732位操作系统开发工具:Codeblock10.05四、实验内容对已经排好序的n个元素a[0:n-1],现在要在这n个元素中找出一特定元素某。
五、算法描述及实验步骤算法描述:折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(logn)完成搜索任务。
它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的某作比较,如果某=a[n/2]则找到某,算法终止。
如果某a[n/2],则我们只要在数组a的右半部继续搜索某。
二分搜索法的应用极其广泛,而且它的思想易于理解。
确定算法复杂度基本步骤:1、首先设定问题规模n;2、随即产生递增数列;3、在n个有序数中随机取一个作为待查找量,搜索之;4、记录查找过程中的比较次数,再次生成新的有序表并查找,记录查找次数,每个数组重复10次;5、改变问题规模n重复上述步骤2~4,n取100、200……1000;6、依实验数据作图,并与理论图作比较;7、二分搜索算法平均查找次数:问题规模为n时,平均查找次数为:A(n)=Int(logn)+1/2//Int()函数为向下取整3即二分搜索算法对于含有n个数据的有序表L平均作了约Int(logn)+1/2次的查找操作。
C语言_实验二、选择结构程序设计
![C语言_实验二、选择结构程序设计](https://img.taocdn.com/s3/m/628e1c33a5e9856a561260c0.png)
实验二 选择结构程序设计一、实验目的1. 掌握关系表达式和逻辑表达式的使用。
2. 熟悉选择结构程序设计。
3. 熟练使用if 语句进行程序设计。
4. 使用switch 语句实现多分支选择结构。
二、实验内容(1 计算a+|b| 2 判断一个整数是否可以被3和5整除)1.[目的]掌握判断一个字符型数据是否数字字符的方法,以及数字字符转换为相应整数的方法。
[题目内容]从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[输入]一个字符型数据[输出]整数或出错信息[提示] 根据字符型数据的ASCII 码值是否在‘0’字符与‘9’字符之间进行判断。
使用if …else …语句和复合语句。
2.[目的]掌握条件表达式的使用[题目内容] 编写一个程序,其功能为:从键盘输入三个数x 、y 、z ,判断x+y=z 是否成立,若成立输出‚x+y=z ‛的信息,否则输出‚x+y!=z ‛的信息。
[输入] 三个数x 、y 、z[输出] ‚x+y=z ‛或‚x+y!=z ‛[提示] 条件判断表达式x+y==z3.[目的]掌握求最大值最小值的方法。
[题目内容] 编写一个程序,其功能为:输入三个整数,输出最大数和最小数。
[输入] 三个整数[输出] 最大值和最小值[提示] 设置最大值变量max 和最小值变量min ;首先比较a,b 的大小,并把大数存入max , 小数存入min ;然后最大值变量max 和最小值变量min 再与c 比较,若c 大于max ,则max 取值c ,否则保持不变;如果c 小于min ,则min 取值c ,否则保持不变。
最后输出max 和min 的值。
使用if …else …语句、if 语句以及复合语句。
4.[目的]运用已学知识解决实际问题。
[题目内容]如下两个线性方程组的两个未知数为x1和x2:ax 1+bx 2=mcx 1+dx 2=n该方程的唯一解为(ad-cb 不等于零时):cb ad bn md x --=1 bcad mc na x --=2 请编写一个程序,读取a 、b 、c 、d 的值,计算x1和x2的值。
C语言实验-15电本通信(1)分析
![C语言实验-15电本通信(1)分析](https://img.taocdn.com/s3/m/874bd4abf61fb7360b4c65ef.png)
实验一顺序程序设计【实验目的】1、熟悉C语言数据类型的概念,熟悉如何定义整型、字符型和实型变量2、掌握C语言中的算术运算符3、熟悉C语言表达式语句、空语句和复合语句4、能编写简单的顺序结构的程序【预习内容】1、C语言中类型定义的标志符int 、short、unsigned 、char、float 、double……2、C语言中的运算符所能实现的操作3、输入输出函数的调用语句getchar()、putchar()、scanf()、printf()【实验内容及步骤】1.上机改错题#include <stdio.h>int main(){ int a, b;scanf("%d%d", &a, &b);printf("%d\n", a/b); return 0;}程序纠错后,若从键盘输入15,4,则程序的运行结果为( 3)。
#include <stdio.h>int main(){ float r, s;scanf("%f",&r);s=3.14159*r*r;printf("%f\n", s); //s是float型,%d打印的是整形。
数据不一致会出错 return 0;}程序纠错后,若从键盘输入3.5,则程序的运行结果为( 38.484477)。
2.上机验证题int main(){ char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');return 0;}程序运行结果:( )int main(){ int x=10, y=3, z;printf("%d %d\n", x/y, x%y); return 0;}程序运行结果:( )int main(){ int sum=5, pad=5;pad = sum ++, pad ++, ++ pad; printf("%d\n", pad);return 0;}程序运行结果:( )int main(){short int n=65536;n++;printf("%d\n",n);return 0;}程序运行结果:( )3.上机编程题1、从键盘上任意输入三个整型数据a、b和c,要求将其交换输出a、b和c的值。
微机分支程序设计实验
![微机分支程序设计实验](https://img.taocdn.com/s3/m/2ea11b998ad63186bceb19e8b8f67c1cfad6ee91.png)
微机分支程序设计实验微机分支程序设计是计算机科学与技术领域中的一个重要实验,它涉及到程序设计中的条件判断和选择结构。
通过这个实验,学生可以深入理解程序的逻辑控制流程,掌握分支结构的实现方法,并能够应用这些知识解决实际问题。
以下是微机分支程序设计实验的详细内容。
实验目的1. 理解程序设计中的分支结构及其重要性。
2. 掌握条件语句的语法和使用方式。
3. 学会使用分支结构解决实际问题。
4. 提高编程能力和逻辑思维能力。
实验环境- 计算机一台,安装有编程软件(如Visual Studio, Dev-C++等)。
- 编译器(如GCC, MSVC等)。
- 必要的开发工具和文档。
实验内容1. 基础分支结构实验的第一部分是理解并实现基本的分支结构,包括`if`语句和`switch`语句。
- if语句:实现一个简单的程序,根据输入的条件执行不同的代码块。
- switch语句:编写程序,根据输入的值选择不同的执行路径。
2. 复合条件在第二部分,学生将学习如何使用逻辑运算符来构建复合条件。
- 使用`&&`(逻辑与)、`||`(逻辑或)和`!`(逻辑非)来构建更复杂的条件判断。
3. 嵌套分支第三部分将探讨分支结构的嵌套使用,即在一个`if`语句内部使用另一个`if`语句。
- 编写程序,实现多条件的判断和选择。
4. 应用实例在第四部分,学生将应用分支结构解决一些实际问题,如计算成绩等级、判断闰年等。
- 成绩等级:根据输入的成绩,使用分支结构输出相应的等级。
- 闰年判断:编写程序判断用户输入的年份是否为闰年。
实验步骤1. 需求分析:明确实验任务和目标。
2. 设计算法:根据实验要求设计合适的算法流程。
3. 编写代码:根据设计好的算法,使用编程语言实现程序。
4. 编译调试:在编程环境中编译程序,并调试以确保程序正确运行。
5. 结果测试:使用不同的输入测试程序,确保程序能够正确处理各种情况。
6. 文档编写:编写实验报告,记录实验过程、结果和心得体会。
程序设计基础(Ⅰ)实验目的、内容及实验报告填写要求2015新修改 (1)
![程序设计基础(Ⅰ)实验目的、内容及实验报告填写要求2015新修改 (1)](https://img.taocdn.com/s3/m/4fd17c2783c4bb4cf7ecd191.png)
封面:2015-2016学年第一学期,年级是2015级,指导教师:网络工程专业1班写:赵玉艳陈海宝;网络工程2班写:赵玉艳肖刚,其它如实填写。
实验名称:实验一用C语言编写简单程序;实验二分支结构程序设计;实验三循环结构程序设计;实验四函数程序设计;实验五数组程序设计;实验六指针程序设计;实验七结构体程序设计。
课程名称:程序设计基础(Ⅰ)实验时间:分别为9.28, 10.12, 11.9, 11.23, 12.7, 12.21, 1.4实验地点:X405组号,同组人以及成绩:不需要填写实验环境:Windows 7;Visual C++ 6.0。
实验目的实验一用C语言编写简单程序1. 熟悉VC6.0的编程环境,掌握运行C程序的基本步骤。
2. 了解C程序的基本框架,模仿例题编写简单的C语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C语言提供的数学库函数。
5. 掌握简单的单步调试方法。
实验二分支结构程序设计1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if语句实现多分支结构程序设计。
3.熟练掌握关系表达式和逻辑表达式的使用。
4.熟练掌握字符型数据的输入输出。
5.熟练掌握用嵌套的if语句或switch语句实现多分支结构程序设计。
6.熟练掌握switch语句中的break语句的作用。
7.掌握使用断点调试程序的方法。
实验三循环结构程序设计1. 熟练使用for、while和do-while语句实现简单的循环程序。
2. 理解循环条件和循环体,以及for、while和do-while语句的相同及不同之处。
3. 掌握使用Debug菜单调试程序的方法。
4. 掌握break语句的使用。
5. 掌握continue语句的使用。
6. 熟练掌握嵌套循环程序设计。
实验四函数程序设计1. 熟练掌握函数的定义和调用。
2. 熟练掌握使用函数编写程序。
3.熟练掌握函数的实参、形参和返回值的概念及使用。
实验二MATLAB程序设计含实验报告
![实验二MATLAB程序设计含实验报告](https://img.taocdn.com/s3/m/f754ff83aeaad1f346933ff1.png)
实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
微机实验报告
![微机实验报告](https://img.taocdn.com/s3/m/9806b5325a8102d276a22f64.png)
实验1 基本操作实验一、实验目的(1)掌握TD- PITC 80X86微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
(2)掌握使用运算指令类编程及调试方法。
(3)掌握运算类指令对各状态标志位的影响及其测试方法。
(4)学习使用软件监视变量的方法。
二、实验设备PC机一台,TD- PITC实验装置一套三、实验内容及步骤通过对样例程序的操作,学会使用在TD- PITC环境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会:如何设置断点,如何单步运行程序,如何连续运行程序,怎样查看寄存器的内容,怎样修改寄存器的内容,怎样查看存储器的内容,怎样修改存储器的内容3.1 实验内容一——BCD码转换为二进制实验内容将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3501H起始的内存单元中,自行绘制流程图并编写程序。
实验步骤:1)运行Wmd86软件,进入Wmd86集成开发环境。
2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言。
语言选择后,下次再启动软件,语言环境保持这次的修改不变。
在这里我们选择汇编语言。
3)语言选择后,点击新建来新建一个文档。
默认文件名为Wmd861.4)编写实验程序。
并保存,此时系统会提示输入新的文件名,输完后点击保存。
实验程序清单如下:SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART:XOR AX,AXMOV SI 3500HMOV DI 3510HA1:MOVE AL,[SI]ADD AL,ALMOV BL,ALADD AL,ALADD AL,ALADD AL,BLINC SIADD AL,[SI]MOV [DI],ALINC SIINC DILOOP A1A2:JMP A2CODE ENDSEND START5)点击编译文件,若程序无误,再点击进行连接。
汇编语言实验报告
![汇编语言实验报告](https://img.taocdn.com/s3/m/9f282a11866fb84ae45c8d61.png)
实验报告一:汇编语言实验基础一.实验目的:1. 熟悉汇编语言程序的开发过程以及汇编语言常用软件的使用方法2. 掌握DEBUG常用命令的使用方法二、实验内容:1.DEBUG 命令使用2.8088常用指令练习三、实验步骤:(一)DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符'_ '。
2、用命令 F 100 10F 'A' 将'A'的ASCII码填入内存。
3、用命令 D 100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
4、用命令 F 110 11F 41 重复上二项实验,观察结果并比较。
5、用命令 E 100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码? 6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H(5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF 和AF的内容。
8、用R命令将AX,BX内容改写为1050H及23A8H。
(二)8088常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序,特别注意左边的机器码。
3)用T命令逐条运行这些指令,注意有关寄存器及IP的变化情况。
并注意标志位有无变化。
2、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。
实验二 C语言中的分支语句程序设计实验
![实验二 C语言中的分支语句程序设计实验](https://img.taocdn.com/s3/m/a3fdf47a1711cc7931b716eb.png)
实验二 C语言中的分支语句程序设计一、实验目的:1.掌握C语言的基本语法;2.掌握C语言的表达式运算及标准库函数的调用方法;3.掌握C语言的基本输入输出语句;4.掌握字符类型、整型和浮点型数据的输入输出及表达式计算方法;5.掌握if语句和switch语句的用法;6.掌握分支程序结构的设计思想;二、实验内容(一)分析程序,用程序验证下面各个表达式的值1、当整型变量a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少? (1) if(a>c) {a=b; b=c; c=a;}else {a=c; c=b; b=a;}执行后a,b,c的值为,,(2) if(a<c) a=c;else a=b; c=b; b=a;执行后a,b,c的值为,,(3) if(a!=c) ;else a=c; c=b; b=a;执行后a,b,c的值为,,2、若整数x分别等于95、87、100、43、66、79,57,则以下程序段运行后屏幕显示是什么?switch(x/10){ case 6:case 7: printf("Pass\n"); break;case 8: printf("Good\n"); break;case 9:case 10: printf("VeryGood\n"); break;case 5 : printf("Between Pass and Fail\n");default: printf("Fail\n");}x等于95时,程序段运行后屏幕上显示。
x等于87时,程序段运行后屏幕上显示。
x等于100时,程序段运行后屏幕上显示。
x等于43时,程序段运行后屏幕上显示。
x等于66时,程序段运行后屏幕上显示。
x等于79时,程序段运行后屏幕上显示。
x等于57时,程序段运行后屏幕上显示。
汇编语言实验报告
![汇编语言实验报告](https://img.taocdn.com/s3/m/91ef380ca66e58fafab069dc5022aaea998f4178.png)
汇编语⾔实验报告汇编语⾔实验报告专业:班级:姓名:学号:2011年12⽉14⽇⽬录实验1 利⽤DEBUG调试汇编语⾔程序段 (3)实验2 初级程序的编写与调试实验(⼀) (11)实验3 初级程序的编写与调试实验(⼆) (20)实验4 汇编语⾔程序上机过程 (28)实验5 分⽀程序实验 (33)实验6 循环程序实验 (40)实验7 ⼦程序实验 (45)实验1 利⽤DEBUG调试汇编语⾔程序段⼀.实验⽬的1.熟悉DEBUG有关命令的使⽤⽅法;2.利⽤DEBUG掌握有关指令的功能;3.利⽤DEBUG运⾏简单的程序段。
⼆.实验内容1.进⼊和退出DEBUG程序;1)开始—运⾏,输⼊cmd,点确定进⼊命令窗⼝2)在命令窗⼝中输⼊dubug进⼊debug程序3)进⼊debug窗⼝后,输⼊q命令退出debug2.学会DEBUG中的1)D命令(显⽰内存数据D 段地址:偏移地址)例1:-D100 ;显⽰DS段, 0100开始的128个节内容说明: 指定要显⽰其内容的内存区域的起始和结束地址,或起始地址和长度。
① D SEGREG[起始地址] [L 长度];显⽰SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容.② D SEGREG[段地址:偏移地址];显⽰SEGREG段中(缺省内默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省内默认为128)个字节内容-D ;默认段寄存器为DS,当前偏移地址(刚进⼊debug程序偏移地址为0100H)-D DS:100 ;显⽰DS段, 0100H开始的128个字节内容-D CS:200 ;显⽰CS段, 0200H开始的128个字节内容-D 200:100 ;显⽰DS段, 0200:0100H开始的128个字节内容-D 200 ;显⽰DS段, 0200H开始的128个字节内容-D 100 L 10 ;显⽰DS段, 100H开始的8H个字节内容2)E命令(修改指定内存)-E100 11 22 33 44 55 66 77 88-D 100结果:0AF1:0100 11 22 33 44 55 66 77 88例2:-E 100:E 地址数据表;从指定的地址开始⽤数据表给定的数据修改存储单元。
微机原理接接口技术-实验指导书
![微机原理接接口技术-实验指导书](https://img.taocdn.com/s3/m/56f453ec9ec3d5bbfc0a7419.png)
«微机原理与接口技术»实验指导书曹红根编南京理工大学泰州科技学院目录实验一分支程序设计实验 (1)实验二循环程序设计实验 (3)实验三 8259A中断控制器应用实验 (4)实验四8255并口控制器应用实验 (10)实验一分支程序设计实验实验目的掌握分支程序的设计方法。
实验内容及说明程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图1所示。
本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。
图1 分支结构的示意图实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH 和BL初始化为首字节的内容,然后进入循环操作。
在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL 中的内容小,则修改之。
当循环结束操作时,将BH,BL分别送屏幕显示。
参考实验流程如图2所示。
实验步骤(1) 运行Tdpit软件,选择文件菜单编写实验程序;提供8字节的数据:0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H。
(2) 使用编译菜单中的编译和连接对实验程序进行汇编、连接。
(3) 使用编译菜单中的运行,运行程序,观察运行结果。
(4) 更改数据区中的数据,考察程序的正确性。
1图2实验流程图实验二循环程序设计实验实验目的掌握循环程序的设计方法。
实验内容及说明本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。
要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。
循环程序的结构示意如图1所示。
图1循环程序的结构示意图实验步骤(1) 运行Tdpit软件,选择文件菜单编写实验程序。
提供10字节的数据:12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H。
C语言_实验二、选择结构程序设计
![C语言_实验二、选择结构程序设计](https://img.taocdn.com/s3/m/6fc7c4dada38376baf1faeb8.png)
printf("这个是大写字母");
}
}
}
return 0;
}
2.[目的]掌握条件表达式的使用
[题目内容]编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。
[输入]三个数x、y、z
[输出]“x+y=z”或“x+y!=z”
[提示]条件判断表达式x+y==z
#include<stdio.h>
int main (void)
{
float x=0.0;
float y=0.0;
float z=0.0;
scanf("%f,%f,%f",&x,&y,&z);
if (x+y==z)
{
printf("x+y=z\n");
}
else
{
printf("x+y!=z\n");
max=x;
min=y;
}
else
{
max=y;
min=x;
}
if (z>max)
{
max=z;
}
if (z<min)
{
min=z;
}
printf("max=%f,min=%f",max,min);
return 0;
}
4.[目的]运用已学知识解决实际问题。
[题目内容]如下两个线性方程组的两个未知数为x1和x2:
[输入]一元二次方程ax2+bx+c=0的各项系数a、b、c
【实验指导书】实验3:分支结构程序设计
![【实验指导书】实验3:分支结构程序设计](https://img.taocdn.com/s3/m/dcc819ec760bf78a6529647d27284b73f3423652.png)
实验三:分支结构程序设计一、实验目的:1. 熟练掌握关系表达式和逻辑表达式的使用;2. 熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计;3. 熟练掌握switch语句中break语句的作用;4. 掌握简单的调试程序方法,包括:单步调试和运行到光标。
二、实验要求:1.编写程序,计算分支函数。
要求:输入为任意实数,输出结果保留小数点后2位。
输入输出示例:Enter x:227.00提示:实现x n可以标准库函数pow(x,n),此数学函数已在头文件math.h中说明。
2.编写程序。
根据一个年份,判断是否是闰年。
要求:输入为一个整数,表示一个年份;输出:如果是闰年,输出"Y es",否则输出"No"。
输出单独占一行。
输入输出示例:Enter year:2012Yes3. 编写程序。
给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。
要求:输入为三个正整数,中间有一个空格隔开;输出:如果能构成三角形,输出"Yes",否则输出"No"。
提示:在一个三角形中,任意两边之和大于第三边。
输入输出示例:3 4 5Yes4.输入五级制成绩(A~E),输出相应的百分制(0~100)区间。
要求用switch语句。
五级制对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D((60~69))、E(0~59)。
输入输出示例:Input Grade:BB对应的百分制成绩区间是80~895.编写程序,输入月薪salary,输出应交的个人所得税tax(保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax=rate*(salary - 3500)- deduction当salary ≤3500时,rate = 0、deduction = 0;当3500 <salary ≤5000时,rate = 3%、deduction = 0;当5000 <salary ≤8000时,rate = 10%、deduction = 105;当8000 <salary ≤12500时,rate = 20%、deduction = 555;当12500 <salary ≤38500时,rate = 25%、deduction = 1005;当38500 <salary ≤58500时,rate = 30%、deduction = 2755;当58500 <salary ≤83500时,rate = 35%、deduction = 5505;当83500 <salary时,rate = 45%、deduction = 13505。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二分支程序实验
1、实验目的
1)掌握分支程序的设计方法。
2)掌握利用DEBUG修改参数、检查结果的方法。
3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
2、实验内容
1)编写一个程序,显示AL寄存器中的两位十六进制数
2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。
3、实验准备
1)编写实验内容要求的两个程序。
2)写出调试以上程序,即修改程序参数,检查结果的操作方法。
3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。
4、实验步骤
1)用EDIT或其它编辑软件,编写.ASM源程序,例如HEXASC.ASM及DSPKEY.ASM。
2)对其进行汇编及连接,产生.EXE文件。
3)对.EXE文件进行调试运行。
(1)用DEBUG调试运行,学会修改AL内容的方法。
(2)对DSPKEY.EXE键入不同的字符,分别进行调试。
(3)在MS-DOS下运行这两个.EXE文件。
5、实验报告要求
1)画出两个程序的流程图,若要独立编写程序,应列出相应的程序清单。
2)说明本实验是如何利用DEBUG进行调试的。
6、参考程序清单
1)显示AL中两位十六进制数程序:
;DISPHEX.ASM
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,3EH
MOV BL,AL
MOV DL,AL
MOV CL,4
SHR DL,CL
CMP DL,9
JBE NEXT1
ADD DL,7
NEXT1: ADD DL,30H
MOV AH,2
INT 21H ;显示高位ASCII码
MOV DL,BL
AND DL,0FH
CMP DL,9
JBE NEXT2
ADD DL,7
NEXT2: ADD DL,30H
MOV AH,2
INT 21H ;显示低位ASCII码
MOV AH,4CH
INT 21H
CODE ENDS ;返回DOS
END START
2)显示键入字符程序
;DISPKEY.ASM
CODE SEGEMENT
ASSUME CS:CODE
START: MOV AH,1
INT 21H ;等待键入字符,送AL
CMP AL,0DH ;是否是回车符?
JZ DONE ;是则转DONE退出程序
CMP AL,’0’
JB NEXT
CMP AL,’9’
JA CHARUP
MOV DL,AL
MOV AH,2
INT 21H
JMP START
CHARUP: CMP AL,41H
JB NEXT
CMP AL,5AH
JA CHRDN
DISPC: MOV DL,’C’
MOV AH,2
INT 21H
NEXT: JMP START
CHRDN: CMP AL,61H
JB NEXT
CMP AL,7AH
JA NEXT
JMP DISPC
DONE: MOV AH,4CH
INT 21H
CODE: ENDS
END START。