时间:2021-05-19
汇编语言
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
CPU的组成
CPU是由运算器(信息处理)、控制器(控制器件工作)、寄存器(信息存储)等器件组成,他们之间通过总线相连。
通用寄存器
通用寄存器时用于存放一般性数据的,以8086 CPU为例,8086 CPU所有的寄存器都是16位的,8086 CPU中的通用寄存器有AX、BX、CX、DX。为了兼容上一代CPU中的8位寄存器,这4个寄存器都可以拆成两个8位的寄存器使用,也就是将16位分成两个8位,AX可分为AH和AL,BX可分为BH和BL,CX可分为CH和CL,DX可分为DH和DL。这里的H可以记为High,高位,L可以记为Low,低位。
再来说一下数据宽度,因为寄存器有16位和8位两种,所以数据宽度可以分为字节和字,一个字节由8个bit组成,可以直接使用低位存储,一个字由两个字节,也就是16位,比如一个十六进制3E10,将这个十六进制存放到AX寄存器总,3E就存放在高位AH中,10存放在低位AL中。
内存单元的物理地址
之前说过数据是通过地址线存放在内存单元中的,那么就必须要确定这个内存单元的地址。
基础地址=段地址x16
基础地址+偏移地址=物理地址
所以物理地址=段地址x16+偏移地址,这里的16是十进制的16,也就是十六进制的A。
这里的段地址可以理解为一段一段的内存存储单元,但是段地址并不是固定的,可以认为10000H-100FFH是一个段,也可以将这段地址看成是10000H-1007F和10080H-100FFH组成的段,以10000H-100FFH为例,它的段地址是1000H,偏移地址为FF,这样基础地址就是1000Hx10H=10000H,这样就可以确定基础地址。再加上偏移地址,就可以确定这段内存。
段寄存器
既然可以通过段地址和偏移地址确定物理地址,那么就需要寄存器来存放段地址,8086 CPU中有4个段地址:CS、DS、SS、ES,偏移地址存放在IP寄存器中,这里以CS寄存器为例,可以简单的理解为通过CS(代码段寄存器)、IP(指令指针寄存器)两个寄存器可以确定CPU需要读取的指令的地址,也就是CPU会将CS:IP指向的内容当作指令执行。
操作指令
mov指令
mov指令称为传送指令,可以使用这个指令为寄存器赋值,例:mov ax,123 这个语句就类似于C语言中的赋值操作ax=123;
jmp指令
jmp指令叫做转移指令,可以用于设置CS、IP中的值(mov指令不能修改CS、IP中的值),例:jmp 2AE3:3,执行这个指令后,CS的值被修改为2AE3H,IP的值被修改为0003H,CPU将从2AE33H处读取指令。
8086CPU工作过程
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
(2)IP指向下一条指令
(3)执行读取进指令缓冲器的指令
(4)重复上述三个步骤
好了,以上是小编给大家分享的汇编语言学习心得,希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
汇编语言是一种工具程序设计语言,用于将汇编语言源程序转换为机器语言。 在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbo
能把汇编语言源程序翻译成目标程序的程序称为汇编程序,汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列
汇编语言汇编语言(assemblylanguage)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代
汇编语言是独立于机器的程序设计语言。汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言。 在汇编语言中,用助记符代替机器指令的操作码,
obj的程序称为汇编程序。 汇编程序是把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表