|
本章主要介绍8086的通用寄存器和内存访问机制,重点内容包括:
- 字长(字节、字、双字、四字);
- 寄存器的比特编号、低字节、高字节、低字、高字;
- 低端字节序和高端字节序;
- 8086的8个16位通用寄存器;
- 8086的内存访问机制和逻辑地址。
本章的难点是8086的分段机制和逻辑地址:
为了支持地址浮动(不管程序被加载到内存里的什么地方都可以正确执行),处理器会用代码段寄存器指向代码段;用数据段寄存器指向数据段。取指令时,是用代码段寄存器加上段内偏移量;访问数据时,是用数据段寄存器加上段内偏移量。 8086处理器可以访问1MB内存,地址范围是 00000H~FFFFFH。原则上,代码段寄存器和数据段寄存器都必须是20位的。但8086是16位处理器,寄存器的宽度是16位的,无法提供20位内存地址。怎么办呢? 答案是,段地址只能是那些能被16整除的地址(其十六进制形式以0结尾,比如25680H),这样一来就可以去掉最右边的“0”并放入16位的段寄存器。因此,25680H是合法的段地址,在去掉最右边的“0”之后是2568H,可以放进段寄存器。 由于8086是16位寄存器,只能用16位的寄存器提供16位段地址,所以每个段的最大长度是64KB。
对本章有任何疑问,可以在下面提出。
|