Intel汇编 (一) 实模式和保护模式
2016-09-12 21:42
260 查看
今天上了《计算机接口和通信》这门课,用的教材是The Intel(R) Microprocessors, 8th Edition。个人认为今天讲到的两种寻址模式是重点,故而撰文一篇,权当整理笔记,如果有错漏的地方,还望各位大大指正。
实模式只允许处理器访问内存的前1MB
DOS操作系统工作在实模式下
如果处理器工作在64位模式,则没有实模式
第三条先标一个疑问。书上原话是”Note that if the Pentium 4 or Core2 operate in the 64-bit mode, it cannot execute real mode applications; hence, DOS applications will not execute in the 64-bit mode unless a program that emulates DOS is written for the 64-bit mode”。然而实际情况是,虽然IA-64架构不兼容32位指令,但x86-64架构是兼容32位的。
那么问题来了,DOS操作系统能在x86-64架构上运行吗?如果能,采用何种寻址方式?
实模式寻址的公式如下:
segment乘以16是有原因的。在实模式下,一个段(segment)的大小是64K=2^16 Byte,并且规定了每个段的起始地址只能是16Byte的整数倍。
实模式寻址常用的寄存器组合:
(未完待续)
实模式寻址
首先要明确实模式寻址的特点:实模式只允许处理器访问内存的前1MB
DOS操作系统工作在实模式下
如果处理器工作在64位模式,则没有实模式
第三条先标一个疑问。书上原话是”Note that if the Pentium 4 or Core2 operate in the 64-bit mode, it cannot execute real mode applications; hence, DOS applications will not execute in the 64-bit mode unless a program that emulates DOS is written for the 64-bit mode”。然而实际情况是,虽然IA-64架构不兼容32位指令,但x86-64架构是兼容32位的。
那么问题来了,DOS操作系统能在x86-64架构上运行吗?如果能,采用何种寻址方式?
实模式寻址的公式如下:
address = (segment << 4) + offset
segment乘以16是有原因的。在实模式下,一个段(segment)的大小是64K=2^16 Byte,并且规定了每个段的起始地址只能是16Byte的整数倍。
实模式寻址常用的寄存器组合:
段寄存器 | 偏移量寄存器(不强调寄存器长度) | 用途 |
---|---|---|
CS | IP | 指令寻址 |
SS | SP或BP | 栈寻址 |
DS | BX、DI、SI、立即数 | 数据寻址 |
ES | DI | 字符串目标地址 |
FS、GS | 没有特定的寄存器 | 一般的寻址 |
相关文章推荐
- [Intel汇编-NASM]进入保护模式全过程
- [Intel汇编-NASM]进入保护模式之前的准备
- 汇编学习(14)保护模式和实模式下的间接操作数
- [Intel汇编-NASM]进入保护模式之前的准备
- [Intel汇编-NASM]进入保护模式全过程
- 什么是实模式、保护模式和虚拟8086方式
- VS2005下编译调试保护模式32位汇编程序总结
- 关于实模式和保护模式
- 什么是实模式、保护模式和虚拟8086方式
- 什么是实模式、保护模式和虚拟8086方式
- 驱动程序9--实模式,保护模式,虚拟8086模式
- Intel 64和IA-32架构处理器保护模式下的内存管理
- Intel 80386的保护模式
- 汇编语言中的实模式,保护模式,虚拟模式
- NASM 纯汇编打造简单中文操作系统(2 init.asm初始化操作系统内存。进入32位保护模式)
- 【转】Linux内核学习笔记(5)连载---实模式、保护模式和虚拟8086方式
- 什么是实模式,平面模式,保护模式(指操作系统)
- NASM 纯汇编打造简单中文操作系统(2 init.asm初始化操作系统内存。进入32位保护模式)
- 【操作系统原理】保护模式下Intel 80x86 CPU 硬件中断过程
- 关于“实模式”和“保护模式”