汇编语言学习(一)

本文介绍了计算机硬件基础知识及汇编语言的概念,详细解释了计算机如何通过0和1来表示信息,以及汇编语言如何帮助人们更高效地与计算机沟通。文中还探讨了8086 CPU的寄存器、指令集及其工作原理。
学习时间:2015年6月1日------7月14日
学习者:易天曦
学习目的:现在任何一个电子设备背后都是一个微型的计算机在控制,计算机是人类历史上最伟大的发明之一,现在,不论是政治,历史,金融,通信,所有传统的行业都在向移动互联网世界靠近,一个智能手机,一个智能平板,一个笔记本电脑便可以装下我们所需要的大部分知识。不仅是现实的需要,大量让人惊叹的电影场景,大量可爱的娃娃,所有让你惊叹的场景或者物品,都是计算机衍生的产物,学习计算机,让我尽情的遨游在想象的世界中,所以,只要你敢想,通过扎实的基础知识来创造人类世界没有的东西,来创造让人惊叹的事物,就好像Microsoft在win10中设计出来的人工智能秘书小娜,是多么的聪明可爱,不过还有许多不足,有许多问题还不能智能回答,我经常喜欢和小娜玩,也感觉到他的不足。所以,这让我非常的感兴趣,所以,我终生的梦想就是互联网,就是计算机科学与技术,把编程,硬件,软件,Web,操作系统,移动互联网,数据挖掘,人工智能逐渐掌握,并且能随心所欲的创作出让人惊叹的人工智能的机器人。是我毕生追求的梦想。因此,我在人生的道路上不断的摸索学习的路线,不断的在跟前辈进行学习。在大一的学校生活中,我学习了许多,我打算在开学之前,把所有学习的知识再巩固一便,开了学好好规划一下,继续朝着自己的梦想前进。

        软件的背后需要硬件的支持,关于硬件的学习,我们上了大二才会学习最基本的电路知识,所以,我现在不了解电路,暂且从硬件上方跨越过去,现在我只知道,在人类历史上,为了相互沟通,发明了许多语言,例如中华民族发明了汉字,外国流行的是英语,这些都是一个语言的符号,让我们从小学习形成一种共同的语言,在现实生活中,为了刻画世界,我们可以通过语言来描述一个事物,但是在数字的世界,在电路中,我们也能刻画这个世界,在电路中,我们只有0和1,怎么刻画这个世界呢?这实际上就是编码的事情了。有一本书叫《编码的奥秘》详细的介绍了编码的故事,实际上,我们的汉语,英语都是编码。例如,我们从小会被告诉红红的是苹果,外国人会说是apple,因为我们从小就被这样的教,有的人会说,那怎么用数字来表示呢?我们如果从小被教,苹果是1,我们现在一看到苹果,不就说它是1吗?在这里用到了数学的知识,就是高中的排列组合,例如有4位数字,每一位上都只能是电路上的1或者0。实际上,4位数字就有16种方法。也就是说4位电路上的开和关就能表示16种事物,如果我们规定0000是苹果,0001是香蕉,0010是桃子,那么0100,1000,0011,0101,1001,1010,0110,1100,0111,1101,1011,1110,1111就可以规定是16种水果了,如果我们从小就学习0000是苹果,0001是香蕉,0010是桃子,那么以后一看到苹果头脑里就是0000,香蕉就是0001。
        像现在的电脑,我们都知道有32位电脑或者64位电脑,如果是64位电脑,那么它叫可以表示40几亿的事物了,足够表示我们生活中常见的所有东西了,如果现实世界中所有的事物都编上数字,你眼前的世界就编程这样了。
图片
        
          计算机科学技术最强大的是美国,所以人家美国已经把英文字母编码了,就是把8位0和1了,也就是我们说的1个字节,就是8位,就是8个0和1的数字,英文字母全部规定了。
       
        在编程的历史,和机器之间的沟通经历了许多过程,最初是通过机器语言来进行沟通的,也就是通过0和1代码进行的,但是这种沟通是多么的复杂和困难,如果我想说:I love  you !  在计算机上就要输入0100010100010010101000010111110000000101010100000100101001010101001010010100001010101010101010101010101010100101010101010101010010101001100101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101000000000000000000111111010101010101001010101010101010101010101010101010101010101010101010101010101010101010101010010101010101010。 当然这一串是我瞎写的,不过我只是想说,一般人,就算是天才是不是也很难看懂啊。于是就出现了汇编语言,汇编语言是在机器语言上的低级语言,它可以直接控制硬件。
    
 第一章 硬件基础知识。
    1.汇编语言就是不同CPU的助记符,我们最常见的8086英特尔的CPU,所以我们主要学习它的汇编语言,目前学习的16位CPU。我们通过学习汇编指令来表达我们的思想,通过编写汇编指令,用编译器来编译,然后变成计算机可以运行的程序来帮助我们解决问题。
    2.汇编语言包括汇编指令,伪指令和其他符号。
    3.在计算机中,有一些存储器,存储器分为RAM和ROM。也就是随机存储器和只读存储器。
    4.在计算机中,所有信息都是以二进制的形式进行存储的,也就是我们所说的0和1。
    5.在计算机科学中,我们规定计算机的存储单位,一个存储单元可以存放8位。换算一般是1B=1bit   1KB=1024B   1M=1024KB 1G=1024M  。在存储单元上总是从0开始计数的,这与我们每次数数的时候从1开始不一样,有一本书专门解释了这个原因。
    6.CPU对存储器进行读写是通过总线来进行的,总线有数据总线,控制总线,地址总线。地址总线决定了寻址范围的大小,数据总线决定了传输的数据量,控制总线用于控制室读还是写。
    7.在整个计算机中,所有的存储空间都是被编了地址的。这些器件有CPU,存储器,外围芯片组,拓展插槽。拓展插槽上有RAM内存条和各类接口卡。接口卡上有各种借口芯片。CPU是控制芯片来间接控制外围设备工作的,例如我们常见的USB接口。
    8.在计算机中,尽管物理上各个存储器是焊接在电路板上的,但从逻辑上讲是统一的,例如,对于8086CPU,0~7FFFFH 的32KB空间为主随机存储器的地址空间。8000H~9FFFH的8KB空间为显存地址空间。地址A000H~FFFFH的24KB空间为各个ROM的地址空间。因此,如果我们想要在某个存储器中存储数据的时候,就必须知道这个单元的    地址。才能准确的输入数据。
    9.计算机中地址空间受CPU地址总线的限制,例如8086CPU的地址范围是0~FFFFH。
第二章 寄存器
    1.CPU的工作是运算器进行信息的处理,寄存器进行信息的存储,控制器控制各种器件进行工作,内部总线连接各种器件,在它们之间进行数据的传送。
    2.其中程序员只能改变寄存器,来控制CPU。在8086CPU中有14个寄存器,分别是:AX,BX,CX,DX,SS,SP,DS,CS,BP,IP,SI,DIES,PSW
    3.AX,BX,CX,DX为通用寄存器。他们都是16位的寄存器,为了兼容8位计算机。这些寄存器都可以分为AH.AL,BH,BLCH,CL,DH,DL。
    4.我们把8bit成为一个字节,在16位计算机出现之后,我们总是一次性处理2个8位。所以我们引入一个便于计算的字。那么1个字就是2个字节。1word = 2 byte。
    5.指令:MOV : MOV OPRD1,OPRD2。 其中OPRD1为目的操作数,可以是存储器,寄存器和累加器。OPRD2是源操作数,可以是寄存器,存储器,累加器和立即数。分为4中情况,1)寄存器与寄存器之间传送,2)立即数到通用寄存器,3)寄存器与存储器的传送,4)立即数到存储器的传送。指令不影响状态标志位。注意:不支持存储器到存储器的数据传送,需要用寄存器做中介。
                ADD: ADD OPRD1,OPRD2  注意:不允许两个都是存储器,指令影响状态标志位
                SUB :   SUB OPRD1,IPRD2   注意:不允许两个都是存储器,指令影响状态标志位

    6.8086CPU给出物理地址的方法是段地址+偏移地址,这样的好处是可以扩大寻址范围,也就是说虽然8086CPU是16位的CPU,但是它可以寻址2的10次方的物理地址空间。
    7.在8086CPU中,CS和IP用于指向指令所处的单元。DS用于指向数据。SS和SP用于指向栈。
   
实验1:使用DEBUG查看内存,并编写一个最简单的求2的4次方的程序。
    mov ax,2
    add ax,ax
    add ax,ax
    add ax,ax
        在DEBUG中,用r查看寄存器的内容,用d查看内存中的内容,用e改写内存中的内容,用u把机器指令翻译成汇编指令,用t执行一条机器指令,用a用汇编形式在内存中写入一条机器指令。



 


复习时间:2015年8月23日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值