开贴学习汇编 基础知识

在百度贴吧汇编吧今天先发的贴


从王爽《汇编语言》开始

操作系统WIN7+gentoo
使用工具masm32
指导参照置顶贴 http://tieba.baidu.com/p/1478869188  
工具masm32官网  http://www.masm32.com/index.htm
汇编语言答案新浪爱问0积分下载  http://ishare.iask.sina.com.cn/f/4844715.html
安装步骤略去

配置MASM32的环境变量 

我的电脑>高级系统设置>环境变量>系统变量里的Path 
先什么都不要动,记住只在最后加入;D:\masm32\bin 注意“;” 
题外话,吧主怎么没了? 


学习的书是王爽的《汇编语言》,汇编初学,另外不太会记笔记,有些地方照搬过来了。。。。。。。


前言

每种微处理器的设计和架构是不同的,所以需要不同的电平脉冲来控制

课上听单片机老师说电脑的高电平是-12V左右,低电平是+12V左右,不太了解是否符合现代的电脑配置



最早的计算机语言是机器语言0和1组成,由于0和1组成的机器语言过于晦涩难懂,难于辨别和记忆,给产业的发展带来了障碍
所以后来有了汇编语言和后来的高级语言JAVA,C++之类

汇编语言发展到现在有3类指令组成
1、汇编指令,机器码的助记符,有对应的机器码
2、伪指令,没有对应的机器码,由编译器执行,计算机并不执行
3、其他符号,如+、-、*、/等,有编译器识别,没有对应机器码

汇编语言的核心是汇编指令,它决定了汇编语言的特性

CPU相当于计算机的大脑,但想要CPU工作就必须向它传输指令和数据。
指令和数据在存储器中存放(比如内存,硬盘)
PC机子内存的作用仅次于CPU,离开内存,CPU将无法工作
硬盘上的数据必须读到内存中,才能被大脑CPU使用 
要灵活的利用汇编语言编程,我们首先要了解CPU是如何从内存中读取信息,以及向内存中写入信息


存储

在内存和硬盘上指令和数据没有任何区别,都是二进制信息,CPU工作时把有的信息看作指令,有的信息看作数据,为同样的信息0和1赋予了不同的意义。

//王爽老师里面那个对这个的评论很形象,就像围棋的棋子,在棋盘里的时候没有任何区别,在对弈的时候就有了不同的意义。


存储器被划分成若个存储单元,存储单元的编号从0开始,例如一个存储器有128个存储单元,编号0-127

计算机的最小的存储单元是bit(比特),一个二进制位,它可以容纳两个值(0或1)之一(或者可以称该位被置为“关”或“开”),不能在一个位中存储更多的信息,但是计算机中包含数量极其众多的位。位是计算机存储的基本单位。

字节(byte)是常用的计算机存储单位,1个字节均为8位,这是字节的标准定义,由于每个位或者是0或者是1,所以一个8位的字节包含256(2的8次方)种可能的0、1组合。这些组合可用于表示0到255的整数或者一组字符

对于一种给定的计算机设计,字(word)是自然的存储单位。对于计算机,比如32位的Windows系统,一个字正好有32位,对于64位Windows系统或者AMD64位的linux,一个字正好有64位
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB

总线

存储器被划分成很多个存储单元,存储单元从0开始的顺序编号,这些编号可以看作一个地址,CPU传递指令到存储器,就像一个邮局把一封信送指定人的家里(硬盘上存储上的位置),地址是存储单元的地址,门牌号从0开始,送信的怎么通过导线传输的呢?

通过电信号,计算机中有专门有接CPU和其他芯片的导线,这个叫做总线,我在学的单片机里也有导线,只不过老师好像也不知道总线是什么

总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上分为3类,地址总线,控制总线和数据总线。

1、CPU通过地址线将地址信息发出。
2、CPU通过控制线线发出内存读命令,选中硬盘上一个位置,通知它,将要从中读取数据。
3、CPU通过数据线把一个内存上一个单元的数据通过数据线送入CPU。
(1)、CPU通过地址线将一个硬盘上的地址A的信息发出
(2)、CPU通过控制线发出内存写命令,选中内存上一个位置,并通知它,要向其中写入一个数据
(3)、CPU通过数据线将数据送入内存的一个存储单元。

上面说的是CPU是如何进行数据读写,可是要如何命令计算机进行数据的读写呢?
要让一个计算机个微处理器工作,应向它输入能够驱动它进行工作的电平信息(机器码)


地址总线

CPU通过地址总线来指定存储器单元,地址总线上能传送多少个不同的信息,CPU就可以对多少个存储器进行寻址。

假设CPU有10根地址总线,一根导线可以传送高低电平表示1或0,10根导线可以传送10位二进制数据,2的10次方个。最小数为0,最大数为1023。

CPU有N跟地址线,则可以说这个CPU的地址总线的宽度位N,这样CPU最多可以寻找2的N次方个内存单元。

数据总线

CPU与内存或其他器件之间的数据传送是通过数据总线来进行的,数据总线宽度决定了CPU和外界的数据传送速度。8根数据总线一次可以传送一个8位二进制数据(即一个字节)。16根数据总线一次可传送两个字节。

控制总线

CPU对外部器件的控制是通过控制总线来进行的。控制总线是一个总称,控制总线是一些不同控制线的**。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以控制总线的宽度决定了CPU对外部器件的控制能力。

前面的内存读或写命令是由几根控制线综合发出的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赫敏璋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值