寄存器名称及功能汇总

来源:互联网 发布:java运行没有设置主类 编辑:程序博客网 时间:2024/04/30 02:48

8个16位通用寄存器:ax,bx,cx,dx,bp,si,di,sp(8086、8088、80286)

8个32位通用寄存器:eax,ebx,ecx,edx,ebp,esi,edi,esp(x86体系结构CPU)

8位的半寄存器(通用寄存器):ah,al;bh,bl;ch,cl;dh,dl

16位指针寄存器:ip

32位指针寄存器:eip

16位段寄存器:cs,ds,ss,es(fs,gs)

标识寄存器:flags/eflags

=====================================================================

16位段寄存器,主要功能是将其用于存储段地址

eax,ebx,ecx,edxax,bx,cx,dx;ah,al,bh,bl,ch,cl,dh,dl

ip和eip专用寄存器,存储当前代码段中下一条即将执行的机器指令的偏移地址


在windows上,每行的结尾使用2个字节表示:0D,0AH

在linux/unix上,每行的结尾使用1个字节表示:0AH

在Maco系统哦个上,每行的结尾使用1个字节表示:0DH

在远古时代,0AH是换行的编码值,0DH是回车的编码值。


当windows的记事本看到linux下编辑的文件时,无法识别行的结尾标记0AH,当windows无法识别某一个字符时,它会显示一个黑色实体的窄矩形方块。


在多字节数字中,是从左向右读,还是从右向左读,必须达成一致。

big endian大端法,从左向右读,-->;低字节在右;从左向右,先出现的是高位;按照一般阅读顺序即可

little endian小端法,从右向左读,<--;低字节在左;从左向右,先出现的是低位;一般阅读顺序的颠倒

大端法和小端法是互斥的,一个程序中必须选择其中之一。


8086到最新的x86的CPU采用的是【小端法】

通常而言,一行汇编语言生成一条机器指令,但有些汇编语言行是汇编器的指令,它们没有对应的机器指令产生。

CPU有很多条指令,每条指令都有与之对应的汇编助记符号;一般而言,汇编源代码文件中,每行存放一个助记符。

助记符和它的操作数一起构成指令。

以分号开始的文本是注释。注释开始于每行的第一个分号,直到行尾。

汇编语言中的注释的作用很重要,最好在每个程序块的开始处都有一个相关功能描述的注释块。


8080的CPU的CP/M-80系统,程序从固定位置开始执行100H处开始,然后向后延伸。程序每次执行时,都会被加载到固定的相同的内存位置。程序被编译为在特定的物理地址运行。

386及以后,可执行文件内部的所有引用都是通过相对于该程序的起始位置的偏移地址指定的。这种程序的特性被成为【可重定位】

汇编的源程序代码文件的扩展名通常是.asm


linux有自己的连接器ld,ld其实是load的简写,在70年代时,第一个unix连接器的名称是loader。

0 0