博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编语言第一章基础知识
阅读量:6676 次
发布时间:2019-06-25

本文共 1573 字,大约阅读时间需要 5 分钟。

这学期开始学习汇编语言的相关知识,众所周知,汇编语言作为直接在硬件之上工作的语言,其本身作为一种低级语言,不怎么受程序员的偏爱,但是常用于编写驱动程序、模拟器和游戏。第一章的基础知识是汇编语言编程艺术的开始。

1.三种语言

汇编语言:

组成:

(1)汇编指令(核心):机器码的助记符,有对应的机器码,决定了汇编语言的特性。

(2)伪指令:没有对应的机器码,由编译器执行,计算机不执行。

(3)其他符号:如+、-、*等,由编译器识别,没有对应的机器码。

执行:

程序员->汇编指令->编译器->机器码->计算机执行

优势:

(1):作为机器语言的符号化,其直接相关于计算机。

(2):代码段短,速度快,效率高。

缺陷:

(1):作为低级的程序语言,因为复杂不受广大程序员的喜爱,缺乏可移植性。

(2):开发效率低,对个人的汇编语言要求和计算机原理相关知识要求高。

机器语言:

简介:机器语言是机器指令的集合,也就是一系列二进制数,每一种微处理器,由于硬件设置和结构不同,机器指令也大相径庭,早期的程序员每天需要处理大量的机器纸带,0和1的复杂集合给人们带来了极大的困扰。

高级语言

简介:因为其适用性广,方便简洁,一套成熟的运算法则体系及算法即可自己形成一种高级语言,便于学习和修改。

像我们学习过的C、C++,正在学习的JAVA,都具有某些相似特性,如运行速度慢,占据空间大等问题。

 

 

附上近几年来受欢迎的语言排行

2.计算机硬件系统组成结构

随着时代的更替,计算机也从体积,容量,运算速度等方面有了显著的改善。

冯·诺依曼:计算机之父,提出来了著名的冯·诺依曼计算机体系结构

如图

CPU是计算机的核心部件,控制整个计算机的运作和运算,向计算机提供指令和数据,CPU就可以进行解读并执行。

寄存器是CPU的重要组成,存储器被分为许多个内存单元,每个存储单元从0开始顺序编号,计算机的最小信息单位是比特,也就是一个二进制位,8个比特组成一个字节,一个存储器有128个存储单元,可以说是存储128个字节。

相关换算如下

1KB=1024B   1MB=1024KB   1GB=1024MB   1TB=1024GB

CPU对存储器的读写

计算机连接CPU和其他芯片的导线,称为总线,在逻辑上分为三类,地址总线,控制总线和数据总线。

地址总线:确定存储器单元,其宽度决定了CPU的寻址能力,例:8080地址宽度为16根,寻址能力为64KB。

数据总线:CPU和内存和其他器件的数据传送,其宽度决定了一次数据传输量,例:8080的数据总线宽度为8根,一次可以传输的数据为1B。

控制总线:对外器件的控制,其宽度决定了控制能力。

相关工作流程:

1.CPU通过地址线将地址信息发出

2.CPU通过控制线发出内存读或者写命令

3.CPU将数据送入内存或者存储器将数据送入CPU,这两项操作通过数据线完成

3.内存地址空间

通俗来讲,就是CPU可寻找到的内存单元组成其内存寻址空间。

各类存储器的逻辑连接

如图

ROM:装有BIOS的ROM可以通过BIOS与各种硬件进行最基础的输入输出。

RAM:显存,即出现在显示器上的内容。

根据上面说的,存储器都和CPU的总线相连,每一个都被当成一个若干存储单元的逻辑存储器,即内存存储空间,每一个物理存储器占用一个地址段,即地址空间,CPU在这些地址空间上读写就相当于在物理器件上操作。

总结:汇编语言的初学习基于对CPU的理解,CPU的寻址能力,关于内存地址空间的具体分配情况,关于寄存器,电脑的基础知识是必要的。

学习计算机相关语言的重要性就如《黑客与画家》中写道:想要把握这个时代,就必须理解计算机,进一步了解计算机的本质。

 

转载于:https://www.cnblogs.com/-Cold/p/9715685.html

你可能感兴趣的文章
HTC推出革新的HTC旗舰级Android智能手机
查看>>
BYOD管理套件VMware的捆绑应用程序
查看>>
java 通过httpClient调用后端逻辑或者下载附件
查看>>
Nagios集成Selenium
查看>>
快速大规模无光驱安装Linux操作系统就选“PXE自动安装”
查看>>
我的友情链接
查看>>
switch&router-四层模式
查看>>
新博安卓培训的第一天
查看>>
游戏中常用到的碰撞检测帮助类
查看>>
访问默认共享
查看>>
01262015要看的blog——oracle tuning
查看>>
[信息图]电子商务营销的6大步骤
查看>>
Webdriver(selenium2.0)+NUnit+C# (一)
查看>>
C语言的基本输入输出
查看>>
Hibernate注释大全收藏
查看>>
通过openfiler模拟存储
查看>>
java学习笔记 --- String类
查看>>
实时检查MySQL数据库延迟状况复制中断数据延迟
查看>>
Windows Server 2012 网络负载平衡(NLB)
查看>>
使用JSOM创建一个SharePoint网站计数器
查看>>