8086寄存器详解
因为现在的PC机处理器,都是向下一直兼容到8086,编语言是针对微处理器(即CPU)的,如INTEL8088/8086,8051/8031,Z80等...,我们不可能掌握所有的汇编,无必要也不可能,所以我们选择8086来学习汇编语言。 而对于一个汇编程序员来说,CPU 中主要可以使用的也就是寄存器而已,汇编程序员可以使用指令来读写 CPU 中的寄存器,从而可以实现对于 CPU 的控制,当然,不同的 CPU ,寄存器的个数和结构都是不一样的,比如 8086 CPU 中,寄存器的个数也就 14 个而已,并且 8086 CPU 中所有的寄存器的结构为 16 位,即一个寄存器中可以存放下 2B 即 2 个字节。 8086 CPU 中寄存器总共为 14 个,且均为 16 位 。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。 而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。 AX (Accumulator):累加寄存器,也称之为累加器;在乘除指令中指定用来存放操作数。 另外,所有的I/O指令都使用AX或AL与外部设备传送信息。 BX (Base):基地址寄存器,在计算存储器地址时,可作为基址寄存器使用,BX 寄存器中存放的 数据一般是用来作为偏移地址使用的; CX (Count):计数器寄存器,常用来保存计数值,如在移位指令、循环指令和串处理指令中用 作隐含的计数器。; DX (Data):数据寄存器,使用 DIV 指令进行除法运算时,如果除数为 16 位时,被除数将会是 32 位,而被除数的高 16 位就是存放在 DX 中,而且执行完 DIV 指令后,本次除 法运算所产生的余数将会保存在 DX 中,同时,在执行 MUL 指令时,如果两个相 乘的数都是 16 位的话,那么相乘后产生的结果显然需要 32 位来保存,而这 32 位 的结果的高 16 位就是存放在 DX 寄存器中 ; SP (Stack Pointer):堆栈指针寄存器; BP (Base Pointer):基指针寄存器; SI (Source Index):源变址寄存器; DI (Destination Index):目的变址寄存器; IP (Instruction Pointer):指令指针寄存器; FLAG:标志寄存器; CS (Code Segment):代码段寄存器; DS (Data Segment):数据段寄存器; SS (Stack Segment):堆栈段寄存器; ES (Extra Segment):附加段寄存器;
时间: 2024-10-29 19:05:41