测试数据寄存器怎么写

1.数据寄存器16位寄存器就是内存里划拨出16个bit“放在一起”用来表示二进制数据(每个bit只可以存0或1两个数值),那么16位寄存器可以表示0-65535范围内任何一个数值对应的二进制数(即16位寄存器可以表示0-65535范围内任何一个数值) 。
但是往往在存比较小的数时,用不到那么多个bit,为了节约内存,就把一个16位寄存器分成两个用,16位寄存器是16个连续的bit位,前面连续的8个就是高8位,后面连续的8个就是低8位(所谓的前后,就是指每个bit其实都有一个属于自己的编号,所谓的前后就是编号的大小) 。高8位和低8位可以分开独立使用,节约内存 。
2.数据寄存器是什么意思这4 个16 位寄存器又可分别分成高8 位(AH、BH、CH、DH)和低8 位(AL、BL、CL、DL) 。
因此它们既可作为4 个16 位数据寄存器使用,也可作为8 个8 位数据寄存器使用,在编程时可存放源操作数、目的操作数或运算结果 。数据寄存器是存放操作数、运算结果和运算的中间结果,以减少访问存储器的次数,或者存放从存储器读取的数据以及写入存储器的数据的寄存器 。
8086 有 14 个 16 位寄存器,这 14 个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4 类 。(1)通用寄存器有8 个,又可以分成2 组,一组是数据寄存器(4 个),另一组是指针寄存器及变址寄存器(4 个).顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响 。
数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O 指令都使用这一寄存器与外界设备传送数据.BH&BL=BX(base):基址寄存器,常用于地址索引; CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL=DX(data):数据寄存器,常用于数据传递 。他们的特点是,这4 个16 位的寄存器可以分为高8 位: AH,BH,CH,DH.以及低八位:AL,BL,CL,DL 。
这2 组8 位寄存器可以分别寻址,并单独使用 。另一组是指针寄存器和变址寄存器,包括:SP(Stack Pointer):堆栈指针,与SS 配合使用,可指向目前的堆栈位置;BP(Base Pointer):基址指针寄存器,可用作SS 的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS 段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针 。
这4 个16 位寄存器只能按16 位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址 。(2)指令指针IP(Instruction Pointer)指令指针IP 是一个16 位专用寄存器,它指向当前需要取出的指令字节,当BIU 从内存中取出一个指令字节后,IP 就自动加1,指向下一个指令字节 。
注意,IP 指向的是指令地址的段内地址偏移量,又称偏移地址(Offset Address)或有效地址(EA, Effective Address) 。(3)标志寄存器FR(Flag Register)8086 有一个18 位的标志寄存器FR,在FR 中有意义的有9 位,其中6 位是状态位,3 位是控制位 。
OF:溢出标志位OF 用于反映有符号数加减运算所得结果是否溢出 。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF 的值被置为1,否则,OF 的值被清为0 。
DF:方向标志DF 位用来决定在串操作指令执行时有关指针寄存器发生调整的方向 。IF:中断允许标志IF 位用来决定CPU 是否响应CPU 外部的可屏蔽中断发出的中断请求 。
但不管该标志为何值,CPU 都必须响应CPU 外部的不可屏蔽中断所发出的中断请求,以及CPU 内部产生的中断请求 。具体规定如下:(1)、当IF=1 时,CPU 可以响应CPU 外部的可屏蔽中断发出的中断请求;(2)、当 IF=0 时,CPU 不响应 CPU 外部的可屏蔽中断发出的中断请求 。