学好C语言的四种程序结构 谁能解释下 下面要表达的意思 有点不懂

学好C语言的四种程序结构 谁能解释下 下面要表达的意思 有点不懂,第1张

举个例子,有a,b,c三个杯子,a杯装满糖,b杯装满盐

首先,我亮困先将a杯中的所有糖倒入c杯;

其次,再将b杯中的所有盐倒入a杯;

最后,将c杯中的所有糖倒入b杯;

是不是a杯的敬让念糖和b杯的盐做了交换,最后结果是a杯装满盐,b杯装满糖,c充当了中间交换作用。

int a=1,b=2,c

把a的值赋给c,即c=1再把b的值赋给a,即a=2最后把c的值赋给b,即b=1;即c是中间变量,a、b完成交换。完了!!!滑闹

HELLO,WORLD进阶汇编程序系列

Editor:admin Time:2004-3-21 12:49 Read:9785 Score:8 Print

Writer:LLUCT

Excerpt:80x86汇编小站

Preface:

感谢网友lluct为本站提供原创......适合初学者学习哦

Content:

TITLE ***HELLO,WORLD进阶程序之选择分支 BY LLUCT***

DATASEGMENT 定义数据段

MSG1DB '***WELCOME TO MY PROGRAM BY LLUCT***','$'

定义输出的第一个字符串信息,字符串必须用DB定义,$为结束标志磨模

MSG2DB '1:BASIC MESSAGE 2:ADVANCED MESSAGE','$'

定义输出的字符串信息:选择菜单

MSG3DB 'PLEASE CHOOSE:','$'

定义输出的字符串信息:选择前缀

MSG4DB 'HELLO,WORLD!^-^','$'

定义输出的字符串信息:分支1的信息

MSG5DB 'THIS IS MY FIRST ASM_86 PROGRAM! @^-^@','$'

定义输出的字符串信息:分支2的信息

ERRMSG DB 'CHOOSE ERROR! -_-b','$'

定义输出的字符串信息:选择错误信息

DATAENDS 数据段结尾

CODESEGMENT 定义代码段

ASSUME CS:CODE 规定CS的内容

ASSUME DS:DATA 规定DS的内容

START: MOV AX,DATA 程序从START开始

MOV DS,AX DS置初值,DATA的段地址

CALL ENTER 调用显示回车换行子程序

LEA DX,MSG1 输出第一个字符串的偏移地址

CALL DISPCHS 调用显示字符串子程序

CALLENTER 调用显示回车扮游谈换行子程序

CALLENTER 这个...同上啊^-^

LEA DX,MSG2 输出第二个字符串的偏移地址

CALL DISPCHS 调用显示字符串子程序

AGAIN: CALLENTER 定义AGAIN标号.用于选择错误循环

LEA DX,MSG3 输出第三个字符串的偏移地址

CALL DISPCHS 调用显示字符串子程序

MOV AH,01H 调用1号功能:从键盘输入一个字符并回显

INT 21H 完成输入回显

CMP AL,'1' 输入的字符和1相比较

JE BASICP 如果相等,转移到BASICP标号(JE=Jump if Equal)

CMP AL,'2' 输入的字符和2相比较 ||

JE ADVANP 如果厅碰相等,转移到ADVANP标号(JE=如果相等就转移)

JMP ERROR 否则就无条件转移到ERROR标号

EXIT: MOV AH,4CH 4C号功能调用:终止当前程序并返回调用程序

INT 21H 返回DOS

BASICP: CALLENTER 什么,还要解释啊.晕-_-!!!

LEA DX,MSG4 输出第三个字符串的偏移地址

CALL DISPCHS 调用显示字符串子程序

CALLENTER ..........

JMP EXIT 无条件转移到EXIT标号

ADVANP: CALLENTER 55555555

LEA DX,MSG5 解释了四次,应该懂了吧

CALL DISPCHS 调用显示字符串子程序

CALLENTER 再问就死给你看

JMP EXIT 无条件转移到EXIT标号

ERROR: CALLENTER

LEA DX,ERRMSG 输出选择错误信息

CALL DISPCHS 调用显示字符串子程序

MOV DL,07H 输出ASCII码的报警(响铃)控制符BEL(07H)

CALL DISPCH 调用显示单个字符子程序

CALLENTER

JMP AGAIN

DISPCH PROCNEAR

显示单个字符子程序,NEAR说明子程序和主程序在同一个代码段中(现无主程序调用)

MOV AH,02H 2号功能调用:显示器输出字符

INT 21H 完成输出显示

RET 返回

DISPCH ENDP 子程序结尾

ENTER PROCNEAR 显示回车换行子程序

MOV DL,0DH 输出ASCII码的回车控制符CR(0DH)

CALLDISPCH 调用显示单个字符子程序

MOV DL,0AH 输出ASCII码的换行控制符LF(0AH)

CALLDISPCH 调用显示单个字符子程序

RET 返回

ENTER ENDP 子程序结尾

DISPCHS PROC NEAR

显示字符串子程序,NEAR说明子程序和主程序在同一个代码段中(现无主程序调用)

MOV AH,09H 9号功能调用:显示字符串

INT 21H 完成输出显示

RET

DISPCHS ENDP

CODEENDS 代码段结尾

END START 结束汇编

把以上代码复制到记事本等文本程序中,并保存.(如helloch.asm)

编译:masm helloch.asm

连接:link helloch.obj

执行:helloch.exe

======================================================

title ***hello,world进阶之字符串输入输出 by lluct***

datasegment 定义数据段

input db 100 dup(?)

定义输入的字符串,字符串必须用db定义,长度为100个字节

msg1db 'Hello,','$'

定义输出的前缀字符串信息,字符串必须用db定义,$为结束标志(24h)

msg2db ',Welcome to here!','$'

定义输出的后缀字符串信息

headmsg db 'PLEASE INPUT YOUR NAME:','$'

开始显示的字符串信息

dataends 数据段结尾

codesegment 定义代码段

assume cs:code 规定cs的内容

assume ds:data 规定ds的内容

start: mov ax,data 程序从start开始

mov ds,ax ds置初值,data的段地址

mov si,0 变址寄存器置初值0

callenter 调用显示回车换行子程序

lea dx,headmsg 输出开始显示的字符串的偏移地址

calldispchs 调用显示字符串子程序

repeat: mov ah,01h

定义repeat标号,用于循环输入单个字符.调用1号功能:从键盘输入一个字符并回显

int 21h 完成输入回显

cmp al,0dh 输入的字符和CR(回车)比较

je exit 如果等于回车就转移到exit

mov input[si],al 把al的值传送到input的si地址中(好像是这样吧)

inc si si加1

jmp repeat 无条件转移到repeat

exit: callenter

mov input[si],24h 给输入完成的字符串加上结束标志($)

callenter

lea dx,msg1 输出前缀字符串的偏移地址

calldispchs 调用显示字符串子程序

lea dx,input 输出刚才输入的字符串

calldispchs

lea dx,msg2

calldispchs

callenter

mov ah,4ch 4c号功能调用:终止当前程序并返回调用程序

int 21h 返回dos

enter procnear 显示回车换行子程序

mov dl,0dh 输出ascii码的回车控制符cr(0dh)

calldispch

mov dl,0ah 输出ascii码的换行控制符lf(0ah)

calldispch

ret 返回

enter endp 子程序结束

dispch procnear

mov ah,02h 2号功能调用:显示器输出字符

int 21h 完成输出显示

ret 返回

dispch endp

dispchs procnear

mov ah,09h 9号功能调用:显示字符串

int 21h 完成输出显示

ret 返回

dispchs endp

codeends 代码段结尾

end start 结束汇编

把以上代码复制到记事本等文本程序中,并保存.(如heinout.c)

编译:masm heinout.asm

连接:link heinout.obj

执行:heinout.exe

答:

第一种:顺序结构

顺序结构表示程序中的各个 *** 作时按照它们在源代码中的排列顺序依次执行的,其流程如图所示。

图中的S1和誉派S2表示;两个处理步骤,这些处理步骤可以是一个非转移 *** 作或多个非转移 *** 含模作,甚至可以是空 *** 作,也可以是三种基本 *** 作中的任意一种结构,整个顺序结构只有一个入口点a和一个出口点b。这种结谈虚缓构的特点是:程序从a出开始,按顺序执行所有 *** 作,知道出口b处,所以称为顺序结构。

第二种:选择结构 选择结构表示程序处理需要根据某个特定条件选择其中一个分支执行。选择结构有单选择、双选择、多选择。其流程如图所示。

第三种:循环结构 循环结构表示程序反复执行某个或某些 *** 作,直到满足特定条件时结束,循环结构有两种基本形式:当型循环和直到型循环,其流程如图所示。


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

原文地址: http://outofmemory.cn/yw/12486623.html

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

发表评论

登录后才能评论

评论列表(0条)

保存