基础知识
- 补码的来源、作用、计算。补码(Two’s Complement),反码(One’s Complement)。
80×86计算机组织
- Intel 8086处理器的字长、数据总线宽度、地址总线宽度、寻址空间。
- 处理器的工作模式:实模式、保护模式、虚86模式。
- 虚拟存储技术并非扩展内存到外存,而应是流水进入内存,实现大于存储器的程序的执行。
- CPU组成。
- 寄存器组,各寄存器名称、用途。
- FLAGS寄存器的AF位对于8421BCD码运算的作用。
- 做加法运算,OF和SF一起考虑是表示有符号数加法,考虑CF是无符号数加法。AF表示半字节进位,PF偶数标志位表示和的二进制1的个数是否为偶数。若加数符号位不同,则OF直接为0,SF看结果最高位;CF就看无符号数之和有无进位。
- 通用寄存器、专用寄存器、段寄存器。(SP到底通用还是专用啊???(?﹏?))
- 变址寄存器:BP,SP,SI,DI。
- 低位放低地址,高位放高地址。
- 同一地址可以是字节地址、字地址或双字地址,根据实际情况确定。(比如PTR做了类型转换)
- 实模式寻址:地址分段方法解决16位字长传输20位地址(1MB寻址空间)问题。段大小(1到64KB)。段起始于小段首地址,每16位为一个小段,共64K个小段。物理地址=段地址(或段基地址)<<16位 + 偏移地址 = 16D × 段地址 + 偏移地址。物理地址唯一,逻辑地址不唯一。
- 段的重叠:并非真的重叠,只是段的大小可以灵活变化,并不需要占满64KB,可以多个段公用64KB空间。
- 1MB内存最多可分成64K个段,最少可分成16个段(且相互不重叠)。每个段至少为16字节(小段),最大为64KB。
- 段寄存器与偏移地址寄存器的对应。
- 段跨越前缀:当使用的段不是默认段时,使用段跨越前缀指定段寄存器。
- 保护模式寻址:逻辑地址由选择器和偏移地址组成。偏移地址不再是16位,而是32位,段的最大长度扩展为4GB。
- 保护模式优点:支持更大寻址空间、支持多任务管理、支持虚拟存储管理。
- 段的描述符:段的大小、位置、控制信息、状态信息,由及地址、界限、访问权和附加字段组成。
- 外设接口的一组寄存器:数据寄存器、状态寄存器、命令寄存器。
- IO端口地址:独立于存储器编址,标明一组寄存器的地址。
- IO地址空间最大为64KB个8位端口或32KB个16位端口,即使在386及后续机型中扩展了32位端口号。
- 为了便于用户使用外设,80×86提供了两种类型的例行程序(中断服务程序),一种是BIOS,一种是DOS,使用中断方式(INT)转入执行。
- DOS层次较高,应优先使用。其次是BIOS(写入ROM,属于硬件的一部分),最后是自己编写外设调用程序。
80×86的指令系统和寻址方式
- 一地址(INC、DEC)、二地址(多数)、三地址指令(少数,如SHL)。
- 操作码只要确定唯一二进制码即可,但为了便于记忆,使用助记符表示操作码,一一对应。
- 寻址方式:与数据有关、与转移地址有关。
- 七种与数据有关的寻址方式,四种与转移地址有关的寻址方式。
- 寄存器寻址16位使用AB、BX、CX、DX、BP、SP、SI、DI;8位使用AH、AL、BH、BL、CH、CL、DH、DL。
- 寄存器间接寻址、寄存器相对寻址中的寄存器只能是BX(在数据段中寻址)、BP(在堆栈段中寻址)、SI、DI。
- 基址变址、相对基址变址寻址,基址用BX(数据段)、BP(堆栈段),变址用SI、DI。
- 双操作数指令除立即数方式外只能有一个操作数使用寄存器方式。(不能两个都是内存单元)