
图灵那时候早挂了。
1968年,在如何看待GOTO语句的问题上产生了激烈的争论,然后在1966 年,Bohm 与 Jacopini 证明了任何单入口单出口的没有“死循环”的程序都能由三 种最基本的控制结构构造出来。
这三种基本控制结构就是“顺序结构”、"IF—THEN—ELSE选择结构”、“DO_wHILE重复结构”或“DO UNTIL重复结构”。
也就是我们常说的“顺序、选择、循环”语句,嵌套来嵌套去就成了完整的程序代码,和Pascal之父(Nicklaus Wirth)的“算法+数据结构=程序” 原理差不多的。
;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
就像在计算机当中的CPU,管的是执行和运算,相当于电脑的大脑。
在你这段程序当中,管理执行或者是编译的程序代码块都属于这个程序结构的核心,并不是分支。
执行部分就相当于你整个程序的大脑。
一个最大的特点就是:如果你的条件判断非常多,你用ifelseifelse这样的判断,代码将变得很难阅读。而如果使用switch,则变得简单易懂。如果只有很少的几个条件判断,则没什么区别了(当然其语法上是有些区别的)
以上就是关于为什么所有的程序都可以由顺序分支循环这三种控制结构全部的内容,包括:为什么所有的程序都可以由顺序分支循环这三种控制结构、汇编语言。循环与分支程序设计。高手们进来帮下忙吧~ 谢啦~、具有如果执行代码块的程序结构是什么分支结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)