📜  组装-简介

📅  最后修改于: 2020-11-05 05:02:06             🧑  作者: Mango


什么是汇编语言?

每台个人计算机都有一个微处理器,用于管理计算机的算术,逻辑和控制活动。

每个处理器系列都有其自己的指令集,用于处理各种操作,例如从键盘获取输入,在屏幕上显示信息以及执行各种其他作业。这些指令集称为“机器语言指令”。

处理器仅理解机器语言指令,这些机器指令是1和0的字符串。但是,机器语言对于软件开发而言过于模糊和复杂。因此,低级汇编语言是为特定的处理器家族设计的,该处理器以符号代码和更易于理解的形式表示各种指令。

汇编语言的优势

了解汇编语言会使人意识到-

  • 程序如何与OS,处理器和BIOS交互;
  • 内存和其他外部设备中数据的表示方式;
  • 处理器如何访问和执行指令;
  • 指令如何访问和处理数据;
  • 程序如何访问外部设备。

使用汇编语言的其他优点是-

  • 它需要更少的内存和执行时间;

  • 它可以更轻松地实现特定于硬件的复杂作业。

  • 适用于时间紧迫的工作;

  • 它最适合编写中断服务程序和其他内存驻留程序。

PC硬件的基本功能

PC的主要内部硬件包括处理器,内存和寄存器。寄存器是保存数据和地址的处理器组件。要执行程序,系统会将其从外部设备复制到内部存储器中。处理器执行程序指令。

计算机存储的基本单位是一点。它可以是ON(1)或OFF(0),并且在大多数现代计算机上,一组8个相关位组成一个字节。

因此,奇偶校验位用于使字节中的位数为奇数。如果奇偶校验是偶数,则系统会假定存在奇偶校验错误(尽管很少),这可能是由于硬件故障或电气干扰引起的。

处理器支持以下数据大小-

  • Word:2字节数据项
  • 双字:4字节(32位)数据项
  • 四字:8字节(64位)数据项
  • 段落:16字节(128位)区域
  • 千字节:1024字节
  • 兆字节:1,048,576字节

二进制数制

每个数字系统都使用位置符号,即每个写入数字的位置具有不同的位置值。每个位置都是基数的幂,对于二进制系统,该幂是2,并且这些幂从0开始并增加1。

下表显示了8位二进制数的位置值,其中所有位均设置为ON。

Bit value 1 1 1 1 1 1 1 1
Position value as a power of base 2 128 64 32 16 8 4 2 1
Bit number 7 6 5 4 3 2 1 0

二进制数的值基于1位的存在及其位置值。因此,给定二进制数的值为-

1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255

与2 8-1相同

十六进制数制

十六进制系统使用16为底。该系统中的数字范围为0到15。按照惯例,字母A到F用于表示与十进制值10到15对应的十六进制数字。

计算中的十六进制数字用于缩写冗长的二进制表示形式。基本上,十六进制系统通过将每个字节分成两半并表示每个半字节的值来表示二进制数据。下表提供了十进制,二进制和十六进制等效项-

Decimal number Binary representation Hexadecimal representation
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

要将二进制数转换为其十六进制等效项,请从右开始将其分成4个连续组的组,然后将这些组写在十六进制数的相应数字上。

示例-二进制数1000 1100 1101 0001等效于十六进制-8CD1

要将十六进制数字转换为二进制,只需将每个十六进制数字写入其4位数二进制等效项即可。

示例-十六进制数FAD8等效于二进制-1111 1010 1101 1000

二进制算术

下表说明了二进制加法的四个简单规则-

(i) (ii) (iii) (iv)
1
0 1 1 1
+0 +0 +1 +1
=0 =1 =10 =11

规则(iii)和(iv)显示进位到左下一位。

Decimal Binary
60 00111100
+42 00101010
102 01100110

负二进制值用二进制补码表示。根据此规则,将二进制数转换为其负值是将其位值取反并加1

Number 53 00110101
Reverse the bits 11001010
Add 1 00000001
Number -53 11001011

要从另一个值中减去一个值,请将要减去的数字转换为二进制补码格式,然后将这些数字相加

从53减去42

Number 53 00110101
Number 42 00101010
Reverse the bits of 42 11010101
Add 1 00000001
Number -42 11010110
53 – 42 = 11 00001011

最后1位的溢出丢失。

寻址内存中的数据

处理器控制指令执行的过程称为获取-解码-执行周期执行周期。它包含三个连续步骤-

  • 从内存中获取指令
  • 解码或识别指令
  • 执行指令

处理器可以一次访问一个或多个字节的内存。让我们考虑一个十六进制数字0725H。此数字将需要两个字节的内存。高位字节或最高有效字节为07,低位字节为25。

处理器以反向字节顺序存储数据,即,低位字节存储在低位存储器地址中,高位字节存储在高位存储器地址中。因此,如果处理器将寄存器中的值0725H传送到存储器,它将首先将25传送到低位存储器地址,将07传送到下一个存储器地址。

介绍

x:内存地址

当处理器从内存中获取数字数据以进行寄存器注册时,它将再次反转字节。有两种内存地址-

  • 绝对地址-具体位置的直接参考。

  • 段地址(或偏移量)-具有偏移量值的内存段的起始地址。