汇编之路-1

一、个人的学习路线介绍

    作为一名java开发方向的大四学生,在找工作之际突然想任性的玩一把汇编,是的,java基础不行,面试也受到了一些挫折,按理说这个时候是应该补基础的时候,可是为什么会突然想去学习汇编呢?(以下是个人观点)因为,我个人觉得我在学习java的过程中,其实还是存在一知半解的过程,尤其是接触到底层的时候,比如说new A()这一个操作,是,从java的角度它是在堆区开辟了一段内存空间,可是我也只能理解到这里了,我的想法是往更深的方向研究,到最后,利用计算机底层的知识,汇编,c,以及一些操作系统的知识,反过来为java服务,为java精通做好知识储备,当然,这个只是我自己的一个尝试,大神们看到之后如果有什么经验或者意见的话也可以一起交流交流,欢迎指出问题,我会虚心接受

二、进入正题

  说了那么一段废话,现在我们进入正题

  1、机器语言

   首先,我们来聊聊机器语言,机器语言,就是我们所知道的0101010101,也就是由0和1组成的语言(有点像废话),计算机通过高低电平来表示机器语言的0和1,,早期的程序猿在进行程序的设计时是使用机器语言(我的天,每天就对着0和1),他们在设计时就把0和1记录在打孔卡片上(1打孔,0不打孔),然后再输入计算器中,因此,要书写或者阅读机器码是一件令人晕眩的事情,想想以前的程序猿也是挺难的啊

 2、汇编的产生

  那么,为了解决以上的问题,就必须有一个更适合我们现代程序猿操作的语言,汇编语言也就应运而生了;汇编的主体是汇编指令,汇编指令与机器指令的唯一不同就是指令的表示方式上,汇编指令更趋向人类语言,便于记忆,而机器指令就是一堆01

  比如一个操作:寄存器BX的内容送到AX,机器指令是1000100111011000 汇编指令是mov ax,bx

 上面也说到汇编指令与机器指令唯一不同就是表示方式上的不同,那么汇编指令要怎么才能被执行呢?计算机在执行程序的过程中只认得机器语言,也就是说汇编指令到最后也是被转化成机器语言,而这个转化的工具就是编译器

  3、汇编的类型

     汇编指令:机器码的助记码,就是说有对应的机器码的指令

     伪指令:没有对应机器码,编译器执行,计算机不执行

    其他符号:+、-、*、/、由编译器识别,没有对应的机器码

 4、存储器

   众所周知,cpu是计算机的大脑,它控制计算机的运作以及运算,但是如果要让大脑运转起来,那你就得起码提供血液,存储器就是这一提供“血液”的载体,cpu工作的过程中所需要的指令和数据都是从存储器获得;cpu没了内存,啥也做不了,因此,了解cpu如何与内存打交道,对于我们深入汇编学习是很有必要滴

5、指令和数据

  指令和数据,其实他们的形式都是二进制数据,本质没有区别,只不过,在使用的过程中体现了不同的用途,有的二进制数被作为指令,有的二进制数被作为数据

6、存储单元

 计算机的存储单位是从0开始编号的,比如0~127这个存储体,那么一个存储单元可以存多少内容的信息呢?8位,也就是说8个bit组成了一个Byte,而刚刚所举例的存储体容量就是128Byte,接下来有如下换算:1KB = 1024B 1M = 1024 KB,以此类推


今晚先到这里,明天继续




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值