Intel 8086/8088有8个16位通用寄存器,它们具有良好的通用性,并且还可以用作某个特定的功能,可以由程序设计人员进行编程访问。
MOV AX,BX; //BX的内容送到AX中
ADD CH,DH; //DH和CH的内容相加,结果送到CH
标志寄存器是用来反映CPU在程序运行时的某些状态,如是否有进位、奇偶性、结果的符号、结果是否为零等等。 8086/8088CPU中标志寄存器的长度为16位,但只定义了其中的9位。
- 可以看出,每个小节的首地址最低位必为0(16进制数表示)。
- 因此段基址只能是上述64K个小节首址之一。
例2:同一个物理地址002D3H被两个逻辑段中的逻辑地址映射的情况。 002B0H+00023H=002D3H 002C0H+00013H=002D3H
堆栈是一个特定的存储区,访问该存储区一般需要按照专门的规则进行操作。
STACK1 SEGMEMT PARA STACK
DB100 DUP(0)
STACK1 ENDS
//第一行中的PARA STACK就是用来说明本段为堆栈段。
PUSH AX; //将寄存器AX的内容压入堆栈
PUSH DS; //将段寄存器DS的内容压入堆栈
PUSH DATA-WORD; //将字存储单元
DADA-WORD //压入;堆栈
PUSHF; //将标志寄存器内容压入堆栈。
POPAX; //将栈顶字单元内容弹出到AX
POPDS; //将栈顶字单元内容弹出到DS
POP DATA-WORD;//将栈顶字单元内容弹出到;
DATA-WORD //存储。
POPF; //将栈顶字单元内容送回标志寄存器F。