跳至内容
咸鱼笔记
用户工具
注册
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您在这里:
start
»
assembly
»
1.汇编语言
assembly:base
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 1.汇编语言 ====== ===== -#1 基础知识 ===== ==== - 机器语言 ==== 机器语言是<wrap em>机器指令</wrap>的<wrap hi>集合</wrap>。 <wrap em>机器指令</wrap>是<wrap hi>一列二进制数字(0和1)</wrap>,计算机将之转换为<wrap hi>一列高低电平</wrap>,驱动电子原件进行运算。 应用8086CPU完成运算s=768+12288-1280,机器码如下: <code> 10111000000000000000011 00000101000000000110000 00101101000000000000101 </code> 以上阅读、查错都不是简单的工作。 ===== -#2 汇编语言的产生 ===== 原因:机器语言带来的读写麻烦 <wrap em>汇编语言主体</wrap>是汇编指令,<wrap em>汇编指令</wrap>和<wrap em>机器指令</wrap>差别在于<wrap hi>表示方法</wrap>上。 机器指令:1000100111011000 表示把<wrap em>寄存器</wrap>BX的内容送到AX中。 汇编指令:mov ax,bx ==== - 编译器 ==== 因为机器语言才是计算读懂的语言,所以需要一个工具把汇编指令转换为机器指令。 {{ :assembly:编译器.jpg?nolink&600 |}} ===== -#3 汇编语言的组成 ===== ==== - 汇编指令 ==== 机器码的<wrap em>助记符</wrap>,有对应的机器码。 ==== - 伪指令 ==== 给编译器看的指令,例如段代码的开始位置和结束位置等 ==== - 其他符号 ==== 如+、-、*、/等,由编译器识别,没有对应的机器码。 ===== -#4 存储器 ===== 想要CPU工作就必须提供<wrap em>数据</wrap>和<wrap em>指令</wrap>。而数据和指令就放在存储器中,也就是内存。 <wrap hi>数据和指令必须进去内存才可以</wrap> 需要了解cpu如何从内存读取数据、向内存写入数据 ===== -#5 指令和数据 ===== <wrap em>指令</wrap>和<wrap em>数据</wrap>没有任何区别,都是二进制信息 1000100111011000 可以当作数据89D8H的<wrap hi>数据</wrap>来处理<wrap lo> H标识16位</wrap>(数据) 也可以当作<wrap hi>指令</wrap>mov ax,bx来执行(程序) ===== -#6 存储单元 ===== <wrap em>存储器</wrap>被划分为若干个<wrap em>存储单元</wrap>,每个存储单元从0开始顺序编号。 例如一个存储器有128个存储单元,编号从1-127 {{ :assembly:存储单元.jpg?nolink&400 |}} 计算机的最小单位:bit(比特): 1个二进制位(0或1) 存储器的最小单位:Byte(字节):8个bit组成1个Byte(00000000) <wrap hi>最小单位bit:1bit*8=1B*1024=1KB*1024=1MB*2014=1GB*1024=1TB</wrap> ===== -#7 cpu对存储器的读写 ===== <wrap hi>CPU读写的业务流程</wrap> CPU要从内存中读取信息,首先要指定村存储单元的<wrap hi>地址</wrap>。 计算机处理、传输的信息都是电信号,电信号要用导线传送,专门链接cpu和其他芯片的导线,通常称为<wrap em>总线</wrap> cpu进行数据的读写,<wrap hi>必须进行</wrap>3类信息交互: 1.存储单元的地址(地址信息) = <wrap em>地址总线</wrap> 2.器件的选择,读或写的命令(控制信息)= <wrap em>控制总线</wrap> 3.读或写的数据(数据信息)= <wrap em>数据总线</wrap> {{ :assembly:cpu从3号单元读取数据.jpg?nolink&600 |}} 以上cpu是如何进行数据读写的,但是<wrap em>如何命令计算机进行数据的读写呢</wrap> ===== -#7 计算机对数据的读写 ===== <wrap hi>使用机器码控制cpu从哪里获取数据,进行怎样的操作</wrap> 要让计算机或微处理器工作,应向它输入驱动它工作的电平信息(<wrap em> 机器码</wrap>) <wrap em>机器码</wrap>:101000010000001100000000 含义:从3号单元读取数据送入寄存器AX 汇编指令:''MOV AX,[3]'' 含义:传送3号单元的内容入AX ===== -#8 地址总线 ===== CPU是通过<wrap em>地址总线</wrap>来指定<wrap hi>存储器单元</wrap>的。地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。 计算机系统中,1根导线可以传输的状态只有2中状态,高电平或者低电平,二进制表是就是1或者0 假设cpu有10根地址总线,可以传送10位二进制数据(0000000000-1111111111之间的数),可以查找2的10次方(1024)个<wrap hi>存储单元</wrap>。 {{ :assembly:地址总线上发送的地址信息.jpg?nolink&600 |}} ^ N根地址线 | 地址总线的宽度 ^ 可查存储单元 | 寻址能力KB | | 10 | 10 | 1024 | 1KB | | 13 | 13 | 8192 | 64KB | 1个存储单元=1字节(B) ===== -#9 数据总线 ===== CPU和内存或其他器件之间的数据传送是通过<wrap em>数据总线</wrap>来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。 8根数据总线:一次可以传送一个字节(00000000) {{ :assembly:8位数据总线上传送信息.jpg?nolink&600 |}} 16根数据总线:一次可以传送2个字节(0000000000000000) {{ :assembly:16位数据总线上传送信息.jpg?nolink&600 |}} ===== -#10 控制总线 ===== CPU对外部器件的控制是通过<wrap em>控制总线</wrap>来进行的。控制总线分很多 读信号输出:由cpu向外传送读信号 写信号输出:传送写信号 ===== -#11 内存地址空间 ===== 一个CPU有10根地址总线,则可以寻址1024个内存单元,这1024个内存单元就构成这个CPU内存地址空间。 ===== - 主板 ===== 主板上的核心器件和一些主要器件通过<wrap em>总线</wrap>相连接。 扩展插槽上有RAM内存条和各类接口卡 ===== - 接口卡 ===== cpu通过接口卡控制显示器等设备 ===== - 各类存储器芯片 ===== ==== - 随机存储器 ==== ==== - ROM ==== ==== - RAM ==== ===== -#1 内存地址空间 ===== 通过总线链接起来的各种设备都被当做一个由若干存储单元组成的逻辑存储器就是<wrap em>内存地址空间</wrap>。 {{ :assembly:将各类存储器看做一个逻辑存储器.jpg?nolink&600 |}} 所有的物理存储器被看作一个由若干个存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个<wrap em>地址段,即一段地址空间</wrap>。cpu就是在相对应的物理存储器中读写数据。 内存空间大小受<wrap em>CPU地址总线宽度</wrap>的限制。空间大小的计算方式与地址总线一样
assembly/base.txt
· 最后更改: 2024/03/02 13:27 由
sabertoy
页面工具
显示页面
过去修订
反向链接
回到顶部