当前位置:文档之家› 5分支结构程序1

5分支结构程序1

5分支结构程序1
5分支结构程序1

5 分支结构程序 (1)

5.1 关系运算符和表达式 (1)

5.1.1 关系运算符及其优先次序 (1)

5.1.2 关系表达式 (1)

5.2 逻辑运算符和表达式 (2)

5.2.1 逻辑运算符极其优先次序 (2)

5.2.2 逻辑运算的值 (3)

5.2.3 逻辑表达式 (3)

5.3 if语句 (4)

5.3.1 if语句的三种形式 (4)

5.3.2 if语句的嵌套 (8)

5.3.3 条件运算符和条件表达式 (9)

5.4 switch语句 (10)

5.5 程序举例 (11)

5分支结构程序

5.1 关系运算符和表达式

在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。

5.1.1关系运算符及其优先次序

在C语言中有以下关系运算符:

1)< 小于

2)<= 小于或等于

3)> 大于

4)>= 大于或等于

5)== 等于

6)!= 不等于

关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。

5.1.2关系表达式

关系表达式的一般形式为:

表达式关系运算符表达式

例如:

a+b>c-d

x>3/2

‘a’+1

-i-5*j==k+1

都是合法的关系表达式。由于表达式也可以又是关系表达式。因此也允许出现嵌套的情况。例如:

a>(b>c)

a!=(c==d)

等。

关系表达式的值是真”和“假”,用“1”和“0”表示。

如:

5>0的值为“真”,即为1。

(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。

【例5.1】

main(){

char c='k';

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf("%d,%d\n",’a’+5=k+1);

printf("%d,%d\n",1

printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);

}

在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。

5.2 逻辑运算符和表达式

5.2.1逻辑运算符极其优先次序

C语言中提供了三种逻辑运算符:

1)&& 与运算

2)|| 或运算

3)! 非运算

与运算符&&和或运算符||均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:

!(非)→&&(与)→||(或)

“&&”和“||”低于关系运算符,“!”高于算术运算符。

按照运算符的优先顺序可以得出:

a>b && c>d 等价于 (a>b)&&(c>d)

!b==c||d

a+b>c&&x+yc)&&((x+y)

5.2.2逻辑运算的值

逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则如下:1.与运算 &&:参与运算的两个量都为真时,结果才为真,否则为假。

例如:

5>0 && 4>2

由于5>0为真,4>2也为真,相与的结果也为真。

2.或运算||:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果

为假。

例如:

5>0||5>8

由于5>0为真,相或的结果也就为真。

3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。

例如:

!(5>0)

的结果为假。

虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。

又如:

5||0的值为“真”,即为1。

5.2.3逻辑表达式

逻辑表达式的一般形式为:

表达式逻辑运算符表达式

其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。

例如:

(a&&b)&&c

根据逻辑运算符的左结合性,上式也可写为:

a&&b&&c

逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】

main(){

char c='k';

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf("%d,%d\n",!x*!y,!!!x);

printf("%d,%d\n",x||i&&j-3,i

printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);

}

本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x|| i && j-3式,先计算j-3的值为非0,再求i && j-3的逻辑值为1,故x||i&&j-3的逻辑值为 1。对i

5.3 if语句

用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。

5.3.1if语句的三种形式

1.第一种形式为基本形式:if

if(表达式) 语句

其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。

【例5.3】

c语言程序分支结构题目及答案

21. htm 01. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。 #include void main() { char c; scanf("%c",&c); if(c>='A'&&c<='Z') c=c+32; else if(c>='a'&&c<='z') c=c-32; printf("%c",c); } 02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。如果是,输出Yes,否则输出No。 #include void main() { int a; scanf("%d",&a); if(a%5==0&&a%7!=0) printf("yes"); else printf("no"); } 03. 从键盘输入一个4 位正整数,求其逆序数,并输出。例如:若输入1234,则输出应该是4321。 #include void main() { int n,g,s,b,q,m; scanf("%d",&n); q=n/1000; b=n/100%10; s=n/10%10; g=n%10;

m=g*1000+s*100+b*10+q; printf("%d\n",m); } 22. htm 01. 从键盘输入一个字符,如果是字母,就输出其对应的ASCII 码;如果是数字字符,就转换成对应整数并输出。 #include void main() { char c; scanf("%c",&c); if(c>='a'&&c<='z'||c>='A'&&c<='Z') printf("ASCII:%d",c); else if(c>='0'&&c<='9') printf(" 数字:%d",c-'0'); } 02.从键盘输入一个数,判断其是否能同时被3和5整除。如果是,输出Yes,否则 输出No。 #include void main() { int a;

Matlab 实验五 分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

5分支结构程序1

5 分支结构程序 (1) 5.1 关系运算符和表达式 (1) 5.1.1 关系运算符及其优先次序 (1) 5.1.2 关系表达式 (1) 5.2 逻辑运算符和表达式 (2) 5.2.1 逻辑运算符极其优先次序 (2) 5.2.2 逻辑运算的值 (3) 5.2.3 逻辑表达式 (3) 5.3 if语句 (4) 5.3.1 if语句的三种形式 (4) 5.3.2 if语句的嵌套 (8) 5.3.3 条件运算符和条件表达式 (9) 5.4 switch语句 (10) 5.5 程序举例 (11) 5分支结构程序 5.1 关系运算符和表达式 在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。 5.1.1关系运算符及其优先次序 在C语言中有以下关系运算符: 1)< 小于 2)<= 小于或等于 3)> 大于 4)>= 大于或等于 5)== 等于 6)!= 不等于 关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。 5.1.2关系表达式 关系表达式的一般形式为: 表达式关系运算符表达式 例如: a+b>c-d

x>3/2 ‘a’+1(b>c) a!=(c==d) 等。 关系表达式的值是真”和“假”,用“1”和“0”表示。 如: 5>0的值为“真”,即为1。 (a=3)>(b=5)由于3>5不成立,故其值为假,即为0。 【例5.1】 main(){ char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",’a’+5=k+1); printf("%d,%d\n",1

程序的分支结构(一)

程序的分支结构(一) 一、教学目标: 1、知识与技能:掌握分支语句的格式、功能;理解程序的分支结构;了解编程思路 2、过程与方法:学会分析问题和解决问题的能力 3、情感、态度和价值观:培养学生协作学习的能力和团队精神 二、重点难点: 1、教学重点:IF 三、教学媒体:多媒体网络教室 四、教学过程:

新 课 (35分钟)知识点 IF条件语句 格式、功能、流 程图 例:已知数a,b, c,若c为a,b的 和,则输出“rig ht”,否则输出“w rong”,写出语 句。 例:请分析程序 功能。 input x if x<0 then x= -x print x end 新任务 请编写程序计 算运费a。 学生分组讨论 解题步骤。 学生交流思路 由教师归纳学 生所得出基本 讲解 引导思考 纠正答案 提示分析方法 建立数学模型 人工完成步骤 利用已掌握语句细 化实现每个步骤 编写程序 引导学生理顺思 路,归纳步骤并细 化到逐条语句 1、由键盘输入行李 重w 2、判断w值,选择 相应的公式计算运 费a 思考、听讲 理解条件语句 参看课本第16 1 页的内容 思考练习 回答问题 初步运用IF语 句 比较灵活的运 用IF语句 分组讨论 通过讨论完善 自己的思路 学生代表阐述 解题步骤 思考 灵活运用各语 句完成该任务 由计算行李运费的 任务驱动,引入条件 语句。 通过简单例题,使学 生尝试正确的语句 书写格式。 IF <条件> THEN <语句1> [ ELSE <语句2>] IF <条件> THEN <语句1> 再次运用语句,省略 ELSE练习。 加深学生对语句格 式、功能的理解及记 忆。 检测的键盘输入语 句及条件语句的综 合运用情况。 学生交流讨论结果, 及时纠正模糊思路, 得出较为正确方法。 培养学生团结协作

实验三 分支结构程序设计答案

实验三分支结构程序设计 一、实验目的 1.理解MATLAB的编程方法 2.掌握if语句和switch语句的使用 3. 掌握分支结构程序设计方法 4. 通过练习理解MATLAB编程方法和分支结构程序设计方法。 二、实验环境 1.计算机 2.MATLAB7.0集成环境 三、实验说明 1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0;

for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩56 a = 56 E 成绩合理 switch语句

实验5 分支结构程序设计

河北工业大学城市学院《汇编语言程序设计》实验报告 实验5 分支结构程序设计 一、 实验目的 1.熟悉运算类指令对状态标志位的影响,掌握根据状态标志实现转移的方法。 2.掌握条件转移、无条件转移指令的使用方法。 3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;掌握分支程序设计、编写、调试和运行的方法。 二、实验内容 1.判断X 单元数据的奇偶性,若为奇数,将Y 单元设置为0FFH ,若为偶数,将Y 单元清0。 解:程序代码为: DATAS SEGMENT X DB 13H Y DB ? DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START : MOV AX,DATAS MOV DS,AX MOV BL,Y MOV AL,X TEST AL,01H JZ L1 MOV BL,0FFH JMP L2 L1: XOR BL,BL L2: NOP MOV Y ,BL MOV AH,4CH INT 21H CODES ENDS ENDSTART 部分图解注释为: 2. 设有两个字节数据分别存放在FIRST 和SECOND 单元中,编程求出其中的较小数并存于MIN 单元。 要求:将两个数看作无符号数据和带符号数据时分别编程实现。 将X 单元中的数据给到AX 后,判断出为奇数,则BX 中的值为00FFH

①解:带符号数据时代码程序为: DATAS SEGMENT FIRST DB 5 SECOND DB-6 MIN DB? DATAS ENDS STACKS SEGMENT DW 20H DUP(?)STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV AL,FIRST MOV BL,SECOND CMP AL,BL JGE L1 MOV AH,4CH INT 21H L1: MOV MIN,BL CODES ENDS ENDSTART 部分图解注释为: ②解:无符号数据时代码程序为: DATAS SEGMENT FIRST DB 5 SECOND DB 6 MIN DB? DATAS ENDS STACKS SEGMENT DW 20H DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX

实验4-分支结构程序设计

实验4-分支结构程序设计

1.练习题一 编写程序,计算练习一分段函数的值。 (1)用scanf函数输入x的值。 (2)运行程序时,分别按x的值小于0、x的值在0-15之间、x的值大于15三种情况输入数据,检查输出的y值是否正确。

void test() { char c; printf("Test again?y/n\n"); if ((c=getchar())=='n'||c=='N')//只有当输入N或n时才终止程序 k=0; } 判断x的值在0-15之间可否使用表达式“0<=x<15”?为什么?正确的表示方法是什么? 不可。因为一个条件判断表达式中最多只能有一个运算符。正确的表示方法是x>=0&&x<15. 2.练习题二 输入3个数字,判断他们是否能构成三角形,如果不能,输出提示信息;否则判断它是直角、等边、等腰还是普通三角形。

运行结果截图:

判断三角形的类型时需要用到各种判断条件,入等边三角形的判断条件是3条边相等,该判断条件可否描述为“a=b=c”?为什么? 不能,“=”在C语言中是赋值符号,在条件判断式中是一个永真式,会引起语义错误。 1. 练习题三 编写一个程序,输出给定的某年某月的天数。 要求: 采用switch语句实现。 程序代码:

# include void main() { int year,mon,days,leap; printf("年.月:"); scanf("%4d.%2d",&year,&mon); switch(mon) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31;break; case 4: case 6: case 9: case 11:days=30;break; case 2: if (year%4==0&&year%100!=0||year%400==0) leap =1; else leap=0; if (leap) days=29; else days=28; } printf("%d年%d月的天数为%d天\n",year,mon,days); } 思考题及问题: ①本程序所给代码中的switch语句没有default语句可以吗?default语句应该在switch语 句的什么位置?

MATLAB_分支结构程序设计答案

MATLAB分支结构程序设计 一、实验目的 1.理解MATLAB的编程方法 2.掌握if语句和switch语句的使用 3. 掌握分支结构程序设计方法 4. 通过练习理解MATLAB编程方法和分支结构程序设计方法。 二、实验环境 1.计算机 2.MATLAB7.0集成环境 三、实验说明 1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=')

n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩56 a = 56

分支结构程序设计(汇编语言)资料

汇编语言实验报告 实验名称:分支结构程序设计 姓名: 学号: 班级:

一、实验内容 1.将程序1输入、汇编、连接并通过Debug调试和检查运行结果。 2.修改程序1完成将其中的最小数存入MIN单元。 3.将编写好的程序2输入、汇编、连接并通过Debug调试和检查运行结果。 4.将编写好的程序3输入、汇编、连接并通过Debug调试和检查运行结果。 二、实验目的 1. 掌握分支程序的结构。 2. 掌握分支程序的设计、编写及调试方法。 三、实验原理 1、汇编语言源程序编制完成后,在计算机上的操作过程分为四个阶段:编辑、汇编、连接、运行调试(如图1)。 2、上机实验步骤: 1)确定源程序的存放目录 2)编辑ASM源程序 3)用MASM.EXE汇编程序产生OBJ目标文件 4)用LINK.EXE产生EXE可执行文件 5)执行程序 3、程序执行过程的跟踪 可以用Debug来跟踪一个程序的运行过程,这通常是必须要做的工作。我们写的程序在逻辑上不一定总是正确,对于简单的错误,仔细检查一下源程序就可以发现;而对于隐藏较深的错误,就必须对程序的执行过程进行跟踪分析才容易发现。 为了观察程序的运行过程,可以使用Debug。Debug可以将程序加载入内存,设置CS:IP 指向程序的入口,但Debug并不放弃对CPU的控制,这样,我们就可以使用Debug的相关

命令来单步执行程序,查看每一条指令的执行结果。 4 分支结构 汇编语言中的分支结构式一种很常用的结构,就像我们高级语言中的if结构一样。对一些需要判断的很有用。 四、实验过程 1、实验环境 汇编语言程序设计的实验环境如下: (1). 硬件环境 微型计算机(Intel x86系列CPU)一台 (2). 软件环境 Windows98/2000/XP操作系统 任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等) 汇编程序(MASM.EXE或TASM.EXE) 调试程序(DEBUG.EXE或TD.EXE) 文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。 2、实验步骤 (1)、用文件编辑器编写汇编语言程序,并以masm或asm为后缀命名,如:1.asm (以下实验步骤均已此作为例子说明)。 (2)、进入dos,用masm编译所编写的汇编程序,生成1.obj,然后用link.exe 连接1.obj文件,生成课执行文件1.exe. (3)、执行1.exe. (4)、由于在masm中执行了1.exe文件,以我们现在掌握的知识,并不能显示答案在屏幕中,所以用debug 1.exe来打开这个文件,并用t命令一步一步的跟踪该程序的执行过程,验证此程序是否达到了我们想要达到的结果。 3、实验源程序代码及其结构分析 (1)求几个数中的最大数(1.ASM 1.OBJ 1.EXE) 代码如下: DA TA SEGMENT BUF DB 38H,73H,1FH

C语言程序-分支结构题目及问题详解

21.htm 01. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。#include void main() { char c; scanf("%c",&c); if(c>='A'&&c<='Z') c=c+32; else if(c>='a'&&c<='z') c=c-32; printf("%c",c); } 02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。如果是,输出Yes,否则输出No。 #include void main() { int a; scanf("%d",&a); if(a%5==0&&a%7!=0) printf("yes"); else printf("no"); } 03. 从键盘输入一个4位正整数,求其逆序数,并输出。例如:若输

入1234,则输出应该是4321。 #include void main() { int n,g,s,b,q,m; scanf("%d",&n); q=n/1000; b=n/100%10; s=n/10%10; g=n%10; m=g*1000+s*100+b*10+q; printf("%d\n",m); } 22.htm 01. 从键盘输入一个字符,如果是字母,就输出其对应的ASCII码;如果是数字字符,就转换成对应整数并输出。 #include void main() { char c; scanf("%c",&c); if(c>='a'&&c<='z'||c>='A'&&c<='Z') printf("ASCII:%d",c); else if(c>='0'&&c<='9') printf("数字:%d",c-'0'); } 02. 从键盘输入一个数,判断其是否能同时被3和5整除。如果是,

汇编语言分支结构程序设计

实验七分支结构程序设计 一、实验目的 掌握条件转移指令的使用方法及指令对标志寄存器中各标志位的影响;掌握标志位和转移指令之间的关系;会用条件转移指令和无条件转移指令设计多分支结构程序;掌握设置断点调试程序的方法。 二、示例 1、内存自BUF单元开始的缓冲区连续存放着10个学生的英文分数,编程序统计其中90~ 100,60~89,60以下者各有多少人?并把90-100分人数结果存放在P1单元中、60-89分人数结果存放在P2单元中,60分以下人数结果存放在P3单元中(P1、P2、P3为数据段的单元),最后把P1、P2、P3中的数以”P1=?、P2=?、P3=?”显示在屏幕上。(注:数据以10进制显示) DATA SEGMENT BUF DB 70H,58H,50H,91H,99H,62H,75H,82H,74H,60H ;定义BUF单元地址开始的缓冲区的数据 ORG 0020H ;程序执行时,将P1送到0200H内存单元 P1 DB 0 ORG 0030H ;程序执行时,将P2送到0300H内存单元 P2 DB 0 ORG 0040H P3 DB 0 ;程序执行时,将P3送到0400H内存单元 ORG 0050H ;程序执行时,将DP1送到0500H内存单元 DP1 DB'P1= $' ORG 0060H ;程序执行时,将DP2送到0600H内存单元 DP2 DB'P2= $' ORG 0070H ;程序执行时,将DP3送到0700H内存单元 DP3 DB'P3= $' ORG 0080H ;程序执行时,将COUNT送到0800H内存单元 COUNT DW 10 ;'$'为地址运算符,返回当前程序语句的地址偏移值DATA ENDS;定义数据段 CSEG SEGMENT ASSUME CS:CSEG,DS:DATA PUSH DS ;将DS压入堆栈 SUB AX,AX;将AX内存器内容清空 PUSH AX START:MOV AX,DATA MOV DS,AX ;将数据传给数据段DS MOV CX,COUNT ;设置计数器CX,最多为10 MOV SI,0 ;给SI赋值为0 LP1: MOV AL,BUF[SI] ;将BUF内存单元的第si个内容赋值给AL

实验四 分支结构程序设计实验_张鹏

实验四分支结构程序设计实验_张鹏 一、实验目的 1.掌握分支结构程序设计的基本设计方法; 2.掌握条件转移指令和无条件转移指令的使用方法; 3.掌握指令对标志寄存器中各标志位的影响情况; 4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。 二、实验要求 1.学会使用DEBUG的T命令,跟踪检查指令对标志位的影响情况; 2.学会使用DEBUG中的P命令,对INT指令的跟踪方法; 3.学会利用设置断点调试程序的方法; 4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。 三、实验内容 1.编写程序,已知在DATA开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。 2.编写程序,已知在DATA开始的内存单元中,连续存放着三个带符号数据,判断三个数是否同号,若同时为正,则在屏幕上显示“+”号,若同时为负,则在屏幕上显示“-”号,否则显示“*”号。 3.编写程序,从键盘接收字符,判断该字符是否为字母、数字或非字母也非数字类字符。若为字母,则在屏幕上显示“L”;若为数字,则在屏幕上显示“D”;若为非字母也非数字,则在屏幕上显示“O”。 4.编写程序,已知DATAX和DATAY单元各存放一个带符号字节数据,从键盘上接收加(+)、减(-)、乘(*)或除(/)号,完成相应运算,结果在屏幕上显示出来。 ⑴当输入“+”号时,计算X+Y,并以十六进制形式显示出来; ⑵当输入“-”号时,计算X-Y,并以十六进制形式显示出来; ⑶当输入“*”号时,计算X*Y,并以十六进制形式显示出来; ⑷当输入“/”号时,计算X/Y,并以十六进制形式显示出来; 5.编写程序,从键盘输入若干个任意字符,如果是小写字母a~z之间的字符,

相关主题
文本预览
相关文档 最新文档