汇编语言知识的3点总结

2021-03-30 23:55:38 浏览
1. 机器语言与汇编语言

机器语言是机器指令的集合。电子计算机的机器指令是一系列二进制数字。计算机将之转换为一系列高低电平脉冲信号来驱动硬件工作。比如,运算s=768+12288-1280,对应的机器码如下:

101110000000000000000011

000001010000000000110000

001011010000000000000101

 

由于机器语言指令都是由01组成,难以编写,记忆和维护程序.所以为了解决这一问题而产生了汇编语言,通过助记符、伪指令和其他符号来实现编程。

 

其中,助记符有对应的机器码,伪指令由编译器执行,其他符号由编译器识别。

 

计算机只能读懂0101的机器码,所以汇编语言必须翻译成计算机可执行的机器码才能运行。即,汇编源程序(.asm)通过编译器编译产生机器码(.obj),再通过连接器连接产生最终的可执行文件(.exe)(进行汇编编程时,需要用到编辑器(edit), 编译器(masm), 连接器(link), 调试工具(debug)等,不像VSIDE,这里的各个步骤是拆开的)。

 

2. CPU和内存

CPU是计算机的核心部件,它控制着整个计算机的运作并进行计算。一个典型的CPU主要由运算器、控制器、寄存器等器件构成,通过内部总线相连。对于汇编而言,CPU的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件,可以通过改变寄存器中的内容来实现对CPU的控制。

 

8086CPU中总共有14个寄存器:AX, BX, CX, DX, SI, DI, SP, BP, IP, CS, SS, DS, ES, PSW其中,AX, BX, CX, DX为通用寄存器,用来存放一般性数据,其他的寄存器后面会详细介绍。

要想让一个CPU工作,就必须向它提供指令和数据。指令和数据都存放在存储器,即内存中。一台PC机中,内存的作用仅次于CPU

 

内存从读写属性上可以分为随机存储器(RAM)和只读存储器(ROM。随机存储可读可写,但必须带电存储,关机后内容丢失;只读存储只能读取不能写入,关机后内容不会丢失(这里的内存不是简单的内存条,还包括显存和网卡等),如Fig. 1所示。
 

对于8086CPU而言,内存地址段分配;

i)地址0~7FFFH32KB为主随机存储的地址空间;

ii)地址8000H~9FFFH8KB为显存地址空间;

iii)地址A000H~FFFFH24KB为各个ROM的地址空间。

 

 

注:内存地址大小受CPU地址总线宽度的限制。8086CPU的地址总线宽度为20,即1MB80836CPU后,地址总线宽度为32,即4GB。

DOS0:200H~0:2FFH256个字节的空间是安全的,DOS和其他合法程序一般都不会使用这段空间。

 

3. CPU对内存的读写

首先,我们知道数据和指令只是应用上的概念,它们在内存中没有任何区别,都是二进制数据。那CPU怎么才能区分要处理的二进制代码是数据还是指令呢?

 

比如:1000100111011000可以表示数据:89D8H,也可以表示程序:mov ax,bx

 

要理解这个问题,就需要知道CPU的工作过程了。

1) 首先要确定待处理内存单元的地址(地址信息);

2) 其次控制器件进行读/写命令(控制信息);

3) 最后完成CPU和内存间的数据传输(数据信息);

 

CPU通过总线(CPU和其他芯片间的导线)完成上述三类信息(电信号)的传输。如Fig.2所示。即,相同的二进制代码从不同总线传输所表达的意义不同,这决定了其被当作数据还是代码处理。

文章标签: 汇编语言知识总结

本文链接地址: 汇编语言知识的3点总结:http://www.mcucd.com/c1/149.html
联系信息:单片机疑难问题咨询:方先生 手机:15328075932 QQ:67828115

版权声明 本文部分文字和图片来源于互联网,如有侵犯您的权利请发送内容至:173323810@qq.com,我们将立即删除!