预备知识
冯·诺依曼计算机
冯·诺依曼原理:“计算机的基本工作原理是存储程序和程序控制。”
冯·诺依曼计算机:计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成。运算器和控制器合称中央处理器(CPU)。各部分之间由系统总线相连。
冯·诺依曼计算机的基本特点:
1)采用存储程序方式,即程序和数据放在同一个存储器中,程序指令和数据都用二进制表示,两者都可以送到CPU执行和运算。
2)存储器是按地址访问的,每个存储器单元的位数是固定的。存储单元采用线性编制方式,按顺序取出指令。
3)指令由操作码和地址码构成。根据指令含义发出控制信号控制计算机的操作。
CPU
机器字长是指该计算机能进行多少位二进制数的并行运算,实际上是指该计算机中的运算器有多少位,通常计算机的数据总线和寄存器的位数与机器字长一致。
运算器是对信息或数据进行处理和运算的部件,可以实现各种算术运算和逻辑运算。
控制器主要用来实现计算机本身运行过程的自动化,即实现程序的自动执行,是计算机的管理机构和指挥中心。
寄存器中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据等。
每一个CPU芯片都有许多管脚,这些管脚和总线相连。一个CPU可以引出三种总线的宽度标志了这个CPU的不同方面的性能:
地址总线的宽度决定了CPU的寻址能力;
数据总线的宽度决定了CPU与其它器件进行数据传送时的一次数据传送量;
控制总线宽度决定了CPU对系统中其它器件的控制能力。
存储器
CPU 是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个CPU 工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是平时所说的内存。
在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。
磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。
若将一个字存入存储器,需要遵循“小端方式”的规则,即:
1)一个字占据两个相邻的存储单元。0x1234如何存
2)低位字节存入低位地址,高位字节存入高位地址。
3)字的地址由其低地址来表示。
举例说明:
汇编语言(Assembly Language,第二代程序设计语言)
定义:汇编语言是汇编指令的集合,汇编指令是机器指令的符号化(用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址),还包括伪指令和宏指令。
机器语言(Machine Language,第一代程序设计语言):机器语言是由二进制0、1代码构成指令,不同的CPU 具有不同的指令系统。机器语言程序难写、难读、难修改、难维护,编程效率极低。
几点说明:
(1)汇编语言指令是机器指令的一种符号表示,所以,汇编语言亦称为符号语言。
(2)汇编语言是面向机器的,与机器指令存在着直接的对应关系,不同类型的CPU有不同的机器指令系统,也就有不同的汇编语言。
(3)汇编语言处于整个计算机语言层次结构的底层,故被视为一种低级语言。
(4)汇编语言同样存在着难学难用、容易出错、维护困难等缺点。
汇编语言基本概念与术语
汇编语言涉及的基本概念有:
- 数的表示
- 寄存器
- 存储单元
- 指令格式
- 语法规则
➢ 寻址方式;➢ 指令系统; ➢ 程序组织
要想学习掌握汇编语言程序设计,就要先学习、掌握这些基础知识。
几个术语
汇编:把汇编语言翻译成机器语言的过程。
汇编程序:用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。
反汇编:把机器语言(目标代码)转为汇编语言的过程。
数与编码
主要内容:各种进位计数制及其转换,二进制编码及运算。在计算机中,数通常用二进制数、八进制数、十六进制和十进制来表示。汇编语言程序经常用到的是十六进制和二进制数。
(1)二进制算术运算(加、减、乘、除)
(2)二进制的逻辑运算(逻辑与、或、异或、非)
(3)十六进制运算:在汇编语言中,只要求掌握十六进制的加、减、乘运算。
(4)ASCII码(American Standard Code for Information Interchange):计算机中,将数字、字母和标点符号以及控制信息等进行统一编码,最常用的就是美国信息交换标准码ASCII码。
寄存器
8086/8088CPU的寄存器组
8086/8088CPU的寄存器共有14个,都是16位的寄存器,根据用途分为数据寄存器(AX、BX、CX、DX)、段寄存器(CS、DS、ES、SS)、地址寄存器(SI、DI、BP、SP)和控制寄存器(IP、FR)4种类型。
1. 数据寄存器
数据寄存器包括AX、BX、CX、DX四个通用寄存器,用于存放计算过程中所用的操作数、结果等信息,即是存放数据的寄存器。
➢ AX:通用寄存器,主要作为累加器用,是算术运算的主要寄存器。
➢ BX:通用寄存器,还用作基址寄存器。
➢ CX:通用寄存器,还用作计算器。
➢ DX:通用寄存器,还在做双精度数运算时用来与AX一起存放一个32位双字操作数,DX存放高字(高16位),AX存放低字(低16位)。
8086上一代CPU中的寄存器都是8位的;为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。分别为AH、AL、BH、BL、CH、CL、DH、DL,H表示高字节寄存器(高8位),L表示低字节寄存器(低8位)。见图1。