什么是汇编语言?
每台个人计算机都有一个微处理器,用于管理计算机的算术,逻辑和控制活动.
每个家庭处理器具有其自己的一组指令,用于处理各种操作,例如从键盘获取输入,在屏幕上显示信息以及执行各种其他工作.这些指令集称为"机器语言指令".
处理器只能理解机器语言指令,它们是1和0的字符串.但是,在软件开发中使用机器语言过于模糊和复杂.因此,低级汇编语言是针对特定系列的处理器而设计的,这些处理器代表符号代码中的各种指令和更易理解的形式.
汇编语言的优点
了解汇编语言会让人意识到 :
程序如何与操作系统,处理器和BIOS连接;
如何在内存和其他外部设备中表示数据;
处理器如何访问和执行指令;
说明如何访问和处理数据;
程序如何访问外部设备.
其他优点使用汇编语言是 :
它需要更少的内存和执行时间;
它允许以更简单的方式使用特定于硬件的复杂作业;
它适用于对时间要求严格的作业;
最适合写作i中断服务程序和其他内存驻留程序.
PC硬件的基本功能
主要PC的内部硬件包括处理器,存储器和寄存器.寄存器是保存数据和地址的处理器组件.要执行程序,系统会将其从外部设备复制到内部存储器中.处理器执行程序指令.
计算机存储的基本单位有点;它可以是ON(1)或OFF(0).一组九个相关位产生一个字节,其中8位用于数据,最后一位用于奇偶校验.根据奇偶校验规则,每个字节中ON(1)的位数应始终为奇数.
因此,奇偶校验位用于产生位数一个字节奇数.如果奇偶校验是偶数,则系统假定存在奇偶校验错误(尽管很少),这可能是由于硬件故障或电气干扰引起的.
处理器支持以下数据大小 :
Word:2字节数据项
双字:a 4 -byte(32位)数据项
四字:8字节(64位)数据项
段落:16字节(128字节)位)
Kilobyte:1024字节
兆字节:1,048,576字节
二进制数系统
每个数字系统都使用位置表示法,即写入数字的每个位置具有不同的位置值.每个位置是基数的幂,二进制数系统为2,这些幂从0开始增加1.
下表显示了8位的位置值二进制数,其中所有位都设置为ON.
位值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|
将价值定位为权力基数2 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
位数 | 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对应的十六进制数字.
使用计算中的十六进制数字用于缩写冗长的二进制表示.基本上,十六进制数系统通过将每个字节分成两半并表示每个半字节的值来表示二进制数据.下表提供十进制,二进制和十六进制等效项 :
十进制数 | 二进制表示法 | 十六进制表示 |
---|---|---|
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)显示1位进位到下一个左侧位置.
示例
Decimal | Binary |
---|---|
60 | 00111100 |
+42 | 00101010 |
102 | 01100110 |
负二进制值以二进制补码表示法表示.根据此规则,将二进制数转换为负值是反转其位值并添加1 .
示例
Number 53 | 00110101 |
Reverse位 | 11001010 |
添加1 | 0000000 1 |
Number -53 | 11001011 |
要从另一个值中减去一个值,转换将数字减去2的补码格式并添加数字.
示例
从53减去42
Number 53 | 00110101 |
Number 42 | 00101010 |
反转42位 | 11010101 |
添加1 | 0000000 1 |
Number -42 | 11010110 |
53 - 42 = 11 | 00001011 |
最后溢出1位丢失.
寻址内存中的数据
处理器控制指令执行的过程称为获取 - 解码 - 执行周期或执行周期.它包含三个连续步骤 :
从内存中获取指令
解码或识别指令
执行指令
处理器一次可以访问一个或多个字节的内存.我们考虑一个十六进制数0725H.这个数字需要两个字节的内存.高位字节或最高有效字节为07,低位字节为25.
处理器以反向字节顺序存储数据,即存储低位字节在低内存地址和高内存地址中的高位字节.因此,如果处理器将值0725H从寄存器带到存储器,它将首先将25传输到较低的存储器地址,将07传输到下一个存储器地址.
x:内存地址
当处理器获得时从存储器到寄存器的数字数据,它再次反转字节.有两种内存地址 :
绝对地址 - 特定位置的直接引用.
段地址(或偏移量) - 具有偏移值的内存段的起始地址.