前言
本系列内容基于王爽《汇编语言》第四版,本章节以计算机组成基础知识为主,熟悉的同学可以暂且跳过
目录
1.1汇编语言的产生
机器码仍然过于繁琐,汇编指令更加简洁且方便记忆,程序员写出汇编指令,再通过编译器转换为机器码,由计算机最终执行
1.2汇编语言的组成
3类指令组成:汇编指令,伪指令,其他符号,详细等后面章节解释
1.3存储器
用于存放指令和数据的地方
通过了解cpu和内存是如何完成读写关系来来了解汇编语言
1.4区分指令与数据:
1000100111011000 89D8H(数据)
1000100111011000 mov ax,bx(程序)
四位二进制相当于一位十六进制: 1000|1001|1101|1000读出89DH,,也可以读出mov ax,bx的汇编指令,是读出数据还是程序由程序员控制.
1.5存储单元
存储器(内存)被划分为一个个存储单元,例如一个存储器由128个内存单元,编号由0~127
微机存储器的容量是以“字节”为最小单位计算的,128个内存单元=128 byte
单位知识:
1 bit=1个二进制
4 bit=4个二进制=1个十六进制
1 byte(字节)=8 bit = 2个十六进制 相当于一个内存单元可以存放两个16进制数据
1 字 = 2 byte
1.6 CPU对存储器的读写
CPU要从内存中读写数据:
①指定内存单元的地址
②发控制命令
③读或写数据
思考1:CPU通过什么将地址,数据,和控制信息传送到存储器芯片当中?
通过导线,计算机中把CPU于其他芯片的导线称之为:总线
逻辑上,总线分为三类:地址总线,控制总线,数据总线
注意:我们常说的32位,64位处理器,表示的就是总线数量
思考2:我们是如何控制计算机进行数据读写
通过汇编指令,编译后转换为机器码
用上文例子:从三号单元读取数据
汇编指令:MOV AX [3] 含义:从3号单元读取数据送入寄存器AX中(现在不用明白这个是怎么转换的)
机器码:1010 0001 0000 0011 0000 0000
1.7地址总线
CPU通过地址总线来指定存储器单元
一根导线可以传送稳定状态的只有两种:高电频(发出信号“1”),低电频(发出信号“0”)【二进制的由来】
一根导线能表示2个状态,n跟导线可表示的最多数据:
注意:为什么要减一,因为没有全1这个状态
1.8数据总线
数据总线的宽度,决定了CPU和外界数据传送的速度
1 根数据总线 = 1 个位 = 1 bit
8088cpu分别传送89D8,第一次传送D8,第二次传送89
①一根数据总线 = 1 bit ,CPU有根数据总线有8根,相当于8 bit ,即2个16进制
②数据先读高位再读低位,所以先传D8,再传89
8086CPU一次传送89D8
8086CPU有16根数据总线,一次就可传送 16 bit 相当于4个16进制位
1.9控制总线
- ①通过控制总线,实现CPU对外部器件的控制
- ②控制总线的宽度,决定CPU对外部器件的控制能力