使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序结构和流程分别是什么

使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序结构和流程分别是什么,第1张

C系语言版:

if(条件)

{

满足条件时的程序代码;

}

else

{

不满足条件时的代码;

}

以上IF单分支

if(条件1)

{

满足条件1时的程序代码;

}

else if(条件2)

{

满足条件2时的程序代码;

}

else

{

不满足条件时的代码;

}

以上是IF多分支

swith(a)

{

case 1: 当A值为1时的程序代码;

break;

case 2: 当A值为2时的程序代码;

break;

default: 当A值为以上CASE都不存在时的程序代码;

}

以上是CASE分支方法

VB语言

''''''''''''''''''''''''''''''''''''''''

if 条件 then

满足条件时的程序代码

else

不满足条件时的代码

end if

'''''''''''''''''''''''''''''''''''''''''

if 条件1 then

满足条件1时的程序代码

elseif 条件2 then

满足条件2时的程序代码

else

不满足条件时的代码

end if

''''''''''''''''''''''''''''''''''''''''''

select case a

case 1,2,3

当A值为1或2或3时的程序代码

case 4,5,6

当A值为4或5或6时的程序代码

case else

当A值为以上CASE都不存在时的程序代码

end select

VB case可以用IS关键词

如:case a is>=60

当 A值大于等于60的时候程序代码

9、每段的起始和结束地址为:

(1)10000H-1FFFFH

(2)12340H-2233FH

(3)23000H-32FFFH

(4)E0000H-EFFFFH

(5)AB000H-BAFFFH

12、若当前SS=3500H,SP=0800H,堆栈段在存储器中的物理地址为35800H,若此时入栈10个字节,SP内容是07F6H,若再出栈6个字节,SP为07FCH

3、

(1)MOV

AX,[100H]源 *** 作数字段的寻址方式是直接寻址,物理地址值是

10100H

(2)MOV

AX,VAL源 *** 作数字段的寻址方式是直接寻址,物理地址值是

10030H

(3)MOV

AX,[BX]源 *** 作数字段的寻址方式是寄存器间接寻址,物理地址值是

10100H

(4)MOV

AX,ES:[BX]源 *** 作数字段的寻址方式是寄存器间接寻址,物理地址值是

20100H

(5)MOV

AX,[SI]源 *** 作数字段的寻址方式是寄存间接寻址,物理地址值是

100A0H

(6)MOV

AX,[BX+10H]源 *** 作数字段的寻址方式是寄存器相对寻址,物理地址值是

10110H

(7)MOV

AX,[BP]源 *** 作数字段的寻址方式是寄存器间接寻址,物理地址值是

35200H

(8)MOV

AX,VAL[BP][SI]源 *** 作数字段的寻址方式是基址变址寻址,物理地址值是

10100H

(9)MOV

AX,VAL[BX][DI]源 *** 作数字段的寻址方式是基址变址寻址,物理地址值是

10124H

(10)MOV

AX,[BP][DI]源 *** 作数字段的寻址方式是基址变址寻址,物理地址值是

35224H

6、

(1)MOV

DL,AX类型不匹配,字节与字不能传送

(2)MOV

8650H,AX

目的 *** 作数不能为立即数

(3)MOV

DS,0200H

立即数不能送段寄存器

(4)MOV

[BX],[1200H]

两内存单元不能直接 *** 作

(5)MOV

IP,0FFH *** 作数不能为IP

(6)MOV

[BX+SI+3],IP

*** 作数不能为IP

(7)MOV

AX,[BX][BP]两个基寄存器不能同时作为地址

(8)MOV

AL,ES:[BP]

可以是正确的

(9)MOV

DL,[SI][DI]两变址寄存器不能同时作为地址

(10)MOV

AX,OFFSET

0A20H错误在OFFSET不用作为数值地址 *** 作符

(11)MOV

AL,OFFSET

TABLE类型不匹配,地址为字,不能传送给字节

(12)XCHA

AL,50H

立即数不用作为XCHG指令的 *** 作数

(13)IN

BL,05H

输入指令为累加器专用指令,不用BL,只能用AL

(14)OUT

AL,0FFEH

端口地址超过8位应该用DX间接寻址

7、

LEA

BX,TABLE

MOV

AL,5

XLAT

MOV

DH,AL

MOV

AL,7

XLAT

MOV

DL,AL

MOV

BX,DX

8、

PUSH

AX

SP=00FEH

PUSH

BX

SP=00FCH

POP

BX

SP=00FEH

POP

AX

SP=0100H

1、

A1

DW

23H,

5876H

变量占4个字节

A2

DB

3

DUP(),

0AH,

0DH,

‘$’变量占6个字节

A3

DD

5

DUP(1234H,

567890H)

变量占40个字节

A4

DB

4

DUP(3

DUP(1,

2,

‘ABC’))

变量占60个字节

2、

MOV

AX,0066H

MOV

AL,0FFH

MOV

AX,0FFH

AND

AL,2

OR

AX,02FFH

4、

PLENTH的值为22,表示PLENTH与PAR之间的字节数

7、用1024×1位的RAM芯片组成16K×8位的存储器,需要128个芯片,在地址线中有10位参与片内寻址,6位组合成片选择信号(设地址总线为16位)

8、现有一存储体芯片容量为512×4位,若要用它组成4KB的存储器,需要16个这样的芯片,每块芯片需要9条寻址线,整个存储系统最少需要12条寻址线。

#include<stdioh>

#include<stdlibh>

int main()

{

int a[3],i,t1=0,t2=0,t3=0;

for(i=0;i<3;i++)

{

printf("请输入第%d门课的成绩:",i+1);

scanf("%d",&a[i]);

if(a[i]>=80) ++t1;

else if(a[i]<80&&a[i]>=70) ++t2;

else if(a[i]<=60) ++t3;

//printf("%d %d %d\n",t1,t2,t3);

}

if(t1==3) printf("成绩很好!!\n");

else if(t1>0&&t1+t2==3) printf("成绩好!!\n");

else if(t3>0) printf("不好!!\n");

system("pause");

return 0

}

这个实在DC上编译的程序!!!!!!

单分支程序(if then)

双字长数存放于dx和ax寄存器(高位于dx),求该数的绝对值(用16位指令)

算法分析:判断数正负,正数(首位为0),不需处理,负数(首位为1),对该数求补,即反码加一

复合分支程序

从键盘输入一位十六进制数,将其转换为十进制数显示输出

算法分析:

输入为数字(30h~39h),直接输出

为大写字母A~F(41h~46h)时,可减11h

a~f时(61h~66h),可减去31h得到30h~35h(0~5的ascii码),再输出2位十进制数字,

其他输入为非法输入,退出程序

多分支程序

采用分支向量表法,int 21h指令就是根据中断类型号21h4得84h直接到84h内存中的向量表取出中断向量(即系统子程序的首地址),来执行一段程序,我们把各分支地址集中存放于分支向量表中,根据分支号快速进入分支

根据键盘输入的一位数字1~4,使程序转移到4个不同的分支中去,以显示键盘输入的数字

算法分析:建立一个分支向量表branch,集中存放4个分支的偏移地址,因偏移地址为16位,所以每两个字节存放一个偏移地址,据输入的数字指向分支向量表,从表中取出对应分支的偏移地址,用jmp branch[bx]指令间接寻址方式转向对应分支

循环程序设计

循环有两种结构,do while和do null

do while先判断条件,再执行循环,do null先循环一遍再判断要不要下次循环

把bx寄存器中的二进制用16进制数格式显示输出

算法分析:

bx寄存器每4位表示一位16进制数位,从左到右循环移位,每移四位,就把要显示的4位二进制位移到最右边。取出最右边的4位,加上30h,转换成8位ascii字符码。因显示输出的十六进制是数字(30h~39h)和A~F(41h~46h),所以8位二进制大于39h时,应再加上7,程序采用计数循环,计数值为4

从键盘输入一个四位的十六进制数(其中字母大写),并将其转换为二进制数显示输出

算法分析:该程序需要两段循环,第一个循环接收键盘输入的16进制数,30h~39h时减30h,输入为41h~46h时,减37h,应把四次的输入拼装成四位16进制数存放在bx寄存器,第二个循环利用16次位移从左到右显示bx寄存器中的二进制数

条件循环程序

循环体有分支时,依据标志位判断,标志位为1表示执行a *** 作,为0表示执行b *** 作等,把这种标志字称为逻辑尺

先从键盘输入8位二进制数作为逻辑尺,再从键盘输入一个英文字母,根据逻辑尺当前的最高位标志显示输出该英文字母的相邻字符,标志位为0则显示前趋字符,标志位为1则显示其后继字符,显示相邻字符后,逻辑尺循环左移一位再接收下一个英文字母的输入,并依据逻辑尺显示相邻字符,直到回车键结束程序

算法分析:8位二进制数的输入构成一个8次循环,把输入整合到

8位寄存器bl中。键盘输入一个英文字母后依据逻辑尺最高标志位显示相邻字符,把最高位移到cf位,以cf位决定显示,构成一个条件循环,以回车键退出循环

打开CSDN,阅读体验更佳

算法导论考试题目_Spike_Bebop的博客

A 子问题必须是一样的 B 子问题不能够重复 C 子问题的解可以合并 D 原问题和子问题使用相同的方法解 14下列算法中不能解决0/1背包问题的是(A ) A 贪心法 B 动态规划 C 回溯法 D 分支限界法

继续访问

Matlab入门基础详解_weixin_43731886的博客

1直接输入法 matlab在创立数组时以逗号或空格表示分列,分号或回车表示分行。数组开头“[”、结尾“]” 行数组:如a=[1,2,3,8,-1] 列数组: b=[1;2;3;8;-1] 或a’ 矩阵:A= [2,4,1;8:-2:4;2,4,6]

继续访问

实验1:汇编语言语法练习与分支循环子程序设计doc

实 验 报 告 2018 / 2019 学年 第 1学期 课程名称 微型计算机原理与接口技术 实验名称 实验1汇编语言语法练习与分支循环子程序设计 实验时间 2018 年 10 月 22 日 指导单位 通信工程学院 指导教师 祁正华 学生姓名 杨单妮 班级学号 17120205 学院(系) 通信工程学院 专 业 通信工程 PAGE 5 实 验 报 告 实验名称 汇编语言语法练习与分支循环子程序设

热门推荐 第一章: 利用神经网络识别手写数字

人类视觉系统是大自然的一大奇迹。 考虑下面的手写数字序列: 大部分人能够毫不费力的识别出这些数字是 504192。这种简单性只是一个幻觉。在我们大脑各半球,有一个主要的视觉皮层,即V1,它包含14亿个神经元以及数以百亿的神经元连接。而且人类不只是有V1,还有一系列的视觉皮层——V2,V3,V4和V5,它们能够执行更加复杂的图像处理。我们可以将大脑想象成一台超级计算机

继续访问

数据结构复习提纲(必考知识点整理)_a1043362562的博客_数据

1数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。 2数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。

继续访问

MATLAB基础_dfql83704的博客

321 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以

继续访问

微机原理与接口技术-指令

上级目录 目录 指令分类 数据传送指令 通用数据传送指令 累加器专用传送指令 地址传送指令 标志传送指令 数据类型转换指令 算数运算指令 加法指令 减法指令 乘法指令 除法指令 十进制调整指令 位运算指令 逻辑运算指令 移位指令 循环移位指令 串 *** 作指令 基本串 *** 作指令 重复前缀指令 控制转移指令 无条件转移指令(长转移) 条件转移指令(短转移, -128~127的距离内) 循环控制指令 过程调用与返回指令 中断指令 处理器控制指令 标志位 *** 作指令

继续访问

8086系列(8):逻辑尺

题目 设有数组X和Y。X数组中有X1,…,X10;Y数组中有Y1,…,Y10。试编制程序计算Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7,Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10,结果存入Z数组。 思路 对于这种问题可以使用循环结构来完成,由于每次循环的 *** 作位不同,我们可以事先设立标志位存放于逻辑尺中,进入循环后取出每一个位就可以判断做哪种 *** 作了。 代码 datasg segment x dw 0,1,

继续访问

数据结构算法笔记_Alanders的博客

所有的简单排序方法(包括:直接插入、冒泡和简单选择)和堆排序的空间复杂度为O(1) 快速排序为O(logn),为栈所需的辅助空间 归并排序所需辅助空间最多,其空间复杂度为O(n) 链式基数排序需附设队列首尾指针,则空间复杂度为O(rd) 排

继续访问

[学习笔记] python深度学习---第四章 机器学习基础_Cr_南猫的博客-CS

一、机器学习的四个分支 1 监督学习 这属于目前最常见的机器学习类型。给定一组样本,它可以学会将输入数据映射到已知目标(也叫标注annotation)。近年来广受关注的深度学习应用几乎都属于监督学习,比如光学字符识别、语音识别、图像识别和

继续访问

逻辑尺的使用

今天看汇编程序,看到一道题,X1-Y1,X2-Y2,X3+Y3X8-Y8,X9+Y9,X10-Y10,加法,减法毫无规律可循,最后书本介绍了“逻辑尺”的方法:设置一个设置了一个字型的变量,然后使用逻辑右移,读取CF中的1/0,从而确定知道该次运算的预算法则。闲来无聊,便用JAVA模拟了一下逻辑尺的使用package logicRule;/ 逻辑尺的模拟使用

继续访问

汇编语言实现四则运算

32 位模式下,MUL(无符号数乘法)指令有三种类型: 第一种执行 8 位 *** 作数与 AL 寄存器的乘法; 第二种执行 16 位 *** 作数与 AX 寄存器的乘法; 第三种执行 32 位 *** 作数与 EAX 寄存器的乘法。 例如,当 AX 乘以一个 16 位 *** 作数时,乘积存放在 DX 和 AX 寄存器对中。其中,乘积的高 16 位存放在 DX,低 16 位存放在 AX 32 位模式下,DIV(无符号除法)指令执行 8 位、16 位和 32 位无符号数除法。其中,单寄存器或内存 *** 作数是除数。格式如下:

继续访问

慕课袁春风老师《计算机系统基础》一二三部分练习题_GloomyHarbor的博客

解析: D、现代计算机的主存储器由半导体存储器构成,其中存放信息的地方称为存储阵列;每个存储阵列包含若干个存储单元,每个存储单元由若干个记忆单元(cell)构成,每个记忆单元存放一位信息(0或1)。 某一台计算机的主存储器编址方式,总是

继续访问

python中的小知识点_代码小学渣的博客

input()split()用法:接收多个输入。返回的数据类型是str year,month,day=map(int,input()split('/'))#2018/2/1#如果是整数就需要转化为int才能正常使用。 map()用法:map(function, iterable, …),python3 返回迭代器,要加li

继续访问

汇编语言程序设计 实验6 分支程序设计

本文章为个人博客的备份版本、作者:小游、作者博客:点击访问 实验目的:掌握分支程序的基本编程方法。熟悉数制转换。用LOOP指令、条件转移指令和向量地址法实现程序转移。 1编写程序,如果输人的是大写字母,则输出对应的小写字母;如果输入的是小写字母则输出对应的大写字母;如果输人的是数字,原样输出;按回车结束。 code segment assume cs:code ; 代码部分 start: inchr: ; 这里我们读取键盘的输入 mov ah,1 ;输入字符 int 21

继续访问

汇编语言及应用——分支结构程序设计

一、实验目的 掌握条件转移指令的使用方法及指令对标志寄存器中各标志位的影响;掌握标志位和转移指令之间的关系;会用条件转移指令和无条件转移指令设计多分支结构程序;掌握设置断点调试程序的方法。 二、示 例 内存自BUF单元开始的缓冲区连续存放着10个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人并把90-100分人数结果存放在P1单元中、60-89分人数结果存放在P2单元中,60分以下人数结果存放在P3单元中(P1、P2、P3为数据段的单元),最后把P1、P2、P3中的数以”P

继续访问

汇编语言编一程序段,求双字(DX,AX)的绝对值

a100 mov ax,ffff;把双字长数的低字放到AX中 mov dx,ffff;把双字长数的高字放到DX中 test dx,8000;测试双字长数的符号 jz 0113;如果是非负数,则直接保存 neg dx;如果是负数,则求补 neg ax;求补 sbb dx,0 int 3 g=073f:0100 0113 运行附图如下:

继续访问

汇编语言的程序设计方法(循环结构和分支结构)

汇编语言中常见的形式有:顺序程序设计,分支程序设计,循环程序设计以及子程序设计 1今天通过实例来详细说明分支程序设计,和循环程序设计 分支程序设计实例 给定一下符号函数: 给定X值,假设为-25,且存放于X单元,函数值Y存放于Y于单元,根据给定的X值确定Y得值 程序如下 DATAX SEGMENT x DB-25 y DB DATAX ENDS CODEX SEG

继续访问

第五章 57汇编程序设计举例

57汇编程序设计举例 汇编源程序的设计步骤: ①分析问题,建立数学模型 ②确定最佳算法 ③合理分配存储单元和寄存器 ④绘制流程图 ⑤编写程序 ⑥调试程序 571程序基本结构 程序设计的三种基本结构:顺序结构、选择结构、循环结构 顺序结构:顺序结构程序中,完全按照指令先后顺序逐条执行。 选择结构 选择结构又称分支结构,有以下两种形式: ①它们共同的特点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。 ②程序的分支一般用

继续访问

微机原理复习整理

第一章 微型计算机系统概述 1 微型计算机系统组成 微处理器:运算器、控制器、寄存器 微型计算机:输入输出接口、总线、内存 微型计算机系统:由硬件和软件共同组成的完整的计算机系统 2 系统总线 地址总线AB 输出将要访问的内存单元或I/O端口的地址 地址线的多少决定了系统直接寻址存储器的范围 数据总线DB CPU读 *** 作时,外部数据通过数据总线送往CPU CPU写 ***

继续访问

树状数组

树状数组 学之前感觉这是个非常非常难的数据结构,学完才发现也没有想象中那么难,但是题可以出的非常难。 这里就有一些同学坚持认为树状数组没有用,其实树状数组虽然功能少一点,却也是很有优势的。1常数小;2代码短;3内存小; 翻了翻学习资料的文件夹,发现关于这两个数据结构的课件还是比较多的,难度分布也非常的广泛 前两天强行抓着wzx讲这个,感觉在讲的过程中自己也更明白

继续访问

ARM异常、中断以及他们的向量表分析

作者:wogoyixikexie@gliet 以前,我一直很疑惑这个“ARM异常、中断以及他们的向量表”是怎么回事,他们到底是怎么实现的,没有想到今天偶然看到(ARM System Developers Guide: Designing and Optimizing System Software的ARM异常、中断以及他们的向量表的章节,豁然开朗。——ARM嵌入式系统开发:软件设计与优

继续访问

Java基础之数组与集合

Java基础之数组与集合一、数组 一、数组   数组保存的是一组有顺序的、具有相同类型的数据。在一个数组中,所有数据元素的数据类型都是相同的。可以通过数组下标(索引)来访问数组,数据元素根据下标的顺序,在内存中按顺序存放。本节的主要内容是介绍数组的基础知识。   数组的定义: 数据类型 数组名 [] = new 数据类型[数组长度];   要想知道数组的大小可以使用数组的 length 属性 语法:数组名length   初始化: int arr [] = new int[12]; arr[0] =

继续访问

汇编程序求一个双字节数AX:BX的绝对值,放入CX:DX中。

汇编程序求一个双字节数AX:BX的绝对值,放入CX:DX中,高位放入CX CODE SEGMENT ASSUME CS:CODE START: MOV CX,AX MOV DX,BX TEST CX,8000H ;将CX与8000H与 *** 作 看是否最高位为1 JZ EXIT ;若结果为0 则为整数 结束dos NOT DX NOT CX ADD DX,1 ;将BX取反+1 即求补 ADC CX,0 ;目的是将CF进位加进去 因为为双字 末

继续访问

汇编实验二 分支与循环程序设计

实验二 分支与循环程序设计 一、实验目的 1、掌握程序设计中的3种基本结构(顺序结构、选择程序、循环程序)。 2、熟练使用汇编语言的指令:数据传送类指令、数据运算类指令、逻辑判断类指令与转移指令、循环指令等。 3、初步了解系统功能调用的使用方法,尝试使用01H号功能调用进行字符输入的方法及使用02H号功能调用进行字符输出(显示)的方法。 二、实验环境与设备 计算机一台,并且安装Windows *** 作系统和macro assembler 50以上版本的系统软件。 三、预备知识 1、掌握汇编

继续访问

汇编语言的分支程序设计与循环程序设计

汇编语言的分支程序设计: 例题1:比较三个无符号数的大小,按照从大到小的顺序排列 关键的语句是:无符号数,因此所用语句是JAE实现跳转: 此外比较两个 *** 作数所用的是CMP,交换两个 *** 作数的是XCHG 书上的代码: 代码1:这样写法比较占用寄存器,但是寄存器之间交换数值比较快 ;程序名称:实现三个无符号数的由小到大的排序 DATAS SEGMENT BUFFER DB

继续访问

Part2程设分支程序设计+循环程序设计

一、分支程序设计 if语句的易错点、switch的易错点。 二、循环程序设计 for循环、while、do-while常见的错误。

继续访问

最新发布 win32汇编·指令

win32汇编·指令常用伪指令数字常量字符串常量预留空间复制重复符号定义伪指令等号伪指令 *** 作符伪指令算术运算符逻辑 *** 作符关系 *** 作符框架定义样例函数声明语句include 语句程序结束跨行语句数据存放invoke伪指令MessageBox输入输出有关的API函数printfscanf分支与循环单分支结构无符号类比IF_THEN_ELSE结构升序数组查找一个数(折半查找)SWITCH_CASE结构分支程序 [名字] 助记符 < *** 作数> [;注释] 常用伪指令 类型 助记符 简写 字节数 数字

继续访问

使用分支向量

Code Segment

Assume CS:Code

Mov_Data_Block Proc far

; 这是一个段间调用子程序

; 功能:将源数据块复制到目的数据块

; 入口参数:SI=源数据块偏移地址,DI=目的数据块偏移地址,CX=数据块字节数

pushf ;入栈保存标志寄存器

push es ;入栈保存附加段段址

push si ;入栈保存源变址寄存器

push di ;入栈保存目的变址寄存器

push cx ;入栈保存计数寄存器

push ds

pop es ;假定源数据块与目的数据块在同一个段

cmp si,di ;源数据块偏移地址=目的数据块偏移地址?

jz @@Return ;相等,不复制,返回调用程序

cmp si,di ;源数据块偏移地址<目的数据块偏移地址?

jb @@Dec_Copy ;降序复制

cld ;变址寄存器递减

rep movsb ;升序复制

jmp @@Return

@@Dec_Copy: std ;变址寄存器递增

add si,cx

dec si

add di,cx

dec di

rep movsb ;降序复制

@@Return: pop cx

pop di

pop si

pop es

popf

ret

Mov_Data_Block EndP

Code Ends

END Mov_Data_Block ;编译到此结束

结构化程序设计方法是按照模块划分原则以提高程序可读性和易维护性、可调性和可扩充性为目标的一种程序设计方法。在结构化的程序设计中,只允许三种基本的程序结构形式,它们是顺序结构、分支结构、(包括多分支结构) 和循环结构,这三种基本结构的共同特点是只允许有一个流动入口和一个出口,仅有这三种基本结构组成的程序称为结构化程序。结构化程序设计适用于程序规模较大的情况,对于规模较小程序也可采用非结构化程序设计方法。

它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。

基本要点

1采用自顶向下,逐步求精的程序设计方法

在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。

2使用三种基本控制结构构造程序

任何程序都可由顺序、选择、重复三种基本控制结构构造。

(1)用顺序方式对过程分解,确定各部分的执行顺序。

(2)用选择方式对过程分解,确定某个部分的执行条件。

(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。

(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。

3主程序员组的组织形式

结构化程序设计方法

指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。

;A题:

;判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。

data segment

DB 0

data ends

code segment

assume cs:code,ds:data

main proc far

push ds

sub ax,ax

push ax

mov ax,data

mov ds,ax

next:

mov ah,07

int 21h

cmp al,0dh

jE end_d

cmp al,'0'

JGE DY0 ;>=0

JMP NEXT ;<'0'30H

DY0:

CMP AL,'9'

JLE IS_09

CMP AL, 'A'

JGE DY_A ;DAYU A

JMP NEXT ;<'A'41H

DY_A:

CMP AL,'Z'

JLE IS_AZ

CMP AL,'a'

JGE DY_xA ;DAYU xA

JMP NEXT ;<'a'61H

DY_xA:

CMP AL,'z'

JLE IS_AZ

JMP NEXT

;

IS_AZ:

MOV AH,02

MOV DL,'c'

INT 21H

JMP NEXT

IS_09:

MOV AH,2

MOV DL,AL

INT 21H

JMP NEXT

end_d:

ret

main endp

code ends

end main

;=============================================================

;B题:

data_C segment

DATA DB -1 , 4, 9 ;该处3数值可任意设定

A1 DB 0

A2 DB 0

A3 DB 0

DISP_MESS DB 0DH,0AH,'MIN IS : '

D1 DB 0

D2 DB 0, 'H$'

data_C ends

code segment

assume cs:code,ds:data_C

main proc far

push ds

sub ax,ax

push ax

mov ax,data_C

mov ds,ax

MOV BX, OFFSET DATA

MOV AL,[BX]

INC BX

MOV AH,[BX]

CMP AL,AH

JL ALAL1 ;AL<AH

XCHG AH,AL

ALAL1:

INC BX

MOV DL,[BX]

CMP AL ,DL

JL ALAL

XCHG AL,DL

ALAL:

CMP AH,DL

JL AL_SMALL

XCHG AH,DL

AL_SMALL:

MOV A1,DL

MOV A2,AH

MOV A3, AL

XOR DL,AL ;最大和最小数异或

AND DL,80H

NOT DL

TEST DL,80H ;高位为1 表示一正一负,否则为全负或全正

JE YZYF

AND AL,80H

NOT AL

TEST AL,80H ;高位为1 表示全负

JE QF

MOV AH,02

MOV DL,'+'

INT 21H

JMP DISP_SMALL

QF:

MOV AH,02

MOV DL,'-'

INT 21H

JMP DISP_SMALL

YZYF:

MOV AH,02

MOV DL,''

INT 21H

DISP_SMALL: ;显示最小值

MOV AL,A3

MOV AH,AL

AND AX,0F00FH

MOV CL,4

SHR AH,CL

CMP AH,0AH

JGE IS_AZ

ADD AH,30H

MOV D1,AH

JMP NN_1

IS_AZ:

ADD AH,40H -0AH+1

MOV D1,AH

NN_1:

CMP AL,0AH

JGE IS_AZ1

ADD AL,30H

MOV D2,AL

JMP NN_2

IS_AZ1:

ADD AL,40H -0AH+1

MOV D2,AL

NN_2:

MOV AH,09

MOV DX,OFFSET DISP_MESS

INT 21H

ret

main endp

code ends

end main

以上就是关于使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序结构和流程分别是什么全部的内容,包括:使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序结构和流程分别是什么、关于《微机原理》的一些问题、C语言分支程序设计。。。急!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9443047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存