欢迎光临散文网 会员登陆 & 注册

机器语言的介绍

2022-12-24 19:08 作者:甬上逍遥子  | 我要投稿

机器语言的知识

一般大家只关注规则定义,保证我们的程序能够正常的运行。

机器语言也成为指令集语言。

指令集——计算机的体系结构

计算机的体系结构底层到应用层一共分为三层(三个部分),

最上面: 软件架构(操作系统/应用程序等)

中间: 指令集架构

最下面: 硬件体系架构(CPU,内存,I/O等)

软件架构包括操作系统、应用程序以及操作系统的一些固、编译器。

硬件架构具体指的是CPU、内存、I/O控制、集成电路(包括元器件和逻辑门)

软件和硬件之间的结合就是通过指令集进行衔接,保证我们缩写的应用程序或者操作系统的一些指令。通过指令集传达给硬件。

指令集架构分为复杂指令集、精简指令集、显示并行的指令集和超长指令集

1)复杂指令集一般都是用在X86上。X86(32位)就是一些windows(包括win7,win8,win9,win10以及其他的,还有一些Linux和Unix都会用到X86的一些架构)。

2)精简指令集: 主要用在UNIX,Linux,包括ARM指令集、MIPS指令集以及RISCV指令集等。一般是Unix系列或者Linux系列。操作系统主要跑在这个指令集上。

3)显示并行的指令集

这个指令集一般用在64位的指令上。就是纯64的操作系统。比如window的win10就是64位的。但不是纯64位的。它是兼容了32位和64位的。是一个兼容性的64位操作系统。

单纯用64位的话,window所有的软件肯能都不能执行了。

(现在因为操作系统或者CPU的位数已经做到64位了。)

4)超长指令集

就是把一堆指令融合到一个指令字上,去做执行。

那么现在比较流行的指令集就是复杂指令集和精简指令集。

一条指令就是机器的一个执行语句,是一种有意义的二进制代码。一般有操作码、地址码等域来组成。

操作码表达指令执行的方法和操作步骤。

地址码指示的是操作信息的地址位置信息。

具体指令的格式和指令的寻址方式

指令讲的都是各种不同的寻址方式。比如说直接寻址、讲解寻址还有寄存器寻址等等。

复杂指令集X86,IA的64位

指令集的设计或者一次性处理数据的位数一般来说主要和CPU的处理数据的位数相关。包括寄存器的字长。

多少的处理器实际上是参与运算的寄存器的数据长度。之所以要关心多少位,是因为在程序开发和编写程序的时候要关心我们数据类型的存储位数。尤其是嵌入式单片机的开发。需要关系数据类型。寄存器以及数据存取,达到优化程序的目的。

要关心不同语言编辑其的定义,比如在同一台机器上TC和VC6它们对整数类型定义并不一样。TC定义整数类型是两个字节的。VC6整数类型是4个字体的。从8位,16位,32位,64位,计算性能提升和和存储的扩大,我们对运算和存储的关注弱化了。但是,我们要想编写出高效的紧凑的高质量的程序代码,还是要对数据类型、寄存器、内存分配要做关注。减少程序出错的频次和概率。其次呢,我们也要多有符号位、无符号位各种进制的转换。

(如2进制,16进制10进制,它们之间的转换)。以及对数据的左移、右移、异或以及反码。还有一些我们对数据类型的(包括原码、反码和补码知识的认识。只有这样我才能够设计和编写出高质量的代码程序。








I/O是什么

I/O输入/输出(Input/Output),分为IO设备和IO接口两个部分。 在POSIX兼容的系统上,例如 Linux 系统  [1]    ,I/O操作可以有多种方式,比如DIO(Direct I/O),AIO(Asynchronous I/O,异步I/O),Memory-Mapped I/O(内存映射I/O)等,不同的I/O方式有不同的实现方式和性能,在不同的应用中可以按情况选择不同的I/O方式。





机器语言的介绍的评论 (共 条)

分享到微博请遵守国家法律