文档介绍:第六章程序设计基础
计算机进行动作是按照人们设计好的程序
来完成的,程序是指计算机执行特定任务的指
令序列,它是用计算机语言编写的。用来设计
计算机程序的语言叫程序设计语言,它是计算
机程序员与计算机交流的工具。
主要内容:
1、程序设计语言
2、计算机的解题过程
3、流程图设计
程序设计语言
一、分类及其特点
机器语言
汇编语言
高级语言
编译型高级语言
解释型高级语言
1、机器语言
(000AH) R2
0111 001 000001010
R2R1
1100 000 000010010
(000BH)R2
0111 001 000001011
R1+R2R2
0001 000 000100001
R2000CH
0110 001 000001100
R200FFH
1110 001 011111111
停机
1111 000 000000000
例:求解3+5=8的程序
LDA 000AH
MOV R1, R2
LDA 000BH
ADD R2, R1
STA 000CH
OUT 00FFH
HALT
2、汇编语言
格式:
标号:操作码地址码(操作数)
优缺点:
汇编指令与机器指令一一对应,可
充分计算机硬件的功能。
可移植性差,不同的机器,代码不
同,编程人员必须熟悉该类型号的
计算机的硬件内部结构的知识。
Intel X86微处理器的汇编语言和Alpha AXP
微处理器的汇编语言完全不同。以下Alpha
AXP汇编代码演示了程序可以执行的操作类型:
Ldr r16, (r15) ; 第一行
Ldr r17, 4(r15) ; 第二行
Beq r16,r17,100; 第三行
Str r17, (r15); 第四行
100: ; 第五行
if (x != y)
x = y;
第一条语句(第一行)将寄存器15指定的地址中的内容加载到寄存器16中。第二条指令将紧接着的内存中的内容加载到寄存器17中。第三行比较寄存器16和寄存器17,如果相等,分支到标号100,否则,继续执行第四行,将寄存器17的内容存到内存中。如果内存中的数据相同,就不必存储数据。编写汇编级的程序需要技巧而且十分冗长,容易出错。Linux系统的核心很少的一部分是用汇编语言编写,而这些部分之所以使用汇编语言只是为了提高效率,并且和具体的微处理器相关。
汇编语
言程序
机器码的
目标程序
可执行
程序
编译
连接
MOV
ADD
…
JUMP
0101
1111
…
0010
0101
1111
0010
汇编程序的处理过程:
使用汇编语言编写大型程序十分困难,消耗时间,容易出错而且生成的程序不能移植,只能束缚在特定的处理器家族。更好的选择是使用和机器无关的高级语言,例如C。C允许你用逻辑算法描述程序和要处理的数据。piler)的特殊程序读入C程序,并将它转换为汇编语言,进而产生机器相关的代码。好的编译器生成的汇编指令可以和好的汇编程序员编写的程序效率接近。
3、高级语言
main
{
int a=3,b=5;
s=a+b;
printf(“s=“,s);
}
Data 3,5
Read a,b
Let s=a+b
Print s
End